Hallo,
ik ben bezig met een inlog schermpje maar als ik dingen via een form verstuur bijvorobeeld de schermnaam krijg ik de melding
Unknown column 'Dion' in 'where clause'
ik heb al gezocht op google maar ben er niet uitgekomen.
Zou iemand mij willen helpen?
Mijn inlog script

<?php
require ('config.php');
require ('style.css');
$query = mysql_query("SELECT * FROM gebruikers WHERE schermnaam = ".$_POST['schermnaam']."") or die (mysql_error());
while ($obj = mysql_fetch_object($query)) {

$naam = htmlspecialchars($obj->naam);

$id = htmlspecialchars($obj->id);

echo "Yooo ".$naam."";
}

?>
probeer is:

<?php
require ('config.php');
require ('style.css');
$query = mysql_query("SELECT * FROM gebruikers WHERE schermnaam = '".$_POST['schermnaam']."';") or die (mysql_error());
while ($obj = mysql_fetch_object($query)) {

$naam = htmlspecialchars($obj->naam);

$id = htmlspecialchars($obj->id);

echo "Yooo ".$naam."";
}

?>


je kan in die query geen php zetten dus moet je eerst de query weer 'sluiten' dan je php code en dan weer openen en dan weer query
dus dan krijg je:

SELECT *
FROM gebruikers
WHERE schermnaam = ' " .$_POST['schermnaam']. " '
;
HET WERKT!:D heel erg bedankt. ik zie dat je een ; hebt toegevoegd. kan je misschien uitleggen waarom hij het eerst neit deed:P?
Omdat je deed:

WHERE schermnaam = " . $_POST['schermnaam'] . "

terwijl het:

WHERE schermnaam = '" . $_POST['schermnaam'] . "'

moest zijn. Omdat er bij jou geen enkele quotes stonden denkt MySQL dat het om een veldnaam gaat.
nou kijk die ; aan het eind is eigenlijk gewoon voor de netheid
daarmee zeg je in SQL dat de query is afgelopen.. volgens mij
kan het in MySql ook zonder hoor maar voor de netheid zet ik
hem er eigenlijk ALTIJD bij..

in jou query stond dit:

SELECT * FROM gebruikers WHERE schermnaam  = ".$_POST['schermnaam']."


als je de query zonder php bekijkt zou er staan:

SELECT * FROM gebruikers WHERE schermnaam  = 

en zoals je dus ziet.. die POST die achter schermnaam komt te staan is geen veldnaam en dus moet het tussen ' ' in sql

dus dan zou je krijgen

SELECT * FROM gebruikers WHERE schermnaam  = ' '   



en tot slot weer met de php erin verwerkt krijg je:

SELECT * FROM gebruikers WHERE schermnaam  = '".$_POST['schermnaam']."'

ahh bedankt! ik snap het:D
@ Dion: mag ik je er op wijzen dat je script enorm onveilig is ;-) .

Reageren