Autor Zpráva
Pávek
Profil *
Ahoj, zase prosím o radu.
V novinkách mám nějaké události, pokud už je datumově po události, smaže se z databáze, ale problém je z fotkou, která se nahrává na server při přidání události.
Jak mám smazat tuto fotku, jejíž název je zapsán v databázy?

můj kód:

 $vysledek = MySQL_Query("SELECT FROM novinky WHERE datum < DATE_ADD(NOW(), Interval -1 Day)");
            
        while ($radek2 = mysql_fetch_array($vysledek))
           { $foto = $radek2['foto']; 
               unlink("../images/akce/$foto");   }
   
  $smazat_cas=MySQL_Query("DELETE FROM novinky WHERE datum < DATE_ADD(NOW(), Interval -1 Day)"); 
Děkuji za rady
Joker
Profil
Pávek:
Jak mám smazat tuto fotku, jejíž název je zapsán v databázy?
Tak jak už je napsáno v té ukázce skriptu.
Vypíše to nějaké chyby (případně zapněte chybová hlášení)? Zkontrolujte tu cestu, jestli je správně.

Mimochodem, jelikož si v tom uvedeném kódu se hranice mazání počítá v každém dotazu znovu, může -možná spíš teoreticky- nastat situace, že druhý dotaz smaže víc záznamů než ten první (protože během toho mazání uplyne čas a do hranice spadnou další záznamy).
Čistší by bylo si tu hranici vypočítat v PHP do proměnné a pak použít v obou dotazech stejnou.
Pávek
Profil *
Joker:
Vypíše to nějaké chyby (případně zapněte chybová hlášení)? Zkontrolujte tu cestu, jestli je správně.
Vypíše to tuto chybu:

Poslání SQL příkazu se nepodařilo,
Popis chyby: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM novinky WHERE datum < DATE_ADD(NOW(), Interval -1 Day)' at line 1


Jinak DELETE FROM funguje bez problémů.


(protože během toho mazání uplyne čas a do hranice spadnou další záznamy).
Zas tolik záznamů tam nebude, jde jen o vypsání akcí jedné firmy.
Jan Tvrdík
Profil
Pávek:
$vysledek = MySQL_Query("SELECT `foto` FROM novinky WHERE datum < DATE_ADD(NOW(), Interval -1 Day)");
Pávek
Profil *
Jan Tvrdík:
Děkuji už to funguje..

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: