pilots Posted October 28, 2007 Report Share Posted October 28, 2007 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 More sharing options...
andrisp Posted October 28, 2007 Report Share Posted October 28, 2007 Cik zinu, tad tas nav iespējams. Link to comment Share on other sites More sharing options...
Vebers Posted October 28, 2007 Report Share Posted October 28, 2007 Kam tev tas reāli ir nepieciešams ? Link to comment Share on other sites More sharing options...
pilots Posted October 28, 2007 Author Report Share Posted October 28, 2007 hm. ja nevar, ta nekā. citādāk jādomā darīt. MakaTaNaw, ja būtu iespēja nākamo id dabūt, tad man nebūtu viens debīls kods daudz jāmaina. būšu kļūdījies, domāju ka to var izdarīt. Link to comment Share on other sites More sharing options...
localhero Posted October 28, 2007 Report Share Posted October 28, 2007 (edited) 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 October 28, 2007 by localhero Link to comment Share on other sites More sharing options...
Vebers Posted October 28, 2007 Report Share Posted October 28, 2007 localhero, pa to laiku kamēr uzzini šo id, var tikt ievietots jau cits ieraksts (kāds cits lietotājs pieprasa / izsūta / utt to pašu skriptu... ) Link to comment Share on other sites More sharing options...
Aleksandrs Posted October 28, 2007 Report Share Posted October 28, 2007 (edited) 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 October 28, 2007 by Aleksandrs Link to comment Share on other sites More sharing options...
localhero Posted October 28, 2007 Report Share Posted October 28, 2007 (edited) 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 October 28, 2007 by localhero Link to comment Share on other sites More sharing options...
pilots Posted October 28, 2007 Author Report Share Posted October 28, 2007 testa laidienu uzmetu Aleksandra skriptam. Derēs. Paldies visiem, kas izteica padomus! Link to comment Share on other sites More sharing options...
andrisp Posted October 29, 2007 Report Share Posted October 29, 2007 localhero, kādā veidā varētu ar trigeri ? Link to comment Share on other sites More sharing options...
Delfins Posted October 29, 2007 Report Share Posted October 29, 2007 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 More sharing options...
localhero Posted October 29, 2007 Report Share Posted October 29, 2007 Aleksandra piemēram ir viens mīnus: Iespējams ka tu vēlēsies izdzēst tieši pēdējo ierakstu. Un tādā gadījumā max(id) samazināsies par 1 Savukārt Auto_increment vērtība saglabāsies iepriekšējā. Link to comment Share on other sites More sharing options...
xPtv45z Posted October 29, 2007 Report Share Posted October 29, 2007 $query = mysql_query(SHOW TABLE STATUS LIKE tablename); $row = mysql_fetch_array($query); $next_id = $row[‘Auto_increment’]; Bet kā jau minēja, nav visai labi, ko šādu izmantot. Link to comment Share on other sites More sharing options...
Kavacky Posted October 29, 2007 Report Share Posted October 29, 2007 Un vai reāli nav iespējams pēc tam operēt ar atgriezto mysql_insert_id, lai veiktu sazin kādas darbības? Moš plānošanas vaina. Link to comment Share on other sites More sharing options...
pilots Posted October 30, 2007 Author Report Share Posted October 30, 2007 Kavacky, vispār tiesa tev. drīzāk būs jāizlabo kods, jāuzraksta UPDATE pēc INSERT un beigta balle. Link to comment Share on other sites More sharing options...
Recommended Posts