Ik heb een website waar ik mijn muziekcollectie laat zien.(http://www.cornmillmusic.nl)
Deze wil ik nu aanpassen met een database en een zoekfunctie, waardoor de bezoekers sneller hun artiest kunnen vinden.
Nu heb ik op net een scripts gevonden, maar ik krijg deze foutmelding:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/rakkerde/public_html/musictest/searchtest.php on line 24

ik kan deze fout niet traceren, is er iemand die weet wat ik fout doe??.

Hier het script:

<html xmlns="http://www.w3.org/1999/xhtml">;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Database Search by </title>
</head>

<body>
<form method="post" action="<?php $PHP_SELF; ?>">
<input type="text" name="search" size=25 maxlength=25>
<input type="Submit" name="Submit" value="Submit">
</form>

<?php
//connect to mysql

mysql_connect("localhost","********","******");
mysql_select_db("test400");

$search=$_POST["search"];

$result = mysql_query("SELECT * FROM news WHERE message LIKE '%$search%'");


while($row=mysql_fetch_array($result))
{


$title=$row["title"];
$message=$row["message"];
$who=$row["who"];
$date=$row["date"];
$time=$r["time"];
$id=$r["id"];

echo "$title <br> $message <br> $who <br> $date | $time <br>";
}
?>



</body>
</html>
This code
De query zal mislukt zijn, maar dat controleer jij nergens. Dus even checken of $result TRUE (gelukt) of FALSE (mislukt) is en klaar is klara.

<?php $PHP_SELF; ?> mag trouwens niet werken, doet het dat wel, dan is jouw server zo lek als een mandje. $_SERVER['PHP_SELF'] is de aanpak anno 2007 (al veel langer, maar goed...).
Probleem is verholpen, er zaten een aantal fouten in.
Bedankt voor het op weg helpen, dit is het script wat wel werkt:

<?
//connect to mysql
//change user and password to your mySQL name and password
mysql_connect ("localhost", "*******", "*******") or die("Localhost niet gevonden");

//select which database you want to edit
mysql_select_db ("rakkerde_test400") or die ("Database niet gevonden");

$search=$_POST["search"];

//get the mysql and store them in $result
//change whatevertable to the mysql table you're using
//change whatevercolumn to the column in the table you want to search
$query = ("SELECT * FROM news WHERE message LIKE '%$search%'") or die ("There was an error");
$result = mysql_query($query);

/* make sure data was retrieved */
$numrows = mysql_num_rows($result);
if ($numrows == 0) {
echo "No data to display!";
exit;
}

//grab all the content
while($row=mysql_fetch_array($result))
{
//the format is $variable = $r["nameofmysqlcolumn"];
//modify these to match your mysql table columns

$title=$row["title"];
$message=$row["message"];
$who=$row["who"];
$date=$row["date"];
$time=$row["time"];
$id=$row["id"];

//display the row
echo "$title <br> $message <br> $who <br> $date | $time <br>";
}
?>
<?
$result = mysql_query($query);
?>
En waar controleer jij of $result TRUE of FALSE is? Dus is gelukt of juist is mislukt. Dat mag nooit ontbreken, je hebt namelijk geen enkele garantie dat de query zal gaan lukken. Verder wil je geen foutmeldingen zoals
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/rakkerde/public_html/musictest/searchtest.php on line 24
op het scherm hebben, daarmee geef je hackers mogelijk belangrijke informatie over jouw systeem.

Foutafhandeling is de basis van een goed systeem. Tevens maakt het debuggen een stuk eenvoudiger.

Reageren