Probleem bij weergeven van row met links erin
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
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
<?php
error_reporting(E_ALL);
include("config.php");
$query = "SELECT le.naam, le.site, le_categorie.categorie".
"FROM le,le_categorie ".
"WHERE le.categorie = le_categorie.categorie";
$result = mysql_query($query);
$content = array();
while($row = mysql_fetch_array($result)){
$content[$row['categorie']][] = $row['naam'];
}
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"left\">
<tr>
<td width=\"285\" height=\"14\" bgcolor=\"#096ea1\">
<span class=\"style1\">Links:</span></td>
</tr>
</table>";
foreach($content as $categorie => $namen)
{
echo "<b><br />" . $categorie. ":</b><br />";
foreach($namen as $naam)
{
echo'
<body link="#000000" vlink="#000000" alink="#000000">
<a href="'.$site.'">'.$naam.'</a><br />
</body>';
}
}
?>
error_reporting(E_ALL);
include("config.php");
$query = "SELECT le.naam, le.site, le_categorie.categorie".
"FROM le,le_categorie ".
"WHERE le.categorie = le_categorie.categorie";
$result = mysql_query($query);
$content = array();
while($row = mysql_fetch_array($result)){
$content[$row['categorie']][] = $row['naam'];
}
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"left\">
<tr>
<td width=\"285\" height=\"14\" bgcolor=\"#096ea1\">
<span class=\"style1\">Links:</span></td>
</tr>
</table>";
foreach($content as $categorie => $namen)
{
echo "<b><br />" . $categorie. ":</b><br />";
foreach($namen as $naam)
{
echo'
<body link="#000000" vlink="#000000" alink="#000000">
<a href="'.$site.'">'.$naam.'</a><br />
</body>';
}
}
?>
Het geeft deze melding:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/httpd/vhosts/duursportersweb.nl/httpdocs/links/overzicht.php on line 11
Wat doe ik fout?
Doe eens een echo $query en voer die uit in phpmyadmin.
Sorry ben niet zo bekend hiermee kun je even in een paar zinnen extra uitleggne wat je bedoeld?
Fout: 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 'WHERE le.categorie = le_categorie.categorie' at line 1 met query: SELECT le.naam, le.site, le_categorie.categorieFROM le,le_categorie WHERE le.categorie = le_categorie.categorie
SELECT le.naam, le.site, le_categorie.categorieFROM le,le_categorie WHERE le.categorie = le_categorie.categorie
Zoals je kunt zien, is de FROM vastgeplakt aan le_categorie.categorie: le_categorie.categorieFROM Daar hoort natuurlijk nog een spatie tussen te staan.
Oplossing: Noteer je queries over meerdere regels zonder al die extra quotes en punten, dat maakt het een stuk overzichtelijker:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
$query = "
SELECT
le.naam,
le.site,
le_categorie.categorie
FROM
le,
le_categorie
WHERE
le.categorie = le_categorie.categorie
";
SELECT
le.naam,
le.site,
le_categorie.categorie
FROM
le,
le_categorie
WHERE
le.categorie = le_categorie.categorie
";
Edit: Opmaak aangepast
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Quote:
Frank schreef op 16.05.2006 17:29
Voor de 1000-ste keer: Controleer altijd of je query wel is gelukt!
Voor de 1000-ste keer: Controleer altijd of je query wel is gelukt!
@Frank: Je het helemaal gelijk maar voor Erwin is het waarschijnlijk pas de eerste keer. ;-)
Klopt helemaal maar ik snap wel dat het voor hem vervelend is.
Ik krijg nu deze melding:
Notice: Undefined variable: site in /home/httpd/vhosts/duursportersweb.nl/httpdocs/links/overzicht.php on line 43
Is dus wel een andere maar ik snap eerlijk gezegd niet wat ik fout doe
@SanThe: Helemaal mee eens, daar ging ik ook van uit. Vandaar dat er ook een stukje code bij zat. Deze heeft het probleem inmiddels ook al aan het licht gebracht. Hopelijk ziet Erwin nu ook het nut van dit soort controles. Iedere aanname 'het zal wel goed gaan' is een toekomstig probleem.
Ik weet nog dat ik hiermee goed "nat" ging om daarna nooit meer deze fout te maken en dus te checken want dat is wat je keer op keer doet in PHP alles checken en nooit ervan uit gaan dat "iets" goed gaat.
Suc6 in iedergeval!!
Maar goed niemand die het weeet dus?
Controleer of je die variabele wel hebt aangemaakt met de isset() functie (zie www.php.net) en als die bestaat, laat dan het script bij regel 43 doorlopen.
Nee die heb ik denk ik niet gedefinieerd maar ik ben niet echt thuis in PHP dus eerlij kgezegd hoop ik dat iemand mij er bij helpen kan om dat wel te doen anders weet ik ook echt niet hoe het moet!
<php
echo $row['site']; // i.p.v. echo $site;
?>
Dit is de regel zoals hij nu is:
<a href="'.$site.'">'.$naam.'</a><br />
Echter:
<a href="">'.$naam.'</a><br />
dit werkt ook niet :$
WAt doe ik nou fout???
Je vergeet in elk geval de echo, dat wil nog wel eens helpen.
<a href="">'.$naam.'</a><br />
Iets anders gemaakt, ik heb dit geprobeerd(let op, er valt ook een deel buiten het codeveld maar dit hoort er wel bij:
<a href="">'.$naam.'</a><br />
Maar dat geeft deze melding:
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /home/httpd/vhosts/duursportersweb.nl/httpdocs/links/overzicht.php on line 43
Gewijzigd op 01/01/1970 01:00:00 door Erwin