Hallo beste mensen,
Ik heb een probleempje met een stukje script waarbij ik als de gegevens in de database staan ze worden vertoont op een pagina:

DE Table:

CREATE TABLE `afbeelding` (
`AFBEELDING_ID` bigint(20) NOT NULL auto_increment,
`ARTIKEL_ID` bigint(20) NOT NULL default '0',
`Bestandstype` varchar(5) collate latin1_general_ci NOT NULL default '',
PRIMARY KEY (`AFBEELDING_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=8 ;

$sql = "SELECT * FROM Afbeelding WHERE ARTIKEL_ID=".$rij["ARTIKEL_ID"];
		$afbeeldingen = mysql_query($sql);
		if (mysql_num_rows($afbeeldingen) > 0) {
			while ($afb_rij = mysql_fetch_array($afbeeldingen)) {
					$bestandsnaam = $sitepad.$afb_rij["AFBEELDING_ID"].$afb_rij["Bestandstype"];
					echo "<img src=\"$bestandsnaam\">&nbsp;";
				}
		} else {
		echo "Geen afbeeldingen voor dit artikel<br />\n";
		}


Ik krijg steeds deze melding: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in blablabla

Waar zit nu mijn probleem? Ik zie het niet.
Mvg. Sander
$rij['ARTIKEL_ID'] is dus leeg.
Waar wordt dit gevuld?
Ik heb in de database gekeken maar die is niet leeg hoor rij ARTIKEL_ID!!
Maar het is een $var, heeft dus niks met de database te maken.
Dit script komt me erg bekent voor,
heb je toevallig het boek van arjan burger?
ARTIKEL_ID is een rij in de database dan moet $rij["ARTIKEL_ID"] toch de waarde krijgen uit de database en als die leeg is zou je de melding moeten krijgen geen afbeelding! Anders snap ik niet wat je bedoeld

Hier de rest van mijn script erbij misschien zien jullie dan het probleem:

<?php
require "db.php";
// producten laten zien
$sitepad = "/uploadimages/";
$sql = "SELECT ARTIKEL_ID, Naam, Omschrijving, Prijs
       FROM Artikel
       ORDER BY Naam";    // dit is dus de query om de producten op te halen
$query = mysql_query($sql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__); // als de query niet uitgevoerd wordt geeft die een foutmelding met bestandsnaam en regelnummer
$num = mysql_num_rows($query); // Het aantal producten

if(empty($num)) {
  echo "<p>Er zijn geen producten gevonden.</p>\n";
} else {
  // Laat de producten zien
  while($product = mysql_fetch_object($query)) {
    echo "<form action=\"add.php\" method=\"post\">\n";
    echo "<input type=\"hidden\" name=\"ARTIKEL_ID\" value=\"".$product->ARTIKEL_ID."\" />\n";
    echo "<p>".$product->Naam."<br />\n";
		$sql = "SELECT * FROM Afbeelding WHERE ARTIKEL_ID=".(int)$rij["ARTIKEL_ID"];
		$afbeeldingen = mysql_query($sql) or die(mysql_error());
		if (mysql_num_rows($Afbeeldingen) > 0) {
			while ($afb_rij = mysql_fetch_array($Afbeeldingen)) {
					$bestandsnaam = $sitepad.$afb_rij["AFBEELDING_ID"].$afb_rij["Bestandstype"];
					echo "<img src=\"$bestandsnaam\">&nbsp;";
				}
		} else {
		echo "Geen afbeeldingen voor dit artikel<br />\n";
		}
	 echo "Omschrijving:<br />".$product->Omschrijving."<br />\n";
    echo "Prijs per stuk: &euro; ".$product->Prijs."<br />\n";
    echo "<input type=\"hidden\" name=\"hoeveelheid\" size=\"2\" maxlength=\"2\" value=\"1\" />\n";
    echo "<input type=\"submit\" value=\"Toevoegen\" /></p>\n";
    echo "</form>\n";
  }
}
?> 
$rij["ARTIKEL_ID"] moet dus zijn $product->ARTIKEL_ID
Hmm nog steeds dezelfde melding!
als ik het zo doe:
$sql = "SELECT * FROM Afbeelding WHERE ARTIKEL_ID=".(int)$product->ARTIKEL_ID;

of zo:
$sql = "SELECT * FROM Afbeelding WHERE ARTIKEL_ID=".(int)$rij["$product->ARTIKEL_ID"];
Ik heb er een aantal foutjes uitgehaald.
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

require "db.php";
// producten laten zien
$sitepad = "/uploadimages/";
$sql = "SELECT ARTIKEL_ID, Naam, Omschrijving, Prijs
FROM Artikel
ORDER BY Naam"; // dit is dus de query om de producten op te halen
$query = mysql_query($sql)
or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__); // als de query niet uitgevoerd wordt geeft die een foutmelding met bestandsnaam en regelnummer
$num = mysql_num_rows($query); // Het aantal producten

if(empty($num))
{
echo "<p>Er zijn geen producten gevonden.</p>\n";
}
else
{
// Laat de producten zien
while($product = mysql_fetch_object($query))
{
echo '<form action="add.php" method="post">' . "\n";
echo '<input type="hidden" name="ARTIKEL_ID" value="' . $product->ARTIKEL_ID . '" />' . "\n";
echo '<p>' . $product->Naam . '<br />' . "\n";
$sql = "SELECT *
FROM Afbeelding
WHERE ARTIKEL_ID=" . $product->ARTIKEL_ID;
$afbeeldingen = mysql_query($sql)
or die(mysql_error());
if (mysql_num_rows($afbeeldingen) > 0)
{
while ($afb_rij = mysql_fetch_array($afbeeldingen))
{
$bestandsnaam = $sitepad . $afb_rij['AFBEELDING_ID'] . $afb_rij['Bestandstype'];
echo '<img src="' . $bestandsnaam . '">&nbsp;';
}
}
else
{
echo 'Geen afbeeldingen voor dit artikel<br />' . "\n";
}
echo 'Omschrijving:<br />' . $product->Omschrijving . '<br />' . "\n";
echo 'Prijs per stuk: &euro; ' . $product->Prijs . '<br />' . "\n";
echo '<input type="hidden" name="hoeveelheid" size="2" maxlength="2" value="1" />' . "\n";
echo '<input type="submit" value="Toevoegen" /></p>' . "\n";
echo '</form>' . "\n";
}
}
?>
Geweldig bedankt het is nu voor elkaar!

Reageren