Autor Zpráva
wizardiik
Profil
Co znamená ta chybová hláška? Kód je asi takovejhle....
<?php include "config.php";
if (isset($_POST['username']) && isset($_POST['password']))
{
  $sql = mysql_query("SELECT id FROM users WHERE login = '$_POST[username]';");
  if(mysql_num_rows($sql) == 0)
    $error = "chyba: uživatel existuje";  
  else 
  {
    mysql_query("
      INSERT INTO users 
      (`login`, `password`, 'email')
      VALUES
      ('$_POST[username]', '".sha1($_POST['password'])."', '$_POST[mail]')
      ;");
    echo "registrace úspěšná";  
  }
}
else
{
  ?>
  <form id="frm" name="frm" method="POST" action="register.php">
      <span>Login</span><input type="text" name="username">
      <span>Heslo</span><input type="password" name="password">
      <span>email</span><input type="text" name="mail">
      <input type="submit" value="odeslat">
  </form>
  <?php
}   
?> 

Jakou tam mám chybu?
Alphard
Profil
Hláška znamená, jak byste našel i v FAQ, že se nezdařil předchozí dotaz do databáze.
okolojdouci
Profil *
zmatek v uvozovkách na ř. 11-14
wizardiik
Profil
celková hláška ja takováhle prý na řádku 5..
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\ComplexWebServer\http_docs\web\register.php on line 5
Alphard
Profil
wizardiik:
Napsal jsem vám příčinu, i kde hledat další informace.
hexageek
Profil
no chybu mate ve zpracovani vystupu z funkce mysql_num_rows() , pokud totiz dany select nevrati zadne hodnoty tak mysql_num_rows rozhodne nevraci 0 . Pokud je chyba nebo nejsou zadne zaznamy vraci false . je lepsi proto pouzivat nasledujici konstrukce

if (!mysql_num_rows($result)) {
    echo "tu nic neni\n";
} else {
    while ($row = mysql_fetch_assoc($result)) {
      //tu JSOU DATA
    }
}

hodne programatoru to odflakne

if (@mysql_num_rows($result)>0) {} ...

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Tori
Profil
<mimo-téma>
hexageek:
pokud totiz dany select nevrati zadne hodnoty tak mysql_num_rows rozhodne nevraci 0
Ale vrací, zkuste si to. False vrací jen v případě chybného dotazu, kdy návratová hodnota mysql_query je rovněž false.
</mimo-téma>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0