2013-06-17 6 views
1

Я действительно застрял на чем-то здесь, я, честно говоря, не вижу ничего плохого здесь, и я сделал что-то подобное несколько раз на своем сайте.Echoing Fetch_Assoc Fails

Я хочу, чтобы моя домашняя страница обновлялась до трех последних обновлений новостей. У меня есть таблица со всеми настройками с записью для тестирования. Это мой PHP код, чтобы отобразить три последних сообщения:

<?php 
$sql = mysqli_query($link, "SELECT * FROM news ORDER BY PostCreated ASC LIMIT 3"); 

if($sql) 
    { 
     while($row = mysqli_fetch_assoc($sql)) 
      { 
       echo $row['PostContent']; 
      } 
     else 
      { 
       echo "Cannot fetch current news update. Error: " . mysqli_error($link); 
      } 
    } 
else 
    { 
     echo "Cannot fetch current news update. Error: " . mysqli_error($link); 
    } 
?> 

Так как вы можете видеть, что это захватывает три наиболее и я недавние действия доказал это, поместив echo mysqli_num_rows($sql); непосредственно перед while loop. Это возвращает 1, что является правильным, так как есть только одна запись.

Проблема возникает, когда я пытаюсь выполнить echo $row['PostContent'];. Вся страница гаснет, если я выберу цикл while из уравнения, он отобразит остальную часть страницы, но это почти так, как если бы я использовал echo $row['PostContent'];. остальная часть загрузки страницы вообще?

Любая помощь была бы оценена, и мне очень жаль, если это действительно глупая ошибка с моей стороны, которая в конечном итоге растрачивает ваших парней. Спасибо!

+0

Почему вы используете 'else' после' while'? – Kevin

+0

Разве это не должно быть 'echo. $ Row ['PostContent'];'? Я думаю, вы забыли «точку». Может быть? Я только начинаю изучать SQL и замечаю такие вещи во всех своих учебниках. –

+0

@Fred '.'? почему это? – Kevin

ответ

1

Вероятные проблемы здесь:

  1. Вы использовали else блок после цикла while.

  2. У вас есть error_reporting выключен.

Они объясняют страницу Собирается пустым, если while присутствует и страница выполнения остальных, когда отнимается.

+0

Я собираюсь '+ 1', так как нашел его полезным в своем изучении SQL. Приветствую Кевина. –

+0

@Fred спасибо чувак. – Kevin

+0

Добро пожаловать, Кевин. –

1

Это ваша проблема.

else 
      { 
       echo "Cannot fetch current news update. Error: " . mysqli_error($link); 
      } 

Невозможно использовать это после цикла.

+0

Уже есть ** принятый ** ответ. –

+0

@Fred Это действительно не должно мешать никому пытаться добавить дополнительный контент. Конечно, это похоже на избыточную часть принятого ответа ... –

+0

@ebyrob True. До тех пор, пока они «правильные» ответы ;-) Cheers –