Ik heb dus op men site www.zoekhoek.be links onderaan een spotlight ( hierin komen alle films die binnenkort uitkomen in de cinema ) , nu heb ik een script gemaakt dat als wanneer een film morgen uitkomt dat deze om bijvoorbeeld 25/04/2009 niet meer getoond wordt: Hierbij moet ook die films wegschreven worden in mijn nieuwe tabel waar al mijn overig films staan( die alreeds uit zijn). Maar mijn probleem is dat hij maar 1 maal wegschrijft naar mijn database. Hij past in elke loop wel de status aan( dus hij doet wel altijd de update ) maar doet maar 1maal een insert.

Hier mijn code:

<?php


include ('config.php');

$date = date('d-m-Y, l \a\t H:i');


$result = mysql_query("select * FROM zspotlights WHERE DATEDIFF(CURDATE(), rel) > 0 AND released = 0") or die(mysql_error());

$num_results = mysql_num_rows($result);

for ($i=0; $i < $num_results; $i++)
{


$row = mysql_fetch_array($result);

mysql_query("UPDATE zspotlights SET released = '1' WHERE DATEDIFF(CURDATE(), rel) >= 0 ") or die(mysql_error());

mysql_query("INSERT INTO zmovies (id, title, data, category, poster,date, image)
VALUES ('NULL', '$row[title]', '$row[data]', '$row[category]', 'admin' , '$date' , '$row[folder]')");


}


?>
$Vars buiten quotes houden.
Foutafhandeling inbouwen.
Quotes horen bij array()-keys.
Jouw date is geen datum.

Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
SanThe schreef op 25.04.2009 15:49
$Vars buiten quotes houden.
Foutafhandeling inbouwen.
Quotes horen bij array()-keys.
Jouw date is geen datum.

Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>



zit echt geen fouten in hoor, zelfs als ik reporting on sta. Er zit gewoon een foute logica in. kan iemand me helpen pls ... De datum is ok ..
Lekker handig hoor om NULL te insterten alszijnde lege string!

En ja, zoals reeds eerder is aangegeven:
PHP variabelen buiten qoutes
index keys van array's dienen geqoute te worden indien deze alphanumeriek zijn dus
$row[title] is fout
$row['title'] is goed

Voor de rest is or die() kerkhof taktiek, maak fatsoenlijke fouthandeling, je wilt immers niet dat het script ergens aan het begin of halverwege stopt omdat er een pruts foutje in je query zit.

De date is wel fout! Een datum tijd sla je op in het format Y-m-d H:i:s en dan ook nog date het veldtype DATETIME is!

Google eens op normalisatie van je database.

Je hebt hiervoor helemaal geen 2 tabellen nodig.

tabel zmovies moet enkel een veldje 'releasedatum' van het type date hebben.
En om dan de spotlight movies te tonen kan je dan een aangepaste query op deze tabel gebruiken.

SELECT ... FROM zmovies WHERE releasedatum > NOW() LIMIT 10;

(query helemaal niet getest)
Noppes schreef op 25.04.2009 16:08
Lekker handig hoor om NULL te insterten alszijnde lege string!

En ja, zoals reeds eerder is aangegeven:
PHP variabelen buiten qoutes
index keys van array's dienen geqoute te worden indien deze alphanumeriek zijn dus
$row[title] is fout
$row['title'] is goed

Voor de rest is or die() kerkhof taktiek, maak fatsoenlijke fouthandeling, je wilt immers niet dat het script ergens aan het begin of halverwege stopt omdat er een pruts foutje in je query zit.

De date is wel fout! Een datum tijd sla je op in het format Y-m-d H:i:s en dan ook nog date het veldtype DATETIME is!



als ik in men sql zo doe: $row['title'] crashed hij ... En waaroml voert hij maar 1 maal men insert uit dan ...
iemand die kan helpen? :(

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.
SanThe schreef op 25.04.2009 15:49
$Vars buiten quotes houden.
Foutafhandeling inbouwen.
Quotes horen bij array()-keys.
Jouw date is geen datum.

Ga eerst hier eens wat mee doen.
En met mijn post kan je ook wel al wat. Je hebt dan namelijk geen update en delete query meer nodig.. Alles gaat automatisch!

Reageren