ik heb de volgende query, hiermee wil ik alles selecteren wat langer dan 5 uur in de db staat.
<?php
$query = "SELECT userID FROM berichtalerts WHERE DATE_ADD(datum,INTERVAL 5 HOUR)";
?>

Als ik me niet vergis zou deze alle resultaten moeten ophalen waarbij de datum 5 uur vooruit is, nu werkt dit niet, want hij geeft alle resultaten gewoon weer.

Daarnaast zoek ik nog een uitbreiding hierop die ervoor zorgt dat oudere resultaten dan 5 uur ook weergegeven worden.
Dat dacht ik al ja. Maar het werkt nu dus?
toch nog een laatste dingetje
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

deze waarschuwing krijg ik zodra de query is uitgevoerd en er geen records meer uit de query komen rollen die de records selecteert die ouder dan 5 uur zijn.

ik heb er al een if statement met een mysql_num_rows voor geplaatst, maar dit helpt niet.

<?php
$query		= "SELECT userID FROM berichtalerts WHERE HOUR(TIMEDIFF(NOW(), datum)) >= 5";
$result		= mysql_query($query) or die (mysql_error());
if (mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_array($result))
{
	$query	= "SELECT 
					id
			    FROM 
					berichten
				WHERE
					userID_ontv = '".$row['userID']."' 
    			ORDER BY 
					datum DESC
				LIMIT 5";
	$result	= mysql_query($query) or die (mysql_error());

	$ids = array();
	while($row2 = mysql_fetch_assoc($result))
	{
    	$ids[] = $row2['id'];	
	}
	$ids = implode(',', $ids);
	
	$query = "DELETE FROM 
				berichten
    			WHERE 
					id NOT IN (".$ids.")";
	$result	= mysql_query($query) or die (mysql_error());
	
	$query = "DELETE FROM berichtalerts WHERE userID = '".$row['userID']."'";
	$result = mysql_query($query) or die (mysql_error());
}
}
?>
Dat komt hoogstwaarschijnlijk door hetzelfde puntje als dat ik vertelde over die $row. Je maakt namelijk binnen de while-loop weer een nieuwe $result aan en die wordt bij de eerst volgende loop in de mysql_fetch_array() gestopt.

Reageren