Hallo Allemaal,

Ik ben nieuw hier, omdat ik echt hulp nodig heb. Wat ik ook doe, ik krijg steeds dezelfde foutcode.

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

Ik heb helemaal geen verstand van MySQL, dus ik hoop dat jullie mij willen helpen.

De volledige code ziet er als volgt uit:

$code = 9;

$username = cb($_POST['checkurl']);

$pattern_username = '^([0-9a-z])([0-9a-z-]{1,18})([0-9a-z])$';

if ($username!='') {

$sql_register_check = "SELECT username FROM ".SEC_TABLE_USERS." WHERE username='$username'";
$query_sql_register_check = mysql_db_query(SEC_MYSQL_BASE,$sql_register_check,$connect);
$num_rows = mysql_num_rows($query_sql_register_check);

}

if ($num_results>0) {$stop=1;$code=1;} elseif ($username=='') {$stop=1;$code=2;} elseif (!ereg($pattern_username,$username)) {$stop=1;$code=3;}



Wil/kan iemand mij helpen?

Ik zal even precies weergeven wat ik nu ingetypt heb, en wat de foutcode is:



$sql_register_check = "SELECT username FROM ".SEC_TABLE_USERS." WHERE username='" . $username . "'";
$query_sql_register_check = mysql_db_query(SEC_MYSQL_BASE,$sql_register_check,$connect);
$num_rows = mysql_num_rows($query_sql_register_check);

}

if ($num_results>0) {$stop=1;$code=1;} elseif ($username=='') {$stop=1;$code=2;} elseif (!ereg($pattern_username,$username)) {$stop=1;$code=3;}

echo $sql_register_check;


Foutcode die hij nu geeft is:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/g_check.php on line 19
SELECT username FROM *.*users WHERE username='*.*'

*.* zijn namen die hij weergeeft, heb ik even weggehaald :-)
In het php manual wordt het gebruik van mysql_db_query afgeraden. Gebruik gewoon zoiets om te connecten met je db:
<?php
error_reporting (E_ALL);

$db_host = 'localhost';
$db_user = 'xxxx';
$db_password = 'xxxx';
$db_name = 'xxxx';

mysql_connect ($db_host, $db_user, $db_password);
mysql_select_db ($db_name) or die ('Fout bij het selecteren van de database');

unset ($db_host, $db_user, $db_password, $db_name);
?>
En dan je code daarna zo:
<?php
$code = 9;
$username = cb($_POST['checkurl']); // wat doet de functie cb bij jou?
$pattern_username = '^([0-9a-z])([0-9a-z-]{1,18})([0-9a-z])$';

if ($username != '') {
$sql = "
SELECT username
FROM " . SEC_TABLE_USERS . "
WHERE username='" . $username . "'";
$res = mysql_query($sql) or trigger_error (mysql_error ());
$num_rows = mysql_num_rows ($res);
}
if ($num_results > 0) {
$stop=1;
$code=1;
}
elseif ($username == '') {
$stop=1;
$code=2;
}
elseif (!ereg ($pattern_username, $username)) {
$stop=1;
$code=3;
}
?>
Ik durf niet te zeggen waar de cb voor staat?!?!?! Heb het script gekregen....


Notice: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near users WHERE username='*.*'' at line 2 *.*in /var/www/html/g_check.php on line 30

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/g_check.php on line 31

Notice: Undefined variable: num_results in /var/www/html/g_check.php on line 33
checkdatabase misschien?
Nu is het op zich wel logisch dat je een warning krijgt.

PHP probeert samen met MYSQL je code uit te voeren.

Met mysql_num_rows vraag je het aantal gevonden records op van de door mysql_query geleverde resultaten.

Dit zal echter allen werken indien er resultaten gevonden zijn.
Jij hebt al een foutje in de opmaak van je QUERY syntax.
Dus geen resultaten dus een Warning.
Klaasjan schreef op 31.05.2006 22:37
Nu is het op zich wel logisch dat je een warning krijgt.

PHP probeert samen met MYSQL je code uit te voeren.

Met mysql_num_rows vraag je het aantal gevonden records op van de door mysql_query geleverde resultaten.

Dit zal echter allen werken indien er resultaten gevonden zijn.
Jij hebt al een foutje in de opmaak van je QUERY syntax.
Dus geen resultaten dus een Warning.


Oooooh hellup!

Heb je dan ook enig idee wat voor code ik dan wel moet gebruiken?

Of........
Het gaat dus fout na username= in je query. Het kan zijn dat er een raar teken in $username zit. Probeer eens zo:
<?php
$code = 9;
if (isset ($_POST['checkurl'])) { // rare naamgeving trouwens
$username = addslashes($_POST['checkurl']);
}
else {
$username = 'test';
}
$pattern_username = '^([0-9a-z])([0-9a-z-]{1,18})([0-9a-z])$';

if ($username != '') {
$sql = "
SELECT username
FROM " . SEC_TABLE_USERS . "
WHERE username='" . $username . "'";
$res = mysql_query($sql) or trigger_error (mysql_error ());
$num_rows = mysql_num_rows ($res);
}
if ($num_rows > 0) {
$stop=1;
$code=1;
}
elseif ($username == '') {
$stop=1;
$code=2;
}
elseif (!ereg ($pattern_username, $username)) {
$stop=1;
$code=3;
}
?>
Klaasjan schreef op 31.05.2006 22:37

Dit zal echter allen werken indien er resultaten gevonden zijn.
Jij hebt al een foutje in de opmaak van je QUERY syntax.
Dus geen resultaten dus een Warning.


Een query die syntactisch correct is maar geen resultaten oplevert geeft geen warning.
Ok Jan je hebt weer eens gelijk. Maar mijn bedoeling was duidelijk geloof ik
Jan Koehoorn schreef op 31.05.2006 22:39
Het gaat dus fout na username= in je query. Het kan zijn dat er een raar teken in $username zit. Probeer eens zo:


Notice: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*.*users WHERE username='*.*'' at line 2 in /var/www/html/g_check.php on line 35

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/g_check.php on line 36

Reageren