hallo,

ik ben wat php aan het leren met mysql erbij maar stuit al op een eerste probleem. namelijk dat ik een foutmelding krijg wanneer ik data uit de database probeer te halen.
ik gebruik volgende code:

<?php
$database = mysql_connect("localhost", "root", "")
or die("Verbinding met database mislukt: ". mysql_error());
echo "succesvol verbinding gemaakt<br />\n";
mysql_select_db("leerphp", $database) or die("kan geen verbinding maken met opgevraagde database");
echo "succesvol verbinding gemaakt met opgevraagde database<br />\n";
$sql = "SELECT * FROM artikel";
$result = "mysql_query($sql)";
while($rij = mysql_fetch_array($result)) {
echo $rij["artikel_id"] ."<br />\n";
echo $rij["naam"] ."<br />\n";
echo $rij["omschrijving"] ."<br />\n";
echo $rij["prijs"] ."<br />\n";
}
mysql_close($database);
?>

wanneer ik dit via lokaal via xampp open krijg ik volgende foutmelding:

"Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in E:\documenten\php bestanden\test\databaseverbinding.php on line 9"

weet iemand wat ik fout doe en hoe ik dit kan oplossen?
dank bij voorbaat
en hoe doe ik dat?

edit: inderdaar, stond er daarnet nog niet.
ik ga dit even bekijken. alvast bedankt.
Zie mijn link ^^
Nog wat andere tips:
gebruik in php (echo) liever ' en dan kun je in html probleemloos " gebruiken. Anders zul je telkens moeten escapen.
Geen * maar benoem het veld, de velden die je wilt ophalen.
Waarom mysql_fetch_array en geen mysql_fetch_assoc?
geeft zelfde foutmelding met mysql_fetch_assoc.

met onderstaande code erbij geplaatst werkt het zoals het zou moeten, maar wanneer ik deze code terug weg doe, loopt het weer mis.

<?php
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);

# sql debug
define('DEBUG_MODE',true); // true == aan, false == uit
$error = mysql_error();
$tekst = "fout!!";
# functie voor sql debug
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}

if (($result = mysql_query($sql)) === false)
{
echo showSQLError($sql,mysql_error(),'Fout met database.');
}
?>
Welke error krijg je? Vergeet ook niet na lijn 25 te kijken of mysql_query true is, en waar je dan die mysql_fetch_assoc() plaatst.
Zoals je aan de kleurtjes en aan de foutmelding had kunnen zien klopt de input parameter van de mysql_fetch_array() niet.

Als je regel 9: $result = "mysql_query($sql)";
even aanpast naar $result = mysql_query($sql);
Dus de " weghalen zou het moeten werken.
Dat zag ik ook Gerben. Dit heeft niet met errorhandling van doen, maar gewoon met de syntax. Basis, dus laten we het niet moeilijker maken dan nodig.
bedankt voor jullie reacties en te helpen.
het is nu opgelost.
wat ik wel raar vind is dat het met de errorhandling ook werkte.

Reageren