За последние 24 часа нас посетили 25728 программистов и 1726 роботов. Сейчас ищут 882 программиста ...

ошибка

Тема в разделе "PHP для новичков", создана пользователем Андрей12, 19 мар 2015.

  1. Андрей12

    Андрей12 Новичок

    С нами с:
    18 фев 2015
    Сообщения:
    131
    Симпатии:
    0
    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in on line 12

    Код (Text):
    1. $uo_result = mysql_query($uo_query);
    2.   if(mysql_num_rows($uo_result) == 0) {      <-- вот 12 строчка
    3.     $uo_query = "INSERT INTO login (`ip`,`login`,`date`,`page`) VALUES ('$ip', '$login', '$date', '$page')";
    4.     mysql_query($uo_query) or die(mysql_error());
    Добавлено спустя 29 секунд:
    в чем проблема?
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    ты в mysql_num_rows передал не resource а boolian, ошибка выше, возможно mysql_query вернула false, почему не проверил? Даже в документации в примерах проверяют.
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    в том что ты искать ленишься. запрос не выполнился но ты хочешь из него результат выудить. научись отлаживать. и научись искать.
     
  4. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    ты ожидаешь: Количество рядов в результате запроса в случае успеха
    а он выдает: или FALSE в случае возникновения ошибки.

    Добавлено спустя 46 секунд:
    и вообще пора уже переключаться на расширение mysqli
     
  5. Андрей12

    Андрей12 Новичок

    С нами с:
    18 фев 2015
    Сообщения:
    131
    Симпатии:
    0
    var_dumpom проверить?)

    Добавлено спустя 1 минуту 4 секунды:
    а что mysql работать скоро не будет?)
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    да.. старик доедает свой последний попкорн

    Добавлено спустя 1 минуту 2 секунды:
    P.S: Твой лучший друг который ответит на все твои вопросы - GoogLe.ru
     
  7. Андрей12

    Андрей12 Новичок

    С нами с:
    18 фев 2015
    Сообщения:
    131
    Симпатии:
    0
    вот что мне mysql вывел Resource id #
     
  8. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Учишься похоже по старенькой книге, это ничего. Но прежде проверь функцию в официальной документации.. Я так делал. Не зря тут каждый воторой пишет, что надо пользоваться официальной документацией, тем более она уже почти вся на русском:)
     
  9. Андрей12

    Андрей12 Новичок

    С нами с:
    18 фев 2015
    Сообщения:
    131
    Симпатии:
    0
    аа это я читал) понял)
     
  10. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Код (Text):
    1. $uo_query
    вот этот запрос у тебя не прокатывает.
    Я заметил он у тебя ниже по коду
    Код (Text):
    1.  $uo_query = "INSERT INTO login (`ip`,`login`,`date`,`page`) VALUES ('$ip', '$login', '$date', '$page')";
    выше он у тебя как выглядит? что в этой переменной?
     
  11. Андрей12

    Андрей12 Новичок

    С нами с:
    18 фев 2015
    Сообщения:
    131
    Симпатии:
    0

    Код (Text):
    1.  
    2. require_once($_SERVER['DOCUMENT_ROOT']."/data/conn_file.php");
    3. require_once($_SERVER['DOCUMENT_ROOT']."/data/func.php");
    4. $ip = $_SERVER['REMOTE_ADDR'];
    5. $login = $_SESSION['login'];
    6. $date = time();
    7. $page = 'Чат';
    8. $uo_result = mysql_query($uo_query);
    9. if(mysql_num_rows($uo_result) == 0) {
    10.     $uo_query = "INSERT INTO tb_online (`ip`,`login`,`date`,`page`) VALUES ('$ip', '$login', '$date', '$page')";
    11.    
    12.     mysql_query($uo_query) or die(mysql_error());
    13. }
    14. $res=mysql_query("SELECT DISTINCT ip, login, page FROM tb_online WHERE `page` = '$page'") or die(mysql_error());
    15.  
    16.  
    17. while($row=mysql_fetch_array($res))
    18. {
    19. if($row['login'] != '') {
    20. $d = mysql_fetch_assoc(mysql_query("SELECT * FROM tb_users WHERE username = '".$row['login']."'"));
    21. if($d['chat_status'] == 1) {
     
  12. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    и так.
    mysql_query():
    учитывая, что у тебя переменная $uo_query ниже по коду, mysql_query() возвращает FALSE
    а ты без проверки, что возвращает функция, лезешь делать операции сравнения, это тоже тебе возвращает FALSE, но это уже не важно, ошибка у тебя вылезла выше, поэтому, тебе надо сделать что-то, чтобы прекратить этот беспорядок.
    и учти:
    Проблема в том, что тебе просто надо было почитать что пишут тебе люди. Если ты ждешь готовое решение, то это уже другой раздел, как тут любят говорит. Но у тебя проблема очевидна, разбирайся.

    Добавлено спустя 27 секунд:
    и
    http://php.net/manual/ru/function.mysql-query
     
  13. Андрей12

    Андрей12 Новичок

    С нами с:
    18 фев 2015
    Сообщения:
    131
    Симпатии:
    0
    да я и пытаюсь )
     
  14. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    я привел ссыль на устаревшю функцию, потому что ты пользуешься устаревшей, а так переход на mysqli_query проходит безболезненно, советую сделать это сейчас, чем потом, когда у тебя все рухнет:)