Update fara duplicare dupa Select

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
trif
Mesaje: 500

Update fara duplicare dupa Select

Buna ziua,
Am urmatorul cod pentru update

Cod: Selectaţi tot

$sql = mysql_query("SELECT * FROM filme 
WHERE denumire = '$denumire' AND
cod='$cod' AND id = '$id_categorie'");
$row=mysql_fetch_array($sql);
if( mysql_num_rows($sql) > 1) {
echo 'Nu face update deoarece mai este un film cu acelasi nume in aceasta cateogrie';
}
else {
echo 'face update aici!';
}
 
Ce este mai sus verifica daca mai exista in bd un film cu denumirea din $denumire.
Daca este 1 sa faca update daca este mai mare de 1 sa imi dea mesajul ca mai este filmul respectiv.

Problema este ca imi selecteaza si imi zice ca este un rezultat cu denumirea noua $denumire si face update si du0a aceea o sa am 2 denumiri identice in tablela.
Daca pun alte conditii nu mai pot updata inregistrarea reala.

Deci de exemplu am urmatoarea lista:

Cod: Selectaţi tot

film1
film2
film3
Daca ii dau la film3 sa fie film1 imi schimba numele si o sa am lista urmatoare:

Cod: Selectaţi tot

film1
film2
film1
iar acum daca vreau sa modific film1 imi zice ca nu poate sa fie 2 filme cu acelasi nume.

Acum am incercat sa explic cat mai bine, sper ca se intelege.

Astept raspuns.
Multumesc anticipat.
Cu stima Trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje: 4343
Salut
Cred ca ar trebui sa faci Update daca conditia de la Select e 0, adica sa nu fie 1 fiindca asta arata ca e deja acea $denumire. Si scoti id-ul din select.

Cod: Selectaţi tot

$sql = "SELECT * FROM filme WHERE denumire = '$denumire' AND cod='$cod'";
Pui conditia " > 0" si la Update faci dupa $id_categorie.

trif Mesaje: 500
Buna ziua,
NU merge varianta de mai jos deoarece daca pun >0 atunci nu mai pot nici actualiza nici o inregistrare deoarece imi zice ca mai exista o data. Varianta asta este ca la insert dar la insert este valabila.

Alta varianta ar mai fi?

Astept raspuns.
Multumesc anticipat.
Cu stima Trif Alexandru
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje: 4343
Deci tu vrei ca denumirea sa fie unica, in cazul asta, ca sa eviti duplicare, seteaza coloana "denumire" cu atribut UNIQUE. Asa nu o sa mai fie 2 denumiri identice, la Insert nu va adauga randul daca mai e acea denumire, iar la Update nu va modifica coloana "denumire" daca mai e una la fel.
Asa nici nu mai e nevoie de Select.

Subiecte similare