mysql_query() geeft een error

Status
Niet open voor verdere reacties.

dj technics

Gebruiker
Lid geworden
1 sep 2007
Berichten
367
he,

ik zit aan het laatste deel van een basiscursus webdisgn en dat deel is MySQL.
ik heb om eens te proberen een login systeem gemaakt, en eigenlijk om dit nog nooit gedaan te hebben vind ik dat ik al aardig ver ben gekomen.
maar nu geraak ik niet meer verder zonder hulp.

eerst zal ik mijn script geven
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Naamloos document</title>
</head>
<body>
<?php
if( isset( $_POST['ok'] ) )
{
$sServer = 'localhost';
$sUser = 'root@localhost';
$sPass = 'kumtich2';
$sDatabase = 'test';
switch( $_POST['username'] )
{
case 'dj_technics';
$iId = '1';
break;
case 'de_bloesem';
$iId = '6';
break;
case 'mlitile';
$iId = '5';
break;
}

$sQuery = 'SELECT
username, passwd, naam
FROM
login_2
WHERE
id=' . $iId . ';';
mysql_connect( $sServer, $sUser );
mysql_select_db( $sDatabase );
$oLogin_info = mysql_query( $sQuery );
if( $oLogin_info )
{
$cLogin_info = mysql_fetch_assoc( $oLogin_info );
if( $cLogin_info['passwd'] == $_POST['passwd'] )
{
echo '<br>u bent ingelogd<br>Welkom ' . $cLogin_info['naam'];
$aChek = 'oké';
}
else
{
echo '<br>de door u opgegeven gebruikersnaam en paswoord komen niet overeen<br><a href="registreren.php">klik hier</a> om u te registreren.';
echo '<form action="aanmelden.php" method="post">
<br>username: <input type="text" name="username">
<br>paswoord: <input type="password" name="passwd">
<br><input type="submit" name="ok" value="aanmelden!">
</form>';
}
}
else
{
echo 'er ging iets mis: ' . mysql_error();
}
mysql_close();
}
else
{
echo '<form action="aanmelden.php" method="post">
<br>username: <input type="text" name="username">
<br>paswoord: <input type="password" name="passwd">
<br><input type="submit" name="ok" value="aanmelden!">
</form>';
}
?>
</body>
</html>

hiervoor draait nog een ander script dat de registratie mogelijk maakt. en dit werkt perfect.

als ik in de query de gebruikers naam zet dus zoiets als dit
$sQuery = 'SELECT
username, passwd, naam
FROM
login_2
WHERE
username=' . $_POST['username'] . ';';

dan is mijn resultaat dit

er ging iets mis: Unknown column 'dj_technics' in 'where clause'

heeft iemand enig idee hoe dit komt?
volgen de tut die ik volg (www.websitemaken.be) zou dit moeten werken.
die switch maken is niet echt een probleem in de testfase maar als die ooit online gaat is dit echt wel moeilijk.

bedankt

dj technics
 
dit is mss ook handig

Database test - Tabel login_2 wordt uitgevoerd op localhost
login_2
Veld Type Attributen Null Standaardwaarde Extra
id int(3) Nee auto_increment
naam varchar(50) Nee
straat varchar(50) Nee
nummer int(3) Nee 0
zipcode int(4) Nee 0
gemeente varchar(20) Nee
telefoon int(10) Ja NULL
username varchar(50) Nee
passwd varchar(100) Nee


Indices :
Sleutelnaam Type Kardinaliteit Veld
PRIMARY PRIMARY 9 id
username


Ruimte gebruik :
Type Gebruik
Data 452 Bytes
Index 2.048 Bytes
Totaal 2.500 Bytes
Rij statistiek :
Opdrachten Waarde
Formatteren dynamisch
Rijen 9
Rij lengte ø 50
Rij grootte ø 278 Bytes
Volgende Autoindex 12
 
Als je wilt vergelijken met een tekst moet je er aanhalingstekens omheen zetten:

[sql]
SELECT *
FROM tabel
WHERE veld = 'waarde'
[/sql]

Anders denkt SQL dat je een kolom met een kolom wilt vergelijken, maar dat is niet zo.

Waarom de eerste niet werkt weet ik niet, welke fout krijg je daar?
 
het script zoals het hier staat werkt wel.
maar alleen maar omdat ik via die switch de username vergelijk met de id en nu in de testfase heb ik mischien 5 gebreukers in mijn database maar later als deze online gaat zijn er dit waarschijnlijk veel meer.
die quots mogen dat ook dubbelquots zijn. (")
de singelquots gaan lastig doen omdat dit een php variabel is die wordt geopend met dingelquots
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan