За последние 24 часа нас посетили 17811 программистов и 1625 роботов. Сейчас ищут 1880 программистов ...

Ошибка при создании поисковика. Warning: mysqli_num_rows()

Тема в разделе "MySQL", создана пользователем Joushin, 17 янв 2017.

  1. Joushin

    Joushin Новичок

    С нами с:
    17 янв 2017
    Сообщения:
    2
    Симпатии:
    0
    Всем доброго времени суток. Я новичок и у меня глупая проблема.Прошу тапки сильно не кидать, а просто подсобить
    mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\Server\data\htdocs\search.php on line 18
    вот код.
    PHP:
    1. <?php
    2. header("content-type=text/html; charset=cp1251");
    3.  
    4. $search = $_POST['search'];
    5. $search = addslashes($search);
    6. $search = htmlspecialchars($search);
    7. $search = stripslashes($search);
    8.     if($search == ''){
    9.         exit("начните вводить запрос");
    10.     }
    11.  
    12.     $db = mysqli_connect("localhost","root","");
    13.     mysqli_select_db($db,"bd");
    14.     mysqli_query($db,"SET NAMES cp1251");
    15.     $query = mysqli_query($db,"SELECT * FROM data WHERE MATCH(text) AGAINST('$search')");
    16.     if(mysqli_num_rows($query) > 0){  $sql = mysqli_fetch_array($query); < вот это проблемная часть
    17.         do{
    18.             echo "<div>".$sql['text']."</div>";
    19.         }while($sql = mysqli_fetch_array($query));
    20.     }else{
    21.         echo "ненайдено";
    22.     }
    23. ?>
     
    #1 Joushin, 17 янв 2017
    Последнее редактирование модератором: 17 янв 2017
  2. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    PHP:
    1. <?php
    2. header("content-type=text/html; charset=cp1251");
    3.  
    4. $search = $_POST['search'];
    5. $search = addslashes($search);
    6. $search = htmlspecialchars($search);
    7. $search = stripslashes($search);
    8. if($search == ''){
    9. exit("начните вводить запрос");
    10. }
    11.  
    12.  
    13. $db = mysqli_connect("localhost","root","");
    14. mysqli_select_db($db,"bd");
    15. mysqli_query($db,"SET NAMES cp1251");
    16.  
    17. print "SELECT * FROM data WHERE MATCH(text) AGAINST('$search')";
     
    #2 Zuldek, 17 янв 2017
    Последнее редактирование: 17 янв 2017
  3. Joushin

    Joushin Новичок

    С нами с:
    17 янв 2017
    Сообщения:
    2
    Симпатии:
    0
    как я понял принт это вывести. ошибка исправлена посредством ее полного удаления. и теперь он заместо результата выводит SELECT * FROM data WHERE MATCH(text) AGAINST('3')ненайдено
    а должен просто не найдено или совпадение из бд