query selecteren
Wat doe ik fout?
##dbconnect.php##
-------------
Hij geeft aan dat ik verbinding heeft gemaakt maar ik kan geen query selecteren.. zit hier een fout in?
##dbconnect.php##
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$db = mysql_connect("host","gebrnaam","password");
mysql_select_db("database", $db) or die("Fout: kan geen verbinding maken met de database");
echo "Verbinding gemaakt";
?>
$db = mysql_connect("host","gebrnaam","password");
mysql_select_db("database", $db) or die("Fout: kan geen verbinding maken met de database");
echo "Verbinding gemaakt";
?>
-------------
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
include ("dbconnect.php");
$voornaam = $_POST["voornaam"];
$achternaam = $_POST["achternaam"];
$woonplaats = $_POST["woonplaats"];
$geboortedatum = $_POST["geboortejaard"]."-".$_POST["geboortejaarm"]."-".$_POST["geboortejaar"];
$nummer = $_POST["nummer"];
$gebruiker = $_POST["gebruiker"];
$email = $_POST["email"];
$wachtwoord = $_POST["password"];
$query = "SELECT * FROM accounts WHERE email='$email'";
$result = mysql_query($query, $db) or die("<p><font face=\"Arial\" size=\"2\">Kan geen query selecteren</font></p>");
?>
include ("dbconnect.php");
$voornaam = $_POST["voornaam"];
$achternaam = $_POST["achternaam"];
$woonplaats = $_POST["woonplaats"];
$geboortedatum = $_POST["geboortejaard"]."-".$_POST["geboortejaarm"]."-".$_POST["geboortejaar"];
$nummer = $_POST["nummer"];
$gebruiker = $_POST["gebruiker"];
$email = $_POST["email"];
$wachtwoord = $_POST["password"];
$query = "SELECT * FROM accounts WHERE email='$email'";
$result = mysql_query($query, $db) or die("<p><font face=\"Arial\" size=\"2\">Kan geen query selecteren</font></p>");
?>
Hij geeft aan dat ik verbinding heeft gemaakt maar ik kan geen query selecteren.. zit hier een fout in?
Code (php)
1
2
3
2
3
<?
$result = mysql_query($query, $db) or die("<p><font face=\"Arial\" size=\"2\">Kan geen query selecteren</font></p>");
?>
$result = mysql_query($query, $db) or die("<p><font face=\"Arial\" size=\"2\">Kan geen query selecteren</font></p>");
?>
je hebt de db al geselecteerd
dus
is voldoende
Het had gekunt als je de db in een var had gezet ipv de connectie..
Zo moet het wel werken. Variabelen tussen enkele quotes worden niet omgezet, dus hij zoekt nu naar een e-mailadres die gelijk is aan $email, in plaats van wat er in variabele $email staat. Hou ook voor jezelf variabelen buiten quotes, het is niet verplicht, maar het is wel gemakkelijker te lezen en fouten eruit halen.
EDIT:
Typo's
Gewijzigd op 17/01/2006 12:15:00 door Robert Deiman
Bas:
Ik vind het juist goed om de database handle wel expliciet op te geven. Scripts hebben de neiging om uitgebreid te worden, of (gedeeltelijk) overgenomen te worden in andere scripts. Als je daardoor op een gegeven moment met twee verschillende databases gaat werken en je geeft de database handle niet op, dan kun je gekke dingen meemaken.
In het meest gunstige geval krijg je dan een foutmelding, maar als je pech hebt werkt je query gewoon (maar dan wel op de verkeerde database). Met een database handle is het altijd in 1 oogopslag duidelijk op welke database je zit te werken.
[quote=Robert schreef op 17.01.2006 12:12 Hou ook voor jezelf variabelen buiten quotes, het is niet verplicht, maar het is wel gemakkelijker te lezen en fouten eruit halen.[/quote]
Zou je me dit nog is uitkunnen leggen d.m.v. een voorbeeld?
Ik wil graag leren en liefst foutloos maar kan dit niet plaatsen.
Dank je wel!!
Zou je me dit nog is uitkunnen leggen d.m.v. een voorbeeld?
Ik wil graag leren en liefst foutloos maar kan dit niet plaatsen.
Dank je wel!!
Nou Lissy, je kan in dit voorbeeld al zien dat het fout gaat. Als je een variabele echo't tussen quotes, 2 voorbeelden:
Kijk nu zelf eens naar de opmaak, dan zie je dat je bij het laatste voorbeeld meteen kan zien dat het over een variabele gaat. Bij die andere niet. Veel fouten ontstaan met het werken met variabelen. Dus dan is het gemakkelijk als je kan zien waar die staan.
Code (php)
Kijk nu zelf eens naar de opmaak, dan zie je dat je bij het laatste voorbeeld meteen kan zien dat het over een variabele gaat. Bij die andere niet. Veel fouten ontstaan met het werken met variabelen. Dus dan is het gemakkelijk als je kan zien waar die staan.
Robert : het is dat ik je niet kan zoenen maar anders had ik dit terstond gedaan!!!
Het balletje is bij mij helemaal gevallen en ik ga vanaf nu dus buiten quotes scripten!!!
DANK je WEL!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
Het balletje is bij mij helemaal gevallen en ik ga vanaf nu dus buiten quotes scripten!!!
DANK je WEL!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
Robert:
Zelf vind ik variabelen tussen de quotes juist beter leesbaar. Vooral wanneer je in je string veel quotes gebruikt is het ellendig om te kijken of alle quotes wel goed gebalanceerd zijn.Hou ook voor jezelf variabelen buiten quotes, het is niet verplicht, maar het is wel gemakkelijker te lezen en fouten eruit halen.
Voorbeeld:
$str = "bla '" . $bla . "', '" . $bla . "' bla '" . $bla . "'";
Zie jij het verschil met
$str = "bla '" . $bla . "', '" . $bla . "' bla '" . $bla . '"';
?
Ik vind dit veel overzichtelijker:
$str = "bla '$bla', '$bla' bla '$bla'";
Uiteraard is dit geheel een persoonlijke voorkeur. Kan ook afhangen van de situatie. Daarom moet iedereen ook voor zichzelf uitmaken wat 'ie wil gebruiken en moet je hem niet dwingen / overhalen om het op een bepaalde manier te doen.
Hahaha, zo enthousiast heb ik ze nog niet meegemaakt op het forum :)
Maar het is mooi dat je overtuigd bent :) (hopen dat er meer zijn die het lezen en die dan ook overtuigd worden)
Maar het is mooi dat je overtuigd bent :) (hopen dat er meer zijn die het lezen en die dan ook overtuigd worden)
Robert:
Ik vind dit eerder een argument om in principe altijd met dubbele quotes te gaan werken dan een argument om variabelen buiten de quotes te halen.Nou Lissy, je kan in dit voorbeeld al zien dat het fout gaat. Als je een variabele echo't tussen quotes, 2 voorbeelden:
Kijk nu zelf eens naar de opmaak, dan zie je dat je bij het laatste voorbeeld meteen kan zien dat het over een variabele gaat. Bij die andere niet. Veel fouten ontstaan met het werken met variabelen. Dus dan is het gemakkelijk als je kan zien waar die staan.
Code (php)
Kijk nu zelf eens naar de opmaak, dan zie je dat je bij het laatste voorbeeld meteen kan zien dat het over een variabele gaat. Bij die andere niet. Veel fouten ontstaan met het werken met variabelen. Dus dan is het gemakkelijk als je kan zien waar die staan.
Nieuw vraagstuk :) ben nog maar een jongetje in de mysql!
Hij geeft de foutmelding weer: kan geen query selecteren!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$query="INSERT INTO accounts (`id`, `voornaam`, `achternaam`, `woonplaats`, `geboortedatum`, `nummer`, `gebruiker`, `email`, `password`) ";
$query .= "VALUES ('','$voornaam','$achternaam','$woonplaats','$geboortedatum','$nummer','$gebuiker','$email','$wachtwoord')";
$result = mysql_query($query, $db) or die("<p><font face=\"Arial\" size=\"2\">Kan geen query selecteren!</font></p>");
$tekst = "<p><font face=\"Arial\" size=\"2\">Je bent succesvol opgenomen in onze database, je bent nu de trotse eigenaar ven een account!\n\n
<p><font face=\"Arial\" size=\"2\"><a href=\"home.htm\"><font color=\"#000000\"><br><br>Log nu in!</font></a></font>";
die($tekst);
?>
$query="INSERT INTO accounts (`id`, `voornaam`, `achternaam`, `woonplaats`, `geboortedatum`, `nummer`, `gebruiker`, `email`, `password`) ";
$query .= "VALUES ('','$voornaam','$achternaam','$woonplaats','$geboortedatum','$nummer','$gebuiker','$email','$wachtwoord')";
$result = mysql_query($query, $db) or die("<p><font face=\"Arial\" size=\"2\">Kan geen query selecteren!</font></p>");
$tekst = "<p><font face=\"Arial\" size=\"2\">Je bent succesvol opgenomen in onze database, je bent nu de trotse eigenaar ven een account!\n\n
<p><font face=\"Arial\" size=\"2\"><a href=\"home.htm\"><font color=\"#000000\"><br><br>Log nu in!</font></a></font>";
die($tekst);
?>
Hij geeft de foutmelding weer: kan geen query selecteren!
- De backticks (`) mogen weg.
- id hoef je niet expliciet op te geven als het een autonummering-veld is.
- '$gebuiker' moet waarschijnlijk '$gebruiker' zijn
- ipv or die kun je beter dit doen:
or trigger_error (mysql_error ());
- id hoef je niet expliciet op te geven als het een autonummering-veld is.
- '$gebuiker' moet waarschijnlijk '$gebruiker' zijn
- ipv or die kun je beter dit doen:
or trigger_error (mysql_error ());
Gewijzigd op 17/01/2006 13:15:00 door Jan Koehoorn
klein foutje in de database zelf.. hij doet het. Danku allen!
Voor mij is in iedergeval het gebruik van de " en ' en dan samenvoegen met . heel duidelijk geworden.
Persoonlijke voorkeur of programmeer omstandigheden zijn voor je zelf in te schatten en in te vullen is mijn mening.
Ik ben blij met deze hele heldere uitleg!!!
Thanks Guys :-)
Persoonlijke voorkeur of programmeer omstandigheden zijn voor je zelf in te schatten en in te vullen is mijn mening.
Ik ben blij met deze hele heldere uitleg!!!
Thanks Guys :-)




