Пытаюсь создать ОЧЕНЬ простую CMS с PHP и MySQL, не могу получить данные для вывода

#php #sql #content-management-system

#php #sql #content-management-system

Вопрос:

Я пытался создать ОЧЕНЬ простую CMS для веб-сайта для личного проекта. Я впервые использую MySQL и один из первых, кто использует PHP, так что это своего рода опыт обучения. Однако, по словам всех, кого я спрашивал, это должно сработать. Однако все, что он выводит, это <h1></h1> . Я проверил все в своей базе данных и таблице, имена столбцов правильные. Я пока не пытаюсь ничего добавить в базу данных. Я просто хочу иметь возможность читать, и даже простое подтверждение концепции не работает.

Если это имеет значение, я использую 000webhost для своего веб-хостинга.

 <?php
$mysql_host = "****";
$mysql_database = "****";
$mysql_user = "sql_blog";
$mysql_password = "*****";

$link = mysql_connect($mysql_host, $mysql_user, $mysql_password);

if (!mysql_select_db($mysql_database, $link)) {
echo 'Database error';
exit;
}

$sql_statement = ('SELECT * FROM Blog_Entries');
$result = mysql_query($sql_statement);
while ($curr_row = mysql_fetch_assoc($result)) {
  echo '<h1>' . $result['Title'] . '</h1>';
}
mysql_free_result($result);
?>
  

Большая часть этого кода скопирована с http://guy-lecky-thompson.suite101.com/build-a-blog-or-cms-with-php-a55246 но, как я уже сказал, похоже, это должно сработать…

Комментарии:

1. Никогда не используйте select * в коде. Похоже, что имя вашего столбца не является «Заголовком».

2. Кроме того, в зависимости от сервера mysql имена таблиц и столбцов чувствительны к регистру.

3. Никогда не размещайте свои учетные данные на общедоступном веб-форуме. ПЛОХАЯ безопасность. Измените свое имя пользователя и пароль СЕЙЧАС, СЕЙЧАС.

Ответ №1:

У вас ошибка в цикле while.

  echo '<h1>' . $result['Title'] . '</h1>';
  

Должно быть

  echo '<h1>' . $curr_row['Title'] . '</h1>';
  

При переборе строк вам нужно использовать строку, а не указатель на результирующий набор.

Ответ №2:

 while ($curr_row = mysql_fetch_assoc($result)) {
echo '<h1>' . $result['Title'] . '</h1>';
}
  

Изменить на:

 while ($curr_row = mysql_fetch_assoc($result)) {
  echo '<h1>' . $curr_row['Title'] . '</h1>';
}
  

Ответ №3:

Вам нужно изменить

 echo '<h1>' . $result['Title'] . '</h1>';
  

Для

 echo '<h1>' . $curr_row['Title'] . '</h1>';
  

$result — это дескриптор всего результирующего набора, возвращенного вашим запросом. $ curr_row — это строка, которую вы извлекли из результирующего набора.

Ответ №4:

Изменить

 echo '<h1>' . $result['Title'] . '</h1>';
  

Для

 echo '<h1>' . $curr_row['Title'] . '</h1>';