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?

Yvon schreef op 31.05.2006 22:55
Beste Jan,

Heeft het ook zin, als ik je even laat zien wat er in mijn database staat? Of maakt dat helemaal niets uit?


Wat misschien kan helpen is als je de tabelstructuur kunt laten zien.
Nu maar hopen dat je dit bedoeld (hihi)


CREATE TABLE `SEC_TABLE_USERS` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `username` varchar(50) NOT NULL default '',
  `paswoord` varchar(40) NOT NULL default '',
  `paswoord_plain` varchar(30) NOT NULL default '',
  `email` varchar(255) default NULL,
  `categorie` int(4) default NULL,
  `extra_1` int(4) default NULL,
  `extra_2` int(4) default NULL,
  `extra_3` int(4) default NULL,
  `extra_4` int(4) default NULL,
  `extra_5` int(4) default NULL,
  `set_design` int(4) default NULL,
  `layout_1` int(4) default NULL,
  `layout_2` int(4) default NULL,
  `layout_3` int(4) default NULL,
  `layout_4` int(4) default NULL,
  `layout_5` int(4) default NULL,
  `show_gb` int(2) default NULL,
  `show_sm` int(2) default NULL,
  `show_ct` int(2) default NULL,
  `contact_tekst` text,
  `kb_tot` int(7) default NULL,
  `kb_pic` int(7) default NULL,
  `kb_txt` int(7) default NULL,
  `mb_traffic` int(5) default NULL,
  `kb_maxpic` int(7) default NULL,
  `php_js_menu` int(2) default NULL,
  `extra_stats` int(2) default NULL,
  `pv_totaal` int(10) default NULL,
  `abonnement_tot` date default NULL,
  `abonnement_wijz` datetime default NULL,
  `credits` int(4) default NULL,
  `credits_wijz` datetime default NULL,
  `geregistreerd` datetime default NULL,
  `gewijzigd_profiel` datetime default NULL,
  `gewijzigd_account` datetime default NULL,
  `ip_useragent` varchar(255) default NULL,
  `laatste_login` datetime default NULL,
  `mail_reminder` int(2) default NULL,
  `melding` text,
  `admin_notitie` text,
  `soort` int(4) default NULL,
  `status` int(4) default NULL,
  PRIMARY KEY  (`id`),
  KEY `status` (`status`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
Ik blijf benieuwd naar de query, zo moeilijk kan het toch niet zijn om deze even te echoen. SEC_TABLE_USERS lijkt een verkeerde waarde te bevatten. Ook die kun je even echoen.
Ja, even gewoon simpel: echo $sql;
Jan Koehoorn schreef op 31.05.2006 23:07
Ja, even gewoon simpel: echo $sql;


Voor jullie vast heel simpel (hahaha), maar waar moet ik dat doen????
Okee, dus username is een bestaand veld in je MySQL tabel.
<?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 . "'";
//EN HIER KOMT DE ECHO DAN
echo $sql;
$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;
}

?>
Yvon schreef op 31.05.2006 23:09
[quote=Jan Koehoorn schreef op 31.05.2006 23:07]Ja, even gewoon simpel: echo $sql;


Voor jullie vast heel simpel (hahaha), maar waar moet ik dat doen????[/quote]

Zoals ik al eerder zei: helemaal onderaan je script dit:
<?php
echo $sql;
?>
wat zie je dan?
Hmmm, het databasemodel is ook voor verbetering vatbaar. Lees eens een artikel over databasenormalisatie. Kolomnamen als extra_1, extra_2, etc. (dus genummerd, zelfde soort gegevens) duiden vrijwel zonder uitzondering op een fout datamodel. Deze gegevens horen in een aparte tabel te staan.
<?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 != '') {
// EN VOLGENS MIJ ZAT DE FOUT IN DAT JE DE TABELNAAM FOUT HAD VERWERKT IN DE QUERY
$sql = "
SELECT username
FROM SEC_TABLE_USERS WHERE username='" . $username . "'";
//EN HIER KOMT DE ECHO DAN
echo $sql;
$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;
}

?>

Reageren