|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
|
15.9.2007, 23:30 | #1 |
Član
Član od: 14.8.2006.
Lokacija: BG, Cam
Poruke: 34
Zahvalnice: 1
Zahvaljeno jedanput na jednoj poruci
|
MySQL , DELETE i stari ID
Imam pitanje u vezi baze podataka u MySQL , tj. preciznije tabele.
Imam recimo tabelu koja sadrzi polje ID koje je PRIMARY KEY i postavljena je na AUTO_INCREMENT . I kada recimo pokrenem DELETE SQL komandu na neki od redova on se izbrise ali ostanu stare vrednosti. Npr ja izbrisem zadnji unos sa id=5 i kad ubacim sledeci unos on ima id=6 . I onda nastaje problem kad koristim Kod:
while($myrow = mysql_fetch_array($result)) Unapred hvala. |
15.9.2007, 23:52 | #2 |
Starosedelac
|
Re: MySQL , DELETE i stari ID
Cudno je, ne bi trebao da ti vrati prazne redove, treba da obrishe redove... Kako ti glasi mysql_query za DELETE?
|
16.9.2007, 0:13 | #3 |
Deo inventara foruma
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
|
Re: MySQL , DELETE i stari ID
Nažalost praviš klasičnu grešku u korišćenju baza podataka a ona se ogleda u tome da ako moraš da menjaš vrednosti primarnih ključeva onda radiš nešto pogrešno. Naime, svrha primarnog ključa je da bude jedinstven i da na taj način garantuje integritet tvojih podataka. To znači da ako imaš tabelu sa 5 zapisa i ti obrišeš poslednji sledeća AUTOINCREMENT vrednost treba da bude 6 a ako budeš radio klasičan SELECT upit sasvim je normalno da ćeš dobiti sekvencu 1,2,3,4,6. Ovo se dešava zato što se svaki put pri povećanju AUTOINCREMENT vrednosti u tabeli (a po SQL definicije sme da postoji samo jedna AUTOINCREMENT vrednost po tabeli) vrši se zapis te vrednosti u određenom delu tabele koji ti ne vidiš a koji se ne menja ako kojim slučajem počneš da brišeš zapise.
Drugim rečima, ovako kako funkcioniše treba i da bude. Ako ti je baš potrebno da prikaz vršiš po rednom broju bez "rupa" onda možeš da iskoristiš jednu jednostavnu tehniku kao što je čuvanje trenutno iščitanog broja zapisa baze u pomoćnu promenjljivu dok ćeš recimo za primarni ključ koristiti nasumično generisan kod. Evo kako bi to trebalo da izgleda: PHP kod:
Poslednja ispravka: VojaM (16.9.2007 u 18:13) |
Sledeći korisnik se zahvaljuje korisniku holodoc na korisnoj poruci: | ||
OFPNogix (19.9.2007) |
19.9.2007, 20:05 | #4 |
Član
Član od: 14.8.2006.
Lokacija: BG, Cam
Poruke: 34
Zahvalnice: 1
Zahvaljeno jedanput na jednoj poruci
|
Re: MySQL , DELETE i stari ID
Hvala na odgovoru!!!
Uspeo sam da resim problem s tim sto sam uveo pomocnu promenljivu i tako sto sam proverio dali mi $zapis vraca NULL! |
19.9.2007, 20:56 | #5 |
Deo inventara foruma
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
|
Re: MySQL , DELETE i stari ID
A kako zapis može da ti vrati NULL ako red ne postoji i uopšte neće biti uzet u obzir kod upita Možda ja ne razumem kompletno tvoje pitanje ali ajd ako misliš da si rešio problem
|
20.9.2007, 15:37 | #6 |
Član
Član od: 14.8.2006.
Lokacija: BG, Cam
Poruke: 34
Zahvalnice: 1
Zahvaljeno jedanput na jednoj poruci
|
Re: MySQL , DELETE i stari ID
Pa fora je u tome sto mi nekad upit vraca upite koji "ne postoje" , a nekad ne.
Ne znam dal je do sintakse ili web servera, vrste baze podataka ali u svakom slucaju hvala. |
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Pomoć oko mysql | Dado1 | Serverske aplikacije i baze podataka | 5 | 6.3.2007 14:50 |
stari aparati | nighthawk | Foto i audio/video | 8 | 2.3.2007 0:08 |
Povezivanj dve baze (MySQL) | nighthawk | Programiranje | 0 | 15.1.2007 16:32 |
Mysql i delete max values... | dziber | Programiranje | 7 | 23.10.2006 23:16 |
Stari komp | PAIN | Šta da kupim? | 23 | 10.4.2006 7:48 |