 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| 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 |
|
| |
|