ViszinisA Posted September 21, 2006 Report Share Posted September 21, 2006 while (!feof($fails)) { $pk = fgets($fails,1024); $query = 'INSERT INTO `vote_skoleni_pk` (`id`, `pk`, `class`, `voted`) VALUES (LAST_INSERT_ID(),\''.$pk.'\', \'14\', \'no\');'; $result = mysql_query($query); if (!$result) { die('Invalid query: ' . mysql_error()); } } tipaz kods nolasa cilveecinju personas kodus no faila un tik mauc DB pirmo ierakstu shis ieraksta... a kad gatavojas rakstiit otru... tad error... Invalid query: Duplicate entry '1' for key 1 apgaismojiet mani luudzu :D Link to comment Share on other sites More sharing options...
andrisp Posted September 21, 2006 Report Share Posted September 21, 2006 Paskaties pats - tu mēģini katram jaunajam ierakstam pielikt tādu pašu ID, kā pēdējam ievietotajam ierakstam. Ņem to ID no INSERT kverija vispār ārā, bet tabulas id kolumnai pievieno UNIQUE vērtību un AUTO_INCREMENT. Nu kaut kā tā. Ja izmanto phpmyadmin, tad sapratīsi ātri. Link to comment Share on other sites More sharing options...
ViszinisA Posted September 21, 2006 Author Report Share Posted September 21, 2006 ups ^_^ jau taa likaas ka tas ir lieks... :D ty Link to comment Share on other sites More sharing options...
Grey_Wolf Posted September 21, 2006 Report Share Posted September 21, 2006 (edited) logjiski it ipashi ja tev ID ir unikaals ;) ko tu domaa vinsh ierakstiis peec shii? LAST_INSERT_ID() ??? Iepriekseejo ID logiski ka vinsh dubleesies.... edit: andrisp pasteidzaas ;) Edited September 21, 2006 by Grey_Wolf Link to comment Share on other sites More sharing options...
andrisp Posted September 21, 2006 Report Share Posted September 21, 2006 jau taa likaas ka tas ir lieks... :D Tad kāpēc nepamēģināji izņemt ? Link to comment Share on other sites More sharing options...
ViszinisA Posted September 21, 2006 Author Report Share Posted September 21, 2006 P.S. neesmu aizticis neko saistiitu ar db jau daudz meeneshus :)) neko vairs neatceros (gandriiz neko) Link to comment Share on other sites More sharing options...
Delfins Posted September 21, 2006 Report Share Posted September 21, 2006 (edited) last_id() + 1, a vispār labāk atstāt paša mysql ziņā tā ID piešķiršanu Edited September 21, 2006 by Delfins Link to comment Share on other sites More sharing options...
andrisp Posted September 21, 2006 Report Share Posted September 21, 2006 labāk atstāt paša mysql ziņā tā ID piešķiršanu Jā, jo mysql nekad (vismaz myisam tabulām) nepiešķirs id, kas kādreiz ir eksistējis, bet jau izdzēsts. Link to comment Share on other sites More sharing options...
Blitz Posted September 21, 2006 Report Share Posted September 21, 2006 citreiz man nepatik ka mysql atceras kads ir bijis pedejais ID, tobosh, saliekam ierakstus no 1-10, pec tam izdzesam kadus 7, pieliekam vienu klat un tam ID bus jau 11, nevis 4 :/ Link to comment Share on other sites More sharing options...
andrisp Posted September 21, 2006 Report Share Posted September 21, 2006 manuprāt tajā nekā slikta nav Link to comment Share on other sites More sharing options...
Paulinjsh Posted September 22, 2006 Report Share Posted September 22, 2006 (edited) bet loģiski, ka tā būs, jo nākamais autoindex ir 11 Edited September 22, 2006 by Paulinjsh Link to comment Share on other sites More sharing options...
Blitz Posted September 22, 2006 Report Share Posted September 22, 2006 man gan liekas ka logiskak butu palielinatu pedejo id pa 1, bet tas taa... Link to comment Share on other sites More sharing options...
Delfins Posted September 22, 2006 Report Share Posted September 22, 2006 es arī nesaprotu šādu cilvēku vēlēšanas lai visi numuri būtu pēc kārtas... tas pats VID-am,.. stingrās uzskaites numuri. Baigais čakars - jāveic numuru anulēšanu un debīli reporti Var jau protams uztaisīt mehānismu, kurš aizpilda "tukšumus", bet vai vajag.. Link to comment Share on other sites More sharing options...
litt Posted September 22, 2006 Report Share Posted September 22, 2006 ID ir UNIKĀLS identifikators un tā tam vajadzētu būt, savādāk sanāks tā, ka vienu dienu pēc ID = 3 atradīsi vienu ierakstu, nākamajā dienā kaut ko citu, jo, redz, kāds būs veco ierakstu ar ID = 3 izdzēsis un tā vietā tavs mega tukšumu aizpildošais algoritms būs ielicis iekšā kaut ko citu. Ja Tev DB ir viena tabula un paša vajadzībām, tad tā var darīt, ja DB ir 100 tabulas un ir atsauce uz konkrēto ID vēl 15 tabulās, tad tāds piegājiens pie pirmās izdevības pilnībā nograus visu sistēmu Link to comment Share on other sites More sharing options...
Delfins Posted September 22, 2006 Report Share Posted September 22, 2006 litt, tu esi mācījies `datu integritāti`?... zini par tādiem relations, trigeri?.. ja tu dzēs ierakstu vienā tabulā, tad jādzēš vai jāmaina ID/ref citās saistītitās tabulās (DROP CASCADE, SET NULL). Var arī šādi, kā viens no perversijas variantiem. onDelete() { ManaTabula.ID = - ManaTabula.ID; ManaTabula.update(); } un selektēt tikai ID > 0. A vispār nopietnās sistēmās nedzēš datus, bet marķē ar kolonnu "Delete" vai pārnes citā tabulā. Tiek veikts kārtīgs TransactionLog. Link to comment Share on other sites More sharing options...
Recommended Posts