Hm, jeg har lavet en test her men ved ikke hvad min 'condition' skulle være, kan du evt. se det ud fra nedenstående :-)
<?php include ('database.php'); $idag= time();
$sql = "SELECT `id`, `billede` FROM `tabel` WHERE `godkendt`='1' AND `date`<'".$idag."'"; $result = mysql_query($sql) or die (mysql_error()); echo '<p>Fandt '.mysql_num_rows($result).' for gamle billeder i databasen.</p>';
$arrIds = array(); while ($row=mysql_fetch_assoc($result)) { $arrIds[] = '`id`='.$row['id']; unlink("images/fotos/" . $row['billede']); unlink("images/fotos/thumb_" . $row['billede']); } echo '<p>'.count($arrIds).' billeder og thumbnails slettet i mappen.</p>';
$sql = "DELETE FROM `tabel` WHERE ".implode(' OR ', $arrIds); $result = mysql_query($sql) or die (mysql_error()); echo '<p>'.mysql_affected_rows().' billeder slettet i databasen.</p>'; ?>
så kan det være du forstår hvor han ville hen med det, men er det så lige meget med det der implode('OR', $arrIds) ?? :-)
$idag definere datoen idag(aktuelle dato)
Synes godt om
Slettet bruger
06. april 2012 - 13:12#7
skrevet ud:
DELETE FROM `events` WHERE 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 '' at line 1
Tak olebole for løsningen, den ser ud til at fungere fint, bortset fra syntax error, men håber jeg vi får løst herinde :-)
- men jeg har vist ikke fået mail om din kommentar i den anden tråd, hvorfor jeg ikke har reageret der ... sorry =)
Synes godt om
Slettet bruger
06. april 2012 - 13:28#10
Som jeg skrev før :-)
DELETE FROM `events` WHERE 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 '' at line 1
Det er i orden olebole, måske kan du være behjælpelig her :-)
$sql = "DELETE FROM `tabel` WHERE ".implode(' OR ', $arrIds); echo $sql.'<br>'; $result = mysql_query($sql) or die (mysql_error());
Synes godt om
Slettet bruger
06. april 2012 - 13:36#12
Når jeg bruger koden #11 udskriver den dette:
DELETE FROM `tabel` WHERE 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 '' at line 1
$sql = "DELETE FROM `tabel` WHERE ".implode(' OR ', $arrIds); echo $sql.'<br>'; //$result = mysql_query($sql) or die (mysql_error());
Synes godt om
Slettet bruger
06. april 2012 - 13:49#14
den siger bare : DELETE FROM `tabel` WHERE men det er jo nok fordi der er for mange '' et eller andet sted inmellem WHERE og .implode(' OR ', $arrIds); ??
Nej, der må være noget, du ikke fortæller. Du må få skrevet SQL-sætningen ud. Jeg kan ikke gennemskue, hvad det er du gør galt, men koden i #13 giver et andet resultat
Men jeg tror, jeg også i denne tråd lader mig trække rundt ved næsen af ting, du gør - og som jeg ikke forstår =)
Allerede i forrige tråd burde jeg vist have foreslået:
<?php include ('database.php'); $idag= time();
$sql = "SELECT `id`, `billede` FROM `tabel` WHERE `godkendt`='1' AND `date`<'".$idag."'"; $result = mysql_query($sql) or die (mysql_error()); echo '<p>Fandt '.mysql_num_rows($result).' for gamle billeder i databasen.</p>';
while ($row=mysql_fetch_assoc($result)) { unlink("images/fotos/" . $row['billede']); unlink("images/fotos/thumb_" . $row['billede']); }
$sql = "DELETE FROM `tabel` WHERE `godkendt`='1' AND `date`<'".$idag."'"; mysql_query($sql) or die (mysql_error()); echo '<p>'.mysql_affected_rows().' billeder slettet i databasen.</p>'; ?>
Synes godt om
Slettet bruger
06. april 2012 - 13:59#18
var_dump($arrIds); $sql = "DELETE FROM `tabel` WHERE ".implode(' OR ', $arrIds);
udskriver dette :
array(0) { } DELETE FROM `events` WHERE 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 '' at line 1
Ja, det er fordi, der ikke er billeder, der skal slettes. Prøv koden i #17 i stedet. Men husk, at du ikke kan tjekke, om det virker, hvis du ikke har billeder, der skal slettes. Denne kode bør dog ikke smide fejl, hvis ingen billeder skal slettes *o)
Synes godt om
Slettet bruger
06. april 2012 - 14:03#20
Det vil sige at #17 virker og den skal jeg bruge i stedet for det du foreslog den anden dag ? :-)
Ellers tak, jeg samler ikke point. Christian var faktisk inde på det rigtige i #4, så mon ikke han burde have dem? =)
Undskyld, jeg lod mig forvirre i den forrige tråd. Havde jeg holdt hovedet lidt køligere, havde jeg sparet dig for en masse bøvl! :o|
Synes godt om
Slettet bruger
06. april 2012 - 14:15#24
Det går nok, jeg fik det løst her til sidst :-)
Synes godt om
Slettet bruger
09. april 2012 - 15:34#25
svar
Synes godt om
Slettet bruger
12. april 2012 - 14:36#26
Hej Ole, Tænkte på om du vidste hvordan jeg udbyggede koden så jeg fik et interval på 12 timer eller sådan noget, så den ikke sletter lige når datoen skifter men evt. 1 dag efter, så man faktisk kan se eventen på selve dagen også, for med den nuværende kode slette den jo med det samme dvs. kl. 00.01 og den skulle jo helst være synlig den aktuelle dato også om dagen :-)
Ja, så kan du rykke $idag et antal timer frem - f.eks. 12:
$idag = time()+(60*60*12);
Ret de 12, hvis du ønsker et andet antal timer
Synes godt om
Slettet bruger
13. april 2012 - 16:34#28
Hm det prøvede jeg lige, det er som om at den sletter 12 timer forud? :-/ Hmm testede det lige og der slettede en event der først var d. 14 april? det er jo i morgen først?! :-o
Sorry, min fejl - meeeen det undrer mig, du ikke lige selv tænker dig lidt omkring *o)
$idag = time()-(60*60*12);
Synes godt om
Slettet bruger
13. april 2012 - 17:46#30
Jamen jeg kan ikke kode php ;-) Derfor jeg ikke tænker mig om, er grafiker, ikke programmeringsekspert :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.