query selecteren
##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.
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!!
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.
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.
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.
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!
- 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!
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 :-)