Hoi.

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>
&nbsp;&nbsp;<? 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?

Thx
Heeft met deze regel te maken:


$sql3="SELECT * FROM ForumGebruikers WHERE Username=".$naam.";";

Username bestaat uit een string (letters/cijfers) en niet uit een integer (een getal). Daarom moeten er quotes omheen in de query. Zo zou het wel goed moeten gaan:


$sql3="SELECT * FROM ForumGebruikers WHERE Username='".$naam."';";
Nu krijg ik die error nu meer, maar gewoon een wit vlak :p
Die ; in de query kan/moet weg.
Die is er uit wat weet ik dat het overbodig is. Maar het probleem is nu hij wil niets meer encrypten. Kan foutje zijn in HTML, maar als ik het test met robert zijn voorbeeld werkt het wel :) Thx alvast

EDIT: Problem verholpen :) had een } te weinig ;)
Errors?
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest van je script
?>
Nu ik hier toch zit. Ik haal een table uit SQL. Maar nu is mijn vraag. Als die nu niet bestaat, hoe laat ik dat PHP dan weten? ik dacht met een if maar zit vast :s
F. Tack schreef op 02.04.2007 09:33
........Ik haal een table uit SQL........ Als die nu niet bestaat,......

Wat bedoel je daarmee?
<?php
$query = "SELECT * FROM tabelnaam";
$result = mysql_query($query);

if($result){ // query gelukt
// doe iets, bv. mysql_fetch_assoc() e.d.
}
else { // query mislukt
echo 'Query mislukt vanwege de volgende fout: '.mysql_query();
}
?>
Verder kan het eigenlijk nooit voorkomen dat jij niet weet welke tabellen er in jouw database staan. Dit mag alleen voorkomen wanneer je PHPMyAdmin probeert na te maken, in alle andere systemen weet jij 100% zeker dat een tabel wel of niet bestaat. Het datamodel kan namelijk uitsluitend wijzigen doordat je met onderhoud o.i.d. bezig bent, maar dan moet je toch opnieuw testen.
<?
// Ask For ID
$id = $_GET['id'];

// Connect & Search Message ID
$sql = "SELECT * FROM vraag WHERE id='".$id."'";
$resultaat = mysql_query($sql)or die(mysql_error());
$rij = mysql_fetch_array($resultaat);

// Check For Account's
$naam = $rij['naam'];

$sql2 = "SELECT * FROM ForumGebruikers WHERE Username='".$naam."'";
$resultaat2 = mysql_query($sql2)or die(mysql_error());
$rij2 = mysql_fetch_array($resultaat2);

{
?>
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0">
<tr><td bgcolor="#3f3f3f" width="90" align="top" valign="top"><center>
<font size="2"><b><a href="mailto:<? echo $rij['email'];?>"><? echo $rij['naam']; ?></a></b></font></center>
<i>Berichten: <? echo $rij2['Berichten']; ?><br><br>
<center>
<img src="<? echo $rij2['Avatar']; ?>" alt="<? echo $rij['naam']; ?>" width="64" height="64"></center>
<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>
&nbsp;&nbsp;<? echo $rij['topic'];?> <i></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>
<?
// Select Reaction
$sql3 = "SELECT * FROM antwoord WHERE vraag_id='".$id."'";
$resultaat3 = mysql_query($sql3)or die(mysql_error());
$rij3 = mysql_fetch_array($resultaat3);

// Check Username For Avatar
$naam2 = $rij2['antwoord_naam'];
$sql4 = "SELECT * FROM ForumGebruikers WHERE Username='".$naam2."'";
$resultaat4 = mysql_query($sql4);

// Load Guest Account
$naam3 = "Gast";
$sql5 = "SELECT * FROM ForumGebruikers WHERE Username='".$naam3"'";
$resultaat5 = mysql_query($sql5);

// Checken of gebruikersnaam bestaat Anders Account Gast
if($resultaat6)
 {
  $rij4 = mysql_fetch_array($resultaat4);
 }
else {
  $rij4 = mysql_fetch_array($resultaat5);
 }
 {
?>
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0">
<tr><td bgcolor="#3f3f3f" width="90" align="top" valign="top"><center><font size="2"><b><a href="mailto:<? echo $rij3['antwoord_email'];?>"><? echo $rij3['antwoord_naam']; ?></a></b></font></center>
<i>Berichten: <? echo $rij4['Berichten']; ?><br><br>
<center>
<img src="<? echo $rij4['Avatar']; ?>" alt="<? echo $rij3['antwoord_naam']; ?>" width="64" height="64"></center>
<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>
&nbsp;&nbsp;RE: <? echo $rij['topic']; ?>
</strong></font></td></tr><tr><td>
<? echo $rij3['antwoord_antwoord']; ?><hr color="#3f3f3f">
</td></tr>
<tr><td><strong>Datum/tijd : </strong>
<? echo $rij3['antwoord_datumtijd']; ?>
</td></tr></table></td></tr></table>
<?
}
}
}
?>


Ik vind dus niet het probleem. Hij wil niet de pagina geven (alleen wit, zelfs de css laad hij niet)! Ik heb alles nagekeken maar niks gevonden :(
<?
$resultaat = mysql_query($sql)or die(mysql_error());
$rij = mysql_fetch_array($resultaat);

// Check For Account's
$naam = $rij['naam'];
?>
En waar controleer jij of de query wel resultaten heeft opgeleverd? In jouw script hebt je geen enkele garantie dat $naam een inhoud zal krijgen, dat is dus vragen om problemen.

Controleer dus met mysql_num_rows() hoeveel records er zijn opgehaald en ga daarna pas fetchen, het heeft geen zin om dat eerder te doen.

Met $id = $_GET['id']; vraag je/smeek je om SQL-injection. Het is maar waar je van houdt.

Reageren