mysql_num_rows() expects parameter 1 to be resource

[php]
// jedna klasa
function numRows($query)
{
return mysql_num_rows($query);
}

/* skraceno… /
function query($sql)
{
/
provjeravamo je li query dobar /
if(mysql_query($sql))
{
return mysql_query($sql);
}
else
{
/
ako nije query dobar, vracamo error */
$this->error();
}
}

// druga klasa
$find = $sql->query(‘SELECT * FROM users WHERE korisnickoIme = "’.$ime.’" AND lozinka = “’.md5($lozinka).’”’);
if ($sql->numRows($find) == 0)
{
// error blabla…
}
[/php]

Dobijem:
mysql_num_rows() expects parameter 1 to be resource, null given

Ovo je skracena verzija, imam svoj kod za selectanje iz baze ali radi na principu da ide preko query() metode, ali u svakom slucaju dobijem istu gresku…

I echoo sam trazeni query:

SELECT * FROM users WHERE korisnickoIme = "admin" AND lozinka = "21232f297a57a5a743894a0e4a801fc3"

Stvarno ne znam di je greška :open_mouth:

Jel bi mogao postati obadvije klase, ali cijele ne skraćene. Funkcija query u klasi ti ne vraća ništa ako query nije dobar, to nije dobra programerska praks, funkcija uvijek mora vraćati nešto. Za debugiranje probaj u obadvije klase staviti:

mysql_num_rows($result) or die(mysql_error())

mysql_query($sql) or die(mysql_error())

pa ćeš vidjeti što će ti javiti, ali podrobnije ti pomoći ne mogu bez uvida u kompletan kod te dvije klase.

Isto javlja error…

Evo što koristim:
[php]class Sql
{
/**
* @access public
/
function query($sql)
{
/
provjeravamo je li query dobar /
if(mysql_query($sql))
{
return mysql_query($sql);
}
else
{
/
ako nije query dobar, vracamo error */
$this->error();
}
}

/**
 * @access public
 */
function error()
{
	return mysql_error();
}

/**
 * @access public
 */
function select($tablica = array(), $kod = array(), $koliko = '*')
{	
 	$code = 'SELECT '.$koliko.' FROM ';
	if(is_array($tablica))
	{
		foreach($tablica as $ime_tablice)
		{
			$code .= ''.$ime_tablice.', ';
		}
		$code = substr($code,0,-2);
	}else
	{
		$code .= $tablica;
	}
				
	if(count($kod) == 1)
	{				
		$code .= ' WHERE ';
				
		foreach($kod as $gdje => $sto)
		{				
			$code .= $gdje . ' = "' . $sto . '"';
		}
	} 
	elseif(count($kod) > 1)
	{		
		$code .= ' WHERE ';
		
		foreach($kod as $gdje => $sto)
		{					
			$code .= $gdje . ' = "' . $sto . '" AND ';
		}
		
		$code = substr($code,0,-5);
	}
	
	echo $code."

"; // ovo sam stavio da prikazem upit koji se trazi
return $this->query($code);
}

/**
 * @access public
 */
 function numRows($query)
 {
 	return mysql_num_rows($query);
 }

}[/php]

[php]class Korisnik extends BaseController
{
public $greska;
/**
* @access public
*/
function login($ime, $lozinka)
{
$sql = new Sql();

      if(!$ime)
      {
          $this->greska = 'Nisi upisao korisničko ime!';
      }else
      {
          if(!$lozinka)
          {
              $this->greska = 'Nisi upisao lozinku!';
          }else
          {
              $podaci = array(
                  'korisnickoIme' => $ime,
                  'lozinka' => md5($lozinka)
              );
              $find = $sql->select('users',$podaci);
            if ($sql->numRows($find) == 0)
            {
                $this->greska = 'Krivo korisničko ime ili lozinka!';
            }
            else
            {
                // ...
            }
          }
      }
  }

}[/php]

Ova select() metoda radi savrseno kod hvatanja rezultata…

Izvrsavas query dva puta (jer, dva puta si pozvao funkciju mysql_query).

Trebalo bi biti:

[quote=“ivan.skugor”]Izvrsavas query dva puta (jer, dva puta si pozvao funkciju mysql_query).

Trebalo bi biti:

Ista greška…

Stavio sam
[php]$uzmi = mysql_query(“SELECT * FROM users WHERE korisnickoIme = '”.$ime."’ AND lozinka = ‘".md5($lozinka)."’");
$redovi = mysql_num_rows($uzmi);
if ($redovi == 0)
{
$this->greska = ‘greska…’;
}[/php]

I još uvijek dobivam istu gresku!

$uzmi = mysql_query("SELECT * FROM users WHERE korisnickoIme = '".$ime."' AND lozinka = '".md5($lozinka)."'");

zamijeni s

$uzmi = mysql_query("SELECT * FROM users WHERE korisnickoIme = '".$ime."' AND lozinka = '".md5($lozinka)."'") or die(mysql_error());

Rekao bi da upit nešt ne štima, dal si spojen na bazu? :smiley:

[quote=“ivan.skugor”]Izvrsavas query dva puta (jer, dva puta si pozvao funkciju mysql_query).

Trebalo bi biti:

Vidim da mi dioptrija ne odgovara moram ponovno kod okuliste da mi da novu dioptriju. :krele: :0ci:

Uz malo eksperimentiranja sam sam sredio :wink:
Tnx anyways


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja