Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

NuPotSaStergOInregistrareCeContineSpatiuIntrUnCamp[REZOLVAt]
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Subiectul anterior :: Subiectul următor  
Autor Mesaj
teocudinti



Data înscrierii: 07/Sep/2008
Mesaje: 3

Trimis: Dum Sep 07, 2008 11:44 am    Titlul subiectului: NuPotSaStergOInregistrareCeContineSpatiuIntrUnCamp[REZOLVAt]  

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 ?
Sus  
teocudinti



Data înscrierii: 07/Sep/2008
Mesaje: 3

Trimis: Dum Sep 07, 2008 2:08 pm    Titlul subiectului:  

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)
Sus  
vectorialpx



Data înscrierii: 01/Mar/2005
Mesaje: 3001
Locație: țopăi pe tasta DELETE

Trimis: Dum Sep 07, 2008 4:08 pm    Titlul subiectului:  

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!
Sus  
teocudinti



Data înscrierii: 07/Sep/2008
Mesaje: 3

Trimis: Lun Sep 08, 2008 2:22 pm    Titlul subiectului:  

Multumesc frumos pentru sfaturi. Salutari!
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community