Am facut o simpla aplicatie php care uplodeaza jpg-uri pe server si le trece numele intr-o baza de date MySql. Atunci cand vreau sa sterg o anumita inregistrare din db folosesc
$query = "DELETE FROM poze WHERE nume='$y'";
$result = mysql_query($query);
Functioneaza in toate cazurile cu o exceptie (pana acum :)).Atunci cand numele unei poze are un spatiu (Ex. "aaa bbb.jpg") inregistrarea nu se sterge.
Am incercat sa customizez codul doar pt acea inregistrare, adica :
$query = "DELETE FROM poze WHERE nume='aaa bbb.jpg'";
$result = mysql_query($query);
Fara rezultate.
Am intrat in PhpMyAdmin si am sters inregistrarea manual.Codul returnat a fost:
DELETE FROM `poze` WHERE CONVERT(`poze`.`nume` USING utf8) = 'aaa bbb.jpg' LIMIT 1
(l-am testat si pe acesta din codul meu php si nu a mers)
Tot din PhpMyAdmin am reusit sa sterg poza cu
DELETE FROM poze WHERE nume='aaa bbb.jpg'
Cred ca query-ul meu este modificat pana sa ajunga la Mysql de pe server.Culmea ca functioneaza pt nume fara spatii.Serverul este pe linux.
Vre-o idee ?
NuPotSaStergOInregistrareCeContineSpatiuIntrUnCamp[REZOLVAt]
Moderatori: Zamolxe, Moderatori
-
teocudinti
- PHPRomania Supporter
- Mesaje: 7
- Membru din: Dum Sep 07, 2008 12:19 pm
NuPotSaStergOInregistrareCeContineSpatiuIntrUnCamp[REZOLVAt]
Ultima oară modificat Lun Sep 08, 2008 3:24 pm de către teocudinti, modificat 1 dată în total.
-
teocudinti
- PHPRomania Supporter
- Mesaje: 7
- Membru din: Dum Sep 07, 2008 12:19 pm
Am gasit problema.
Citesc categoria si subcategoria din 2 drop-downuri.
select mySql functie de cele 2 valori de mai sus
salvez sursele pozelor intr-un hash
nume_hash[this.src]=1
(ex nume_hash["img/cat/subcat/aaa bbb.jpg"]=1)
pana aici totul este ok
apelez functie java delete
for (var i in nume_hash){
if (nume_hash[i]==1){
alert(i);
};
};
in loc sa-mi afiseze img/cat/subcat/aaa bbb.jpg
imi afiseaza htXtp://bla/img/cat/subcat/aaa%20bbb.jpg
Undeva in browser se face aceasta inlocuire ceea ce ar fi ok daca nu ar fi acel %20 in nume. O sa renunt la numele pozelor si o sa folosesc un id_poza. Problema ramane totusi.
Din pacate in prima postare am facut o greseala
$query = "DELETE FROM poze WHERE nume='aaa bbb.jpg'" FUNCTIONEAZA (sper sa nu va fi indus prea mult in eroare)
Citesc categoria si subcategoria din 2 drop-downuri.
select mySql functie de cele 2 valori de mai sus
salvez sursele pozelor intr-un hash
nume_hash[this.src]=1
(ex nume_hash["img/cat/subcat/aaa bbb.jpg"]=1)
pana aici totul este ok
apelez functie java delete
for (var i in nume_hash){
if (nume_hash[i]==1){
alert(i);
};
};
in loc sa-mi afiseze img/cat/subcat/aaa bbb.jpg
imi afiseaza htXtp://bla/img/cat/subcat/aaa%20bbb.jpg
Undeva in browser se face aceasta inlocuire ceea ce ar fi ok daca nu ar fi acel %20 in nume. O sa renunt la numele pozelor si o sa folosesc un id_poza. Problema ramane totusi.
Din pacate in prima postare am facut o greseala
$query = "DELETE FROM poze WHERE nume='aaa bbb.jpg'" FUNCTIONEAZA (sper sa nu va fi indus prea mult in eroare)
- vectorialpx
- Senior Member
- Mesaje: 4832
- Membru din: Mar Mar 01, 2005 9:48 am
- Localitate: Bucuresti
- Contact:
poate sa contina orice... daca e string functioneaza. Daca nu puneai ghilimele la clauza [WHERE `camp`=] atunci erau probleme dar, astfel nu ar trebui sa fie nici o problema.
Rolul interventiei mele ar fi altul decat confirmarea "functioneaza si cu spatii": e ideal sa faci stergere / update dupa chiea primara [asta in cazul in care nu faci asta deja].
Eu folosesc ca si cheie primara numere pentru ca le ti socoteala mult mai simplu si... e bine [asa e indicat] sa faci dupa cheia primara operatiile astea tocmai pentru ca acel camp are proprietatea de a contine inregistrari unice deci, nu vei sterge / modifica nimic aiurea. In cazul tau, daca ai doua fisiere cu acelasi nume, le vei sterge pe ambele
bafta!
Rolul interventiei mele ar fi altul decat confirmarea "functioneaza si cu spatii": e ideal sa faci stergere / update dupa chiea primara [asta in cazul in care nu faci asta deja].
Eu folosesc ca si cheie primara numere pentru ca le ti socoteala mult mai simplu si... e bine [asa e indicat] sa faci dupa cheia primara operatiile astea tocmai pentru ca acel camp are proprietatea de a contine inregistrari unice deci, nu vei sterge / modifica nimic aiurea. In cazul tau, daca ai doua fisiere cu acelasi nume, le vei sterge pe ambele
bafta!
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 6 vizitatori