ik krijg deze foutmelding bij onderstaand script:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in....
er wordt verwezen naar de while regel in de foutmelding. De veroorzaker is de where regel in mijn select. als ik die regel weg haal, werkt het script normaal. weet iemand wat ik hier fout doe?
mijn bedoeling is dat alleen een record uit de database geselecteerd wordt als de einddatum over 60 dagen is.

<?PHP

$zestig_dagen_terug = mktime() - 60;
$result = mysql_query ( "SELECT
COALESCE( klant.klant_bedrijf,
klant.klant_achternaam ) AS naam,
product.prod_omschrijving AS omschrijving,
klant.klant_van AS van,
product.prod_ingang_datum AS ingangdatum,
product.prod_eind_datum AS einddatum
FROM producten AS product
JOIN klanten AS klant ON klant.klant_id = product.prod_klant_id
WHERE einddatum = '.$zestig_dagen_terug'");

include 'functions.php';

while ($row = mysql_fetch_assoc($result)) {
$naam = $row["naam"];
$omschrijving = $row["omschrijving"];
$ingangdate = date_create($row["ingangdatum"]);
$einddate = date_create($row["einddatum"]);
$ingangdatum = date_format($ingangdate, 'd-m-Y');
$einddatum = date_format($einddate, 'd-m-Y');

echo $naam . ' ' . $ingangdatum . ' t/m ' . $einddatum . '<BR/>';
?>
lol

volgens mij heb ik de DATE_FORMAT nu werkend. als ik onderstaande regel in mijn select plaats, krijg ik netjes dag-maand-jaar te zien.

<?PHP
DATE_FORMAT(product.prod_eind_datum, '%d-%m-%Y') AS einddatum
?>

nu probeer ik met de functie DATEDIFF de query te laten uitrekenen hoeveel dagen de einddatum min de datum van vandaag is, en dat moet dan gelijk zijn aan 60 dagen. ik heb een veld in prod_eind_datum naar 2012-11-03 gekrast en toen onderstaande code gedraaid in mijn phpmyadmin. alleen krijg ik nu 0 rijen terug, terwijl er toch 1 uit zou moeten komen. pas ik de functie niet goed toe?

<?PHP
SELECT prod_eind_datum
FROM producten
WHERE DATEDIFF('prod_eind_datum', CURRENT_DATE()) = 60?>
Als je de quotes om de kolomnaam weghaalt, zal het beter gaan, nu vergelijk je een string met een datum.
Ger van Steenderen op 04/09/2012 11:05:44

Als je de quotes om de kolomnaam weghaalt, zal het beter gaan, nu vergelijk je een string met een datum.


super, dit werkt!

Reageren