Probleem bij weergeven van row met links erin

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Erwin

Erwin

16/05/2006 17:18:00
Quote Anchor link
Ik heb dit script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>'
;
    }
}

?>


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?
 
PHP hulp

PHP hulp

16/11/2024 20:31:55
 
Arjan Kapteijn

Arjan Kapteijn

16/05/2006 17:22:00
Quote Anchor link
Doe eens een echo $query en voer die uit in phpmyadmin.
 
Erwin

Erwin

16/05/2006 17:26:00
Quote Anchor link
Sorry ben niet zo bekend hiermee kun je even in een paar zinnen extra uitleggne wat je bedoeld?
 
Frank -

Frank -

16/05/2006 17:29:00
Quote Anchor link
Voor de 1000-ste keer: Controleer altijd of je query wel is gelukt! Je weet zeker dat deze vroeg of laat zal MISlukken, dat blijkt nu al wel.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
$result = mysql_query($query); // dit heb je al

// dit onder deze regel zetten:
if(!$result){ // query is mislukt
  echo 'Fout: '.mysql_error().' met query: '.$query;
  die(); // kan beter...
}

// rest van je script
 
Erwin

Erwin

16/05/2006 18:44:00
Quote Anchor link
Ik krijg deze melding:

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
 
Frank -

Frank -

16/05/2006 18:55:00
Quote Anchor link
Dit is de query:
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)
PHP script in nieuw venster Selecteer het PHP script
1
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
";


Edit: Opmaak aangepast
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
- SanThe -

- SanThe -

16/05/2006 19:01:00
Quote Anchor link
Quote:
Frank schreef op 16.05.2006 17:29
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. ;-)
 
Erwin

Erwin

16/05/2006 19:05:00
Quote Anchor link
@ SanThe -Lazy-:

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
 
Frank -

Frank -

16/05/2006 19:06:00
Quote Anchor link
@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.
 
Lissy Pixel

Lissy Pixel

16/05/2006 19:46:00
Quote Anchor link
Jep en voor alles is een eerste keer :)

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!!
 
Erwin

Erwin

16/05/2006 19:54:00
Quote Anchor link
Maar goed niemand die het weeet dus?
 
Robert Deiman

Robert Deiman

16/05/2006 20:02:00
Quote Anchor link
De variabele $site die je op regel 43 hoogst waarschijnlijk probeert te echo'en, of je wil hem in een query gebruiken bestaat niet.
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.
 
Erwin

Erwin

16/05/2006 20:13:00
Quote Anchor link
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!
 
Frank -

Frank -

16/05/2006 20:21:00
Quote Anchor link
Waar moeten $site vandaan komen? Uit de database? Met mysql_fetch_array() heb je de boel in een array gezet, $row om precies te zijn. Wanneer je dan de sleutel 'site' gebruikt, zal het moeten lukken. Dus:
<php
echo $row['site']; // i.p.v. echo $site;
?>
 
Erwin

Erwin

16/05/2006 20:31:00
Quote Anchor link
@frank:

Dit is de regel zoals hij nu is:
<a href="'.$site.'">'.$naam.'</a><br />

Echter:
<a href="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $row['site']; ?>
">'.$naam.'</a><br />
dit werkt ook niet :$

WAt doe ik nou fout???
 
Frank -

Frank -

16/05/2006 20:39:00
Quote Anchor link
'dit werkt niet' zegt helemaal niemand iets. Kijk eens hoe je html-broncode er uit ziet en vertel ons dan eens wat er aan ontbreekt.

Je vergeet in elk geval de echo, dat wil nog wel eens helpen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $row['site']; ?>
 
Erwin

Erwin

17/05/2006 09:09:00
Quote Anchor link
Ik heb van dit:
<a href="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $row['site']; ?>
">'.$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="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $row['site'];?>
">'.$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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.