2016-05-08 6 views
0

Я недавно опубликовал, но я не думаю, что я объяснил это хорошо.Примечание: Неопределенная переменная ... переменная объявлена ​​ошибка

У меня есть страница с страницами страниц, например URL: ....... rest_id = 3/area = 'Enfield'. Я использую подобный запрос на своем веб-сайте, но этот не работает, хотя он работал примерно на 2 минуты раньше.

Я использую инструкцию GET, чтобы получить имя области, которая находится в URL-адресе, а затем оттуда я использую имя области, чтобы получить правильные данные из БД, такие как номер телефона, твиттер и Facebook. но ничего не показывает.

У меня есть обработчики ошибок, единственная ошибка, которая у меня есть. Примечание: Неопределенная переменная: twit in ... Для всех 3 переменных, даже если они были объявлены.

Любые идеи, почему это может произойти.

if (isset($_GET['area'])) { 
        $franc_dets = $_GET['area']; 
        $get_franc_d = "SELECT * FROM Franc_dets WHERE Fran_City = '$franc_dets'"; 
        mysqli_stmt_execute($run_get_franc_d); 
        $iii = 1; 

        while ($row_get_fram = mysqli_fetch_array($run_get_franc_d)) { 
         $fran_phone = $row_get_fram['Fran_Contact_Num']; 
         $twit = $row_get_fram['Twitter']; 
         $iii++; 

HTML

...... 
    <td class='phn_dets'> 
         <p id='phn_title'>Problems ordering?</p> 
         <p id='phn_numb'><?php echo $fran_phone ?></p> 
        </td> 
        <td class='collapse'> 
         <img src='./Images/franc_dets_twitter.png' height='50' width='50' alt='Twitter logo'>  
        </td> 


        <td class='twitter_dets'> 
         <p id='sm_title'>Social media</p> 
         <a id='sm_twit' href='https://twitter.com/<?php echo $twit ?>'>@<?php echo $twit ?></a> 
        </td> 

        <td class='collapse'> 
        <img src='./Images/franc_dets_fb.png' height='50' width='50' alt='Facebook logo' >  
        </td> 
        <td class='fb_dets'> 

       <a id='sm_fb' href='https://www.facebook.com/<?php echo $fb; ?>'><?php echo $fb; ?></a> 
+0

Вы пытались использовать 'mysqli_fetch_assoc' вместо' mysqli_fetch_array'? – evsar3

+0

@ evsar3 да у меня, к сожалению, результат не отличается – Monroe

+0

Что произошло, когда вы использовали 'var_dump ($ twit);' внутри цикла while? – enhzflep

ответ

3

Вы объявляете $ упрек в пределах цикла. Если ваш запрос не возвращает никаких результатов, то $ twit никогда не определяется, поэтому уведомление вы видите. В вашем случае я вижу 2 причины, почему вы не получите никаких результатов, даже если есть данные в вашей БД:

  1. Там находится котировки в вашей URL и в запросах, которые могут конфликты и сделать запрос потерпеть неудачу.
  2. Вы задаете свой запрос в mysqli_stmt_execute(), который ожидает выражение Mysqli, а не строку. Вы должны передать свой запрос в mysqli_prepare(). Затем поместить результат в mysqli_stmt_execute()

Убедитесь в том, чтобы обрабатывать должным образом случай, когда не дали результатов, которые могут быть столь же простыми, что дает значение по умолчанию $ упрека вне времени цикла или сообщить пользователю, что нет результатов.

Кроме того, способ внесения переменной в ваш запрос делает ваш сайт уязвимым для SQL injection. Я предлагаю вам прочитать по этому вопросу. Используйте подготовленные запросы с заполнителями. См. Примеры в PHP manual

Смежные вопросы