Afbeelding uit Database!
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 ;
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
$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\"> ";
}
} else {
echo "Geen afbeeldingen voor dit artikel<br />\n";
}
$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\"> ";
}
} 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
Je checked niet of je query is gelukt. Zo te zien lukt die dus niet.
Dat staat al in de required db file of je moet wat anders bedoelen?
$afbeeldingen = mysql_query($sql) or die(mysql_error());
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Wat kan dat wezen??
En dan ?
Nee helaas Kees dat helpt ook niet!
Donderse schreef op 24.12.2007 15:07:
..... near '' .....
Leeg. Je var is leeg.
Wat zou dat '' zijn dan?
Is $afbeelding leeg? er staat toch echt wat in de database en ander zou ie deze echo: Geen afbeeldingen voor dit artikel
Moeten geven.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sql = "
SELECT *
FROM Afbeelding
WHERE ARTIKEL_ID = " . $rij['ARTIKEL_ID'];
if (!$afbeeldingen = mysql_query($sql)) {
echo htmlentities (str_replace ("\t", '', $sql));
}
?>
$sql = "
SELECT *
FROM Afbeelding
WHERE ARTIKEL_ID = " . $rij['ARTIKEL_ID'];
if (!$afbeeldingen = mysql_query($sql)) {
echo htmlentities (str_replace ("\t", '', $sql));
}
?>
Witte ketting
SELECT * FROM Afbeelding WHERE ARTIKEL_ID =
Omschrijving:
blabla
Prijs per stuk: € 12.55
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.
heb je toevallig het boek van arjan burger?
Hier de rest van mijn script erbij misschien zien jullie dan het probleem:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?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\"> ";
}
} else {
echo "Geen afbeeldingen voor dit artikel<br />\n";
}
echo "Omschrijving:<br />".$product->Omschrijving."<br />\n";
echo "Prijs per stuk: € ".$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";
}
}
?>
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\"> ";
}
} else {
echo "Geen afbeeldingen voor dit artikel<br />\n";
}
echo "Omschrijving:<br />".$product->Omschrijving."<br />\n";
echo "Prijs per stuk: € ".$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
als ik het zo doe:
of zo:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?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 . '"> ';
}
}
else
{
echo 'Geen afbeeldingen voor dit artikel<br />' . "\n";
}
echo 'Omschrijving:<br />' . $product->Omschrijving . '<br />' . "\n";
echo 'Prijs per stuk: € ' . $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";
}
}
?>
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 . '"> ';
}
}
else
{
echo 'Geen afbeeldingen voor dit artikel<br />' . "\n";
}
echo 'Omschrijving:<br />' . $product->Omschrijving . '<br />' . "\n";
echo 'Prijs per stuk: € ' . $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!