Ik heb hier een forumpje gevonden, maar wil dat zelf een beetje uitbreiden! Nu heb ik volgende. Gebruikers kunnen zich registreren & Avatars instellen. Daar loopt het goed. Maar als je het forum wilt bekijken (en in dit geval een topic) zegt hij Unknown column 'Admin' in 'where clause'.
Dit is de code
<?php
if(!isset($_GET['id']))
{
echo 'dit kan niet, ga terug waar je vandaan kwam';
}else{
$id=$_GET['id']; // dmv van dit regeltje
include('../dbconfig.php');
// nu even verbinden met de database
$sql="SELECT * FROM vraag WHERE id=".$id.";";
$resultaat=mysql_query($sql)or die(mysql_error());
$rij=mysql_fetch_array($resultaat);
$naam = $rij['naam'];
$sql3="SELECT * FROM ForumGebruikers WHERE Username=".$naam.";";
$resultaat3=mysql_query($sql3)or die(mysql_error());
$rij3=mysql_fetch_array($resultaat3);
?>
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0">
<tr><td bgcolor="#3f3f3f" width="90" align="top" valign="top"><br><center>
<img src="<?php echo $rij3['Avatar']; ?>" alt="<? echo $rij['naam']; ?>"><br>
<br></center></td>
<td align="top" valign="top">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr><td bgcolor="#3f3f3f"><font size="2"><strong>
<? echo $rij['topic'];?> <i>by <a href="mailto:<? echo $rij['email'];?>"><? echo $rij['naam'];?></a></i>
</strong></font></td></tr><tr><td>
<? echo $rij['bericht'];?><hr color="#3f3f3f">
</td></tr>
<tr><td><strong>Datum/tijd : </strong>
<? echo $rij['datumtijd'];?>
</td></tr></table></td></tr></table><BR>
<form name="form1" method="post" action="./reactie.php?id=<? echo $rij['id']; ?>">
<input type="submit" Value="Plaats Reactie">
</form><br>
<?
Ik weet niet hoe, maar hij vind die Username niet! Ook al staan ze in onze database. Wie kan mij helpen?
Waar is de controle? Nu voer je gewoon 2 queries uit (en je voert ze altijd allemaal uit) zonder dat dit ook maar iets extra oplevert. De controle op $resultaat4 is ook alleen maar of de query is gelukt, niet of er resultaten zijn.
Kortom, de volgorde is niet correct en de controles zijn verkeerd.
Tip: Doe iets aan je naamgevingen, $naam3, $rij4, etc. etc., het is vragen om problemen. Gebruik uitsluitend nummers wanneer het echt niet anders kan, in bovenstaand script is het volkomen overbodig om te gaan nummeren.
Thx om me erop te wijzen voor die controle's :) Die heb ik er nu wel degelijk ingezet. Die nummers doe ik voor mij het gemakkelijk te maken. Ik ben nog niet zo goed in PHP maar ik wil het me niet te moeilijk maken.
Ik denk dat het hier al mis gaat met de resultaten en dat is ook meteen de query die je niet controleerd:
$sql="SELECT * FROM vraag WHERE id='".$id."'";
Als je het goed hebt gemaakt is id een numeric veld. (int, smallint, tiniyint) Deze query zal dan ook nooit het gewenste resultaat geven, omdat vanwege de enkele quotes in je query de waarde van $id als een string (stukje tekst) wordt behandeld.
Zorg ook bij deze query voor de controle die je bij de rest van de querys ook hebt gemaakt.