2012-07-01 8 views
-1

Я пытаюсь отображать комментарии на своем сайте из моей базы данных. Я знаю, что мое соединение работает, как показано $ test (который отображает «Массив»).mysql отображение данных базы данных

Как преобразовать массив в полезную информацию? Это мой лучший выстрел, но он ничего не показывает:

<?php 
$connect; 

$sql_get_topic_info = "SELECT * FROM wall ORDER BY time ASC"; 
$res_get_comments_info = mysql_query($sql_get_comments_info); 
$num_get_comments_info = mysql_numrows($res_get_comments_info); 
$test = mysql_fetch_array(mysql_query($sql_get_topic_info)); //just to make sure the connection is working 
echo $test; //displays "Array" 


//Runs comment loop 
$i=0; 
while ($i < $num_get_comments_info) { 

$sel_comments_info_time = mysql_result($res_get_comments_info,$i,"time"); 
$sel_comments_info_message = mysql_result($res_get_comments_info,$i,"message"); 
$sel_comments_info_company = mysql_result($res_get_comments_info,$i,"company"); 

echo "<li>Company: $sel_comments_info_company<br/>"; 
echo "Comment: $sel_comments_info_message <br/>"; 
echo "$sel_comments_info_time"; 
echo "</li>"; 

$i++; 
} 
?> 

Обновленный скрипт (от ответа ниже)

$result = mysql_query("SELECT company, message FROM wall"); 

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { 
printf ("company: %s message: %s", $row["company"], $row["message"]); 
} 

mysql_free_result($result); 

, который печатает:

company: company 1 message: message 1company: company 2 message: message 2company: company 3 message: message 3 
+0

Является ли '$ num_get_comments_info' чем-то большим, чем 0? – sachleen

+0

Ну, у меня около 15 строк в базе данных, но когда я пытаюсь распечатать $ num_get_comments_info, ничего не отображается. –

ответ

1

Использование mysql_ является не рекомендуется, вместо этого вы должны использовать функции mysqli_.

mysql_fetch_array Из документации:

$result = mysql_query("SELECT id, name FROM mytable"); 

while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
    printf("ID: %s Name: %s", $row[0], $row[1]); 
} 

Используйте print_r($test), чтобы увидеть массив, чтобы увидеть его формат. Затем вы можете использовать цикл выше, чтобы отобразить его части в любом порядке. Каждый столбец из базы данных в результирующей строке

row = [col1, col2, col3...] 

Вы можете получить к ним доступ с помощью индексов массива $row[0], $row[1].... Вы можете увидеть заказ, посмотрев на порядок столбцов в базе данных или посмотрев, что находится в print_r. Тогда вы можете просто повторить его в том порядке, в котором вы хотите.

+0

Как отобразить массив, чтобы увидеть его формат? –

+0

Если ничего не отображается, могут быть ошибки ... проверить журнал ошибок? – sachleen

+0

удивительный. Я могу распечатать данные просто отлично. Я просто задавался вопросом, как разбить его, чтобы я мог отобразить первую строку данных, затем добавить свой собственный текст, затем вторую строку и так далее ... Ниже мой обновленный скрипт: –

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