Autor | Zpráva | ||
---|---|---|---|
Janvesely12 Profil |
#1 · Zasláno: 30. 3. 2012, 17:56:18
Zdravím, mám zase problém. Zapisuji do jedné tabulky záznamy, ale někdy zapíšu 70 někdy 72, 73 nebo 75 záznamů. A vždy to tvoří jeden celek.
Představoval bych si to takto: Vložil bych dejme tomu 72 záznamů, zjistil bych jejich největší a nejmenší ID to uložil do další tabulky. A potom bych si vytvořil výpis záznamů v druhé tabulce, tam by byl odkaz kde by v proměnné bylo např. 151-223 a tyto záznamy by se potom zobrazili na další stránce. Bohužel nevím jak zjistil ID aktuálně vkládaných záznamů. Nevíte jak bych to mohl udělat? Děkuji |
||
David Klouček Profil |
ID z posledního uložení zjistíš pomocí
mysql_insert_id() .
Pokud ty záznamy ukládáš postupně, tak to můžeš udělat následovně: $ids = array(); //pole pro ID for ($i = 0; $i < 100; $i++) { mysql_query("INSERT INTO tbl (..) VALUES (..)"); $ids[] = mysql_insert_id(); //pridani ID do pole } echo 'Maximalni ID: '.max($ids) .'Nejmensi ID: '.min($ids); Jak to udělat u insertu s více řádky, nevím. |
||
Tori Profil |
#3 · Zasláno: 30. 3. 2012, 19:36:34
Z metadat (INFORMATION_SCHEMA nebo SHOW TABLE STATUS) můžete zjistit aktuální hodnotu auto_increment před updatem a po něm. Pokud ale může paralelně probíhat jiný update na stejných tabulkách, použijte raději mysql_insert_id.
|
||
Janvesely12 Profil |
#4 · Zasláno: 30. 3. 2012, 20:16:45
No, pokusím se to nějak vyřešit. Děkuji za návrhy.
|
||
Kajman Profil |
#5 · Zasláno: 1. 4. 2012, 20:34:07
Janvesely12:
Jen poznámka. Pokud vkládáte hodnoty jedním insertem, vrátí mysql_insert_id první přidělené číslo. Další si dopočítáte díky mysql_affected_rows (počet vložených řádků) a nastavení auto_increment_increment - což je většinou jednička. |
||
Časová prodleva: 12 let
|
0