Jump to content
php.lv forumi

kā uzzināt id ar kādu tiks pievienots nākamais ieraksts mysql datubāzē


pilots

Recommended Posts

es gan zinu par mysql_insert_id(), ar kuru var atgriezt tikko ievietotā ieraksta id, bet man šoreiz vajadzība pirms ieraksta ievietošanas tikt pie id ar kādu tas tiks pievienots.

 

man šķiet ka šāda iespēja ir, bet nenieka vairs nevaru atrast. kurš var palīdzēt?

Link to comment
Share on other sites

Iespejams tā:

$rezultats = mysql_query("SHOW TABLE STATUS LIKE 'tabulas_nosaukums'");

$rinda = mysql_fetch_array($rezultats);

$id = intval($rinda['Auto_increment']);

echo $id;

 

Protams ar nosacijumu ka id ir kā Auto_increment lauks.

Edited by localhero
Link to comment
Share on other sites

1)

$query = 'SELECT MAX(id) FROM `tabula`';

$results = mysql_query($query);

$row = mysql_fetch_row($results);

$id = $row[0]+1;

Mīnuss, pie aktīvākiem pieprasījumiem ID var dublēties.

 

2)

Vēl ir variants, ievieto tukšus datus tabulā, ar mysql_insert_id() iegūsti ID un pēc tam veic Update attiecīgajam ierakstam.

Mīnuss, divas reizes tiek papildināta datubāze.

 

localhero jau pasteidzās :)

Edited by Aleksandrs
Link to comment
Share on other sites

Nu jāizdara tā lai pieprasījums tiek veikts tieši pirms id izvades. Man ir vienā vietā šāds scripts un strādā ideāli. man ir forma kur pēdējam laukam ir onblur() atribūts kas iedarbina caur Ajax pieprasījumu kas noskaidro Auto_increment nākamo vērtību. Kā jau kāds teica ja nav zināms kam tas vajadzīgs tad nevar neko īsti pateikt. Iespējams arī taisīt MySQL trigeri.

Edited by localhero
Link to comment
Share on other sites

Normālās sistēmās izmanto tā saukto numuru rezervāciju - ja tiešām vajag šo ID uz priekšu - glabā citā tabulā ID un reference (email vai vēl kaut kas)...

Vēlāk pēc reference atrod ID un insertē...

Insertēt ar tukšo ID nav gluži loģiski, jo uz to tiek veidots PrimKey pamatā.

Link to comment
Share on other sites

×
×
  • Create New...