Šta je novo?

PHP spreciti unos duplikata odredjenih kolumni u mysql bazu

shone83

Poštovan
Učlanjen(a)
04.11.2015
Poruke
49
Poena
54
Imam nazive kolumni tipa:

id ime prezime jmbg telefon email sifra ulica broj sufiks napomena

a hocu da zabranim duplikate ako se unese isto ime i prezime u istoj ulici i broju ulice. I takodje, ako se unese ime i prezime bez ulice i broja ali sa istim brojem telefona. Dakle, ove kolumne kad su zajedno ne smeju biti iste:

ime prezime ulica broj
ime prezime telefon

Ako se bilo koja kolumna razlikuje onda da dozvoli.

Za jmbg sam vec odradio ovako i to funkcionise:

Kod:
if($count_jmbg > 0) {
                
echo "<script>alert('JMBG već postoji!')</script>";

}

ta fora mi treba i za ovu kombinaciju kolumni.

Vec sam probao da u phpmyadmin stavim te kolumne kao unique i to funkcionise ali ima manu, prazna polja racuna kao identicna tako da kada unesem isto ime i prezime bez adrese on ne dozvoljava, smatra to duplikatom...
 
Ovakve stvari se obicno rade na nivou baze podataka. Mozes da kombinujes polja koja hoces da budu unique.
 
Ali, onda imam problem ako je NULL ili prazno polje, to racuna isto kao i da sam napisao neku adresu. Razumes?

Na primer, postoje dva Petra Petrovica sa razlicitim brojevima telefona i bez adrese, to mi nece dozvoliti da ubacim vec ce reci da je dupla adresa.
 
Tako sam vec uradio, ali onda kad unesem:

Marko Markovic 069555444 [ne unesem adresu]
Marko Markovic 069111222 [ne unesem adresu]

izbaci da je duplikat jer racuna da je isti covek na osnovu adrese, iako nista nisam uneo.

E sad, ako si mislio da kolumne postavim kao NULL, zar nece onda biti uneta nula ako polje bude prazno?
 
Poslednja izmena:
Pa nateraj korisnika (obaveznim unosom) da unese određena polja, koja su tebi bitna za rad app.
 
Onda nisi dodao da i broj telefona bude u unique constraint grupi.
 
Da bi to sprecio moras da dodas sva polja u primarni kljuc cija kombinacija odredjuje jednog unikatnog korisnika. U tvom slucaju (iz postova), to je ime + prezime + ulica + mobilni.
Kada to uradis, trebalo bi da ti budu pokrivene sve kombinacije koje si nabrojao.
 
Nazad
Vrh Dno