Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ошибка при выполнении mysql_num_rows($res)
 
 автор: admin   (20.06.2011 в 17:33)   письмо автору
 
 

доброго времени суток!
подскажите почему в 16 строке выдает ошибку
<?php
include('connectdb.php');
session_set_cookie_params ($lifetime=1800);
session_start();

//выход
if(isset($_GET['exit']))    {
    unset(
$_SESSION['login']);
    unset(
$_SESSION['id']);
}
//авторизация
if(isset($_SESSION['id']) && isset($_SESSION['login'])){
    
$id mysql_escape_string($_SESSION['id']);
    
$sql="SELECT * FROM `user` WHERE id='$id'";
    
$res=mysql_query($sql);
    if(
mysql_num_rows($res)>0)    { // 16 строка
        
$userinfo mysql_fetch_array($res);
        
$state=1;
    }
}


if(
$state != 1){
    if( isset(
$_POST['login']) && isset($_POST['pass']) )    {  // если пользователь ввёл логин и пароль
        
$login mysql_escape_string($_POST['login']);
        
$pass mysql_escape_string($_POST['pass']);
        
$sql "SELECT * FROM `users` WHERE `login`='$login' AND `pass`='$pass'";
        
$res mysql_query($sql);
        
$userinfo=mysql_fetch_array($res);
        if(
mysql_num_rows($res)>0)    {
            
$_SESSION['login'] = $userinfo[login];
            
$_SESSION['id'] = $userinfo[id];
            if(
strcmp($pass,$userinfo['pass'])==0){
            
$state=1;
        }
    }
}
}
if(
$state != 1
?>
<form method="post" action="1.php">
    <table>
<tr><td><font color="black" size="2">Логин:</font></td><td><input type="text" size="30" name="login"/><br /></td></tr>
<tr><td><font color="black" size="2">Пароль:</font></td><td> <input type="password" name="pass" size="30"/><br /></td></tr>
<tr><td></td><td><input type="submit" value="Войти"/></td><tr>
<tr><td><a href="register.php">Регистрация</a></td></tr>
</table>
</form>
<?php
}
else{
    echo 
"бла бла<a href=1.php?exit=y>exit</a>";
}
?>

  Ответить  
 
 автор: cheops   (20.06.2011 в 21:07)   письмо автору
 
   для: admin   (20.06.2011 в 17:33)
 

После выполнения SQL-запроса, нужно обязательно проверять его на наличие ошибок. MySQL и PHP - это разные среды, при возникновении ошибки на стороне MySQL у PHP нет возможности на неё отреагировать автоматически, поэтому нужно обязательно каждый раз проверять правильность выполнения запроса
<?php
  
...
  
$res=mysql_query($sql);
  if(!
$res)
  {
    echo 
"Ошибка - ".mysql_error()."<br>";
    echo 
$sql;
    exit();
  }
  ...
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования