За последние 24 часа нас посетил 18471 программист и 1612 роботов. Сейчас ищут 1767 программистов ...

Помогите исправить ошибку

Тема в разделе "Прочие вопросы по PHP", создана пользователем Boyenerji, 24 янв 2017.

  1. Boyenerji

    Boyenerji Новичок

    С нами с:
    24 янв 2017
    Сообщения:
    27
    Симпатии:
    1
    Всем привет.
    Помогите пожалуйста решить проблему.

    PHP:
    1. <div id="container">
    2.         <?php
    3.             25строка mysqli_query($q,"SELECT * FROM articles");
    4.             26строкаwhile($res = mysqli_fetch_array($q))
    5.             {  
    6.                echo '<div class="article">
    7.                <div class="title">'.$res['title'].'</div>
    8.                <div class="summary">'.$res['summary'].'</div>
    9.                <div class="date">'.$res['date'].'</div>
    10.                <a href="full.php?id='.$res['id'].'">Подробнее..</a>
    11.               </div>';
    12.             }    
    13.         ?>
    14.     </div>
    Ошибки:
    Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /home/u251592433/public_html/index.php on line 25

    Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in /home/u251592433/public_html/index.php on line 26

     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    переменная $q у вас где объявляется? Покажите ее.
     
  3. Boyenerji

    Boyenerji Новичок

    С нами с:
    24 янв 2017
    Сообщения:
    27
    Симпатии:
    1
    Не объявляется. Этот код работал с mysql, решил переписать на mysqli и вот ошибку выдаёт.
     
  4. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Если ты не указываешь идентификатор соединения,то как функция узнает куда отправлять запрос
     
    Fell-x27 нравится это.
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ну так если решил переписать на mysqli, то надо почитать документацию про mysqli, надо понять, что это за переменная такая, и как ее получить. Неужто решил, что она там просто для красоты любая подойдет? Нет. Это коннект к базе. Его надо открыть. С правильной кодировкой, к слову.
     
  6. Boyenerji

    Boyenerji Новичок

    С нами с:
    24 янв 2017
    Сообщения:
    27
    Симпатии:
    1
    Это всё есть. Вот код с подключением:
    PHP:
    1. <?php
    2. $db = mysqli_connect("mysql.hoster.ru", "u251592", "","u251592433_");
    3.     mysqli_query($db,'SET NAMES utf8');
    4. ?>
    В индексе его приинклудил
     
  7. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Вкратце, если ты используешь процедурный стиль, то в каждый query() нужно передавать индентификатор,если тебе не хочется это делать постоянно используй ООП стиль
     
  8. Boyenerji

    Boyenerji Новичок

    С нами с:
    24 янв 2017
    Сообщения:
    27
    Симпатии:
    1
    Использую процедурный.

    когда я использовал mysql, а не mysqli было вот так и без ошибок:
    PHP:
    1. <div id="container">
    2.         <?php
    3.             $q = mysql_query("SELECT * FROM articles");
    4.             while($res = mysql_fetch_array($q))
    5.             {
    6.                echo '<div class="article">
    7.                <div class="title">'.$res['title'].'</div>
    8.                <div class="summary">'.$res['summary'].'</div>
    9.                <div class="date">'.$res['date'].'</div>
    10.                <a href="full.php?id='.$res['id'].'">Подробнее..</a>
    11.               </div>';
    12.             }  
    13.         ?>
    14.     </div>
    Стоило залить весь сайт на hostinger, и сразу вылез варнинг мол юзайте mysqli.
    Может просто выключить отображение варнингов?
    --- Добавлено ---
    Проблема решена.
     
  9. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    @Boyenerji найди строку mysql_connect( бла бла бла ); Там и происходит подключение. Измени на mysqli_connect и в скобках там всё не точно также как в mysql_connect. Мануальчик почитай.
    --- Добавлено ---
    и mysql_sellect_db удали или закоментируй...
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ну так почему вы не используете это $db в коде, которым открыли тему? Точно так же создаете коннект и передаете его туда, где у вас пустая $q.
     
  11. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    В библиотеке mysql передавать id соединения не обязательно, а в mysqli обязательно.
    Ты мануальчик почитай и всё понятно станет.
    Для этого их и пишут.
     
  12. Boyenerji

    Boyenerji Новичок

    С нами с:
    24 янв 2017
    Сообщения:
    27
    Симпатии:
    1
    Да-да, просто я не знал что нужно указывать идентификатор соединения в запросе mysqli.
    Всем большое спасибо)