Zadejte hledaný výraz...

Zjištění ID z auto_increment

Roman
verified
rating uzivatele
(55 hodnocení)
29. 9. 2011 11:49:18
Zdravím,
řeším problém, do mysql se zapisují data - nazev,datum, link aj.
ID v mysql je nastaveno na auto_increment a tohle ID potřebuji dostat za nově vložený řádek do linku.
databáze má:
ID - 123456 (auto_increment)
název - něco
datum - 12.11.2011
link - /slozka/neco-neco-123456
jak dostat za link ID které má ten řádek?
Děkuji
29. 9. 2011 11:49:18
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681865
Tom
verified
rating uzivatele
(7 hodnocení)
29. 9. 2011 12:01:01
ID si musíš vytáhnout z dtb pře selectu. Při uložení jej nedostaneš - jen dalším speciálním dotazem. Zkrátka, musíš stránku refreshnout
29. 9. 2011 12:01:01
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681864
Co přesně potřebujete?
ID posledního vloženého
Nejvyšší ID
ID příštího vloženého
A k čemu?
29. 9. 2011 12:01:15
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681863
sysline
verified
rating uzivatele
(2 hodnocení)
29. 9. 2011 12:03:46
Napsal double;706179
ID si musíš vytáhnout z dtb pře selectu. Při uložení jej nedostaneš - jen dalším speciálním dotazem. Zkrátka, musíš stránku refreshnout
pri ulozeni jej samozrejme dostane napriklad pres funkci mysql_insert_id();
Nicmene v tomto pripade je to pravdepodobne zbytecne, protoze workflow by melo byt vlozeni dat a nasledne stejne select.
29. 9. 2011 12:03:46
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681862
Lukáš Behro
verified
rating uzivatele
(1 hodnocení)
29. 9. 2011 12:04:00
Ahoj,
$sql = "SHOW TABLE STATUS LIKE 'produkty'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$next_id = $row;
A potom mysql_query("INSERT INTO table SET id='', nazov='".$nazov."', datum='now()', link='/slozka/nece-neco-".$next_id."/' ");
Dufam, ze ti to pomoze. :)
29. 9. 2011 12:04:00
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681861
Roman
verified
rating uzivatele
(55 hodnocení)
29. 9. 2011 12:06:14
Potřebuji to k tomu, aby link co vložím odpovídal tomu řádku co má, Tedy pokud vložím záznam: Jan Novák, 12.11.2011, /osoba/jan-novak-id
tak to id za linkem musí sedět s ID pod které se to uložilo do databáze. a nevím jak když vkládám nový záznam mám dostat to, aby se za link přidalo právě to ID které je v ID (auto_increment)
snad to pochopíte co mám na mysli...
29. 9. 2011 12:06:14
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681860
Lukáš Behro
verified
rating uzivatele
(1 hodnocení)
29. 9. 2011 12:08:11
Napsal RK;706183
Potřebuji to k tomu, aby link co vložím odpovídal tomu řádku co má, Tedy pokud vložím záznam: Jan Novák, 12.11.2011, /osoba/jan-novak-id
tak to id za linkem musí sedět s ID pod které se to uložilo do databáze. a nevím jak když vkládám nový záznam mám dostat to, aby se za link přidalo právě to ID které je v ID (auto_increment)
snad to pochopíte co mám na mysli...
$sql = "SHOW TABLE STATUS LIKE 'produkty'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$next_id = $row;
mysql_query("INSERT INTO table SET id='', nazov='".$nazov."', datum='now()', link='/slozka/nece-neco-".$next_id."/' ");
29. 9. 2011 12:08:11
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681859
Roman
verified
rating uzivatele
(55 hodnocení)
29. 9. 2011 12:08:40
Přikládám kód
$link = "/mp3/".str_replace(array(' ', '.'), array('-', ''), $celynazev).""(tady potřebuji ID);
$datum = StrFTime("%Y-%m-%d", Time());
$this->mysqli->query("INSERT INTO ".$this->table_name."(interpret, nazev, url, celynazev, kategorie, link, datum) VALUES('$interpret', '$nazev', '$url', '$celynazev', 1, '$link', '$datum')")
or die("Došlo k hrozné chybě...");
29. 9. 2011 12:08:40
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681858
Jan Matoušek
verified
rating uzivatele
(12 hodnocení)
29. 9. 2011 12:09:03
stránka se refreshovat nemusí:
http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html
29. 9. 2011 12:09:03
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681857
V tom případě hledáte jednu z těchto funkcí
http://cz2.php.net/results.php?q=insert_id&p=manual&l=en
mysql_insert_id, mysqli_insert_id, PDO::lastInsertId
nebo analogii ve vašem frameworku.
29. 9. 2011 12:09:33
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681856
Tom
verified
rating uzivatele
(7 hodnocení)
29. 9. 2011 13:00:21
nebo přesně jak jsem spal, dostane jej "speciálním" selectem až PO uložení - ale s workflow souhlasím
To Paradiso:
tak to nevím, asi nemám ještě MySQL verze 12445 moje pětka ještě neumí updatovat apikační vrstvu a html kód na straně klienta nemění :o)
29. 9. 2011 13:00:21
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681855
SELECT last_insert_id() - ovsem toto vrati posledni autoincrement z cele db, nelze specifikovat tabulku, muze to delat problemy pri vice konkurencnich dotazu naraz
druha moznost presnejsi, nicmene stale muze dochazet pri velke zatezi k "preshlechum"
$a = mysql_query("SHOW TABLE STATUS FROM databaze LIKE 'tabulka'");
$b = mysql_fetch_array($a);
$hodnotaID = $b;
29. 9. 2011 13:04:55
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681854
probos
verified
rating uzivatele
(1 hodnocení)
29. 9. 2011 13:51:47
Taky to jde jednoduše řešit tak, že se updatuje auto_increment v dané tabulce na nejvyšší ID pokaždé, když se něco z tabulky odstraní, nebo přidá. Pak se bude shodovat vždy adresář s ID v tabulce.
Netvrdím ovšem, že je to nejlepší řešení. Ja to tak na pár projektech mám, a funguje to bez problému.
29. 9. 2011 13:51:47
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681853
sysline
verified
rating uzivatele
(2 hodnocení)
29. 9. 2011 14:12:52
Napsal mytrix;706208
SELECT last_insert_id() - ovsem toto vrati posledni autoincrement z cele db, nelze specifikovat tabulku, muze to delat problemy pri vice konkurencnich dotazu naraz
To neni pravda. last_insert_id je connection depended zalezitost.
29. 9. 2011 14:12:52
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681852
Petr
verified
rating uzivatele
(9 hodnocení)
29. 9. 2011 14:21:50
ja bych to resil nasledovne >>
1) insert
2) select
3) update
easy as fuck :-D
29. 9. 2011 14:21:50
https://webtrh.cz/diskuse/zjisteni-id-z-auto_increment/#reply681851
Pro odpověď se přihlašte.
Přihlásit