SELECT COUNT
Ik heb twee dezelfde select counts op pagina x en pagina y. Op pagina x werkt hij wel en de andere pagina niet. Ik vind dit zeer vreemd. Hoogst waarschijnlijk dat ik alsnog wat fout doe of iets over het hoofd zie.
Deze werkt:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
// controlleren of de gebruikte naam al aanwezig is
if(isset($_POST['submit']) AND (!empty($voornaam)) AND (!empty($achternaam))){
$count = mysql_query("SELECT COUNT(1) FROM `tpersonen` WHERE `voornaam` = '{$voornaam}'
AND `achternaam` = '{$achternaam}'");
$count = mysql_result($count,0);
}
if(isset($_POST['submit']) AND (!empty($voornaam)) AND (!empty($achternaam))){
$count = mysql_query("SELECT COUNT(1) FROM `tpersonen` WHERE `voornaam` = '{$voornaam}'
AND `achternaam` = '{$achternaam}'");
$count = mysql_result($count,0);
}
En deze werkt niet:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
// check if there is a 'key' in the url and retrieve it
if (isset($_GET['key'])){
$get_key = $_GET['key'];
$check_key = mysql_query("SELECT COUNT(1) FROM tpersonen WHERE active_key = '{$get_key}'");
$check_key = mysql_result($check_key, 0);
echo $check_key;
if (isset($_GET['key'])){
$get_key = $_GET['key'];
$check_key = mysql_query("SELECT COUNT(1) FROM tpersonen WHERE active_key = '{$get_key}'");
$check_key = mysql_result($check_key, 0);
echo $check_key;
Als ik deze code uitvoer geeft hij aan dat hij bij mysql_result een bolean zou verwachten, maar er komt op het moment niks uit. Werkt een count niet als ik verschillende characters gebruik?
Alle hulp is welkom!
Groetjes Sven
Misschien heeft het iets te maken met de if-statement. Die sluit je bij de tweede namelijk niet af :)
Die sluit ik in het voorbeeld inderdaad niet af, maar dat doe ik in mijn code wel. Deze if statement wordt heel laat afgesloten en daartussen komen nog een aantal if statements. Echter zou er dan een andere error moeten ontstaan als het afsluiten van een block niet zou kloppen.
Code (php)
1
2
2
$get_key = $_GET['key'];
$check_key = mysql_query("SELECT COUNT(1) FROM tpersonen WHERE active_key = '{$get_key}'");
$check_key = mysql_query("SELECT COUNT(1) FROM tpersonen WHERE active_key = '{$get_key}'");
Waarom onnodige variabelen aanmaken? Je kunt toch ook gewoon het volgende doen:
Mysql injection.
foutafhandeling.
- Ga niet 3 keer een variabele opnieuw gebruiken geef ze gewoon een andere naam.
- Gebruik geen backtricks in SQL
- Gebruik geen haakjes in SQL
- Zet variabele buiten de quotes
- Niet onnodig variabele aanmaken
- SQL injection mogelijk, gebruik mysql_real_escape_string
- Verbeter eerst eens je - Ga niet 3 keer een variabele opnieuw gebruiken geef ze gewoon een andere naam.
- Gebruik geen backtricks in SQL
- Gebruik geen haakjes in SQL
- Zet variabele buiten de quotes
- Niet onnodig variabele aanmaken
- SQL injection mogelijk, gebruik mysql_real_escape_string
Gewijzigd op 12/07/2011 09:33:17 door Wouter J
Bedankt voor alle posts. Ik heb het al veranderd in het volgende:
Code (php)
1
2
3
2
3
$get_key = mysql_real_escape_string($_GET['key']);
$check_key = mysql_query("SELECT COUNT(1) FROM tpersonen WHERE active_key = '{$get_key}'");
$check_key = mysql_result($check_key, 0);
$check_key = mysql_query("SELECT COUNT(1) FROM tpersonen WHERE active_key = '{$get_key}'");
$check_key = mysql_result($check_key, 0);
In eerste instantie was het onnodig om de variable aan te maken. Echter heb ik nu een mysql_real_escape_string ervoor gezet. De code werkt nu wel. Als er nog ergens haakjes weg moeten dan hoor ik het graag.
Volg eens al mijn punten op en niet maar 1 punt.