Pagina 1 din 1

Update fara duplicare dupa Select

Scris: Mie Oct 21, 2015
de trif
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

Update fara duplicare dupa Select

Scris: Mie Oct 21, 2015
de MarPlo
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.

Update fara duplicare dupa Select

Scris: Joi Oct 22, 2015
de trif
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

Update fara duplicare dupa Select

Scris: Joi Oct 22, 2015
de MarPlo
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.