Идентификатор ресурса # 4 Почему я получаю это?

У меня есть довольно простой шаблон форума, над которым я работаю для тестирования

Когда я создаю тему и нажимаю submit, proccess обновляет базу данных, но не выводит ее на экран. Почему это? и почему я получаю идентификатор ресурса № 4, когда я возвращаю результат $ result из этого кода ниже:

<?php $host="server"; // Host name $username="usernamehere"; // Mysql username $password=""; // Mysql password $db_name="forum"; // Database name $tbl_name="question"; // Table name // Connect to server and select databse. mysql_connect("$host", "$username", "")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $sql="SELECT * FROM $tbl_name ORDER BY id DESC"; // OREDER BY id DESC is order result by descending $result=mysql_query($sql); echo $result; ?> <html> <body> <table width="90%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC"> <tr> <td width="6%" align="center" bgcolor="#E6E6E6"><strong>#</strong></td> <td width="53%" align="center" bgcolor="#E6E6E6"><strong>Topic</strong></td> <td width="15%" align="center" bgcolor="#E6E6E6"><strong>Views</strong></td> <td width="13%" align="center" bgcolor="#E6E6E6"><strong>Replies</strong></td> <td width="13%" align="center" bgcolor="#E6E6E6"><strong>Date/Time</strong></td> </tr> <?php // Start looping table row while($rows=mysql_fetch_array($result)){ ?> <tr> <td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td> <td bgcolor="#FFFFFF"><a href="view_topic.php?id=<? echo $rows['id']; ?>"><? echo $rows['topic']; ?></a><BR></td> <td align="center" bgcolor="#FFFFFF"><? echo $rows['view']; ?></td> <td align="center" bgcolor="#FFFFFF"><? echo $rows['reply']; ?></td> <td align="center" bgcolor="#FFFFFF"><? echo $rows['datetime']; ?></td> </tr> <?php // Exit looping and close connection } mysql_close(); ?> <tr> <td colspan="5" align="right" bgcolor="#E6E6E6"><a href="create_topic.php"><strong>Create New Topic</strong> </a></td> </tr> </table> </body> </html> 

Вы получаете resource id #4 потому что $result – это ресурс, вы должны извлечь содержащиеся в нем значения таким образом,

 $result=mysql_query($sql); $values = mysql_fetch_array($result); var_dump($values); 

Подробнее о переменной ресурса

Обновление 2 (из комментариев OP)

Вы печатаете значения с использованием имени поля. В этом случае вам нужно будет изменить

 while($rows=mysql_fetch_array($result,MYSQL_ASSOC)) 

Или вы можете напрямую использовать mysql_fetch_assoc () , который в вашем случае будет

 while($rows=mysql_fetch_assoc($result)){ echo $rows['id']; } в while($rows=mysql_fetch_assoc($result)){ echo $rows['id']; } 

Проблема в вашем коде:

 $result=mysql_query($sql); echo $result; 

$result – тип ресурса, так как mysql_query($sql) возвращает ресурс Stop echoing $result .

Если вы проверите ссылку – http://php.net/manual/en/function.mysql-query.php

Для SELECT, SHOW, DESCRIBE, EXPLAIN и других операторов, возвращающих набор результатов, mysql_query () возвращает ресурс с успехом или FALSE при ошибке

Следовательно, вы видите Ресурс №4

, Чего вы хотите достичь?

 <?php $host="server"; $username="usernamehere"; $password=""; $db_name="forum"; $tbl_name="question"; mysql_connect("$host", "$username", "")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $sql="SELECT * FROM $tbl_name ORDER BY id DESC"; // OREDER BY id DESC is order result by descending $result=mysql_query($sql); echo $result; //remove it ?> <html> <body> <table width="90%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC"> <tr> <td width="6%" align="center" bgcolor="#E6E6E6"><strong>#</strong></td> <td width="53%" align="center" bgcolor="#E6E6E6"><strong>Topic</strong></td> <td width="15%" align="center" bgcolor="#E6E6E6"><strong>Views</strong></td> <td width="13%" align="center" bgcolor="#E6E6E6"><strong>Replies</strong></td> <td width="13%" align="center" bgcolor="#E6E6E6"><strong>Date/Time</strong></td> </tr> <?php // Start looping table row while($rows=mysql_fetch_array($result)){ echo"<tr> <td bgcolor=#FFFFFF>$rows['id']</td> <td bgcolor=#FFFFFF><a href='view_topic.php?id=$rows['id']'>$rows['topic']</a><BR></td> <td align=center bgcolor=#FFFFFF>$rows['view']</td> <td align=center bgcolor=#FFFFFF>$rows['reply']</td> <td align=center bgcolor=#FFFFFF>$rows['datetime'];</td> </tr>"; // Exit looping and close connection } mysql_close(); ?> <tr> <td colspan="5" align="right" bgcolor="#E6E6E6"><a href="create_topic.php"><strong>Create New Topic</strong> </a></td> </tr> </table> </body> </html> в <?php $host="server"; $username="usernamehere"; $password=""; $db_name="forum"; $tbl_name="question"; mysql_connect("$host", "$username", "")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $sql="SELECT * FROM $tbl_name ORDER BY id DESC"; // OREDER BY id DESC is order result by descending $result=mysql_query($sql); echo $result; //remove it ?> <html> <body> <table width="90%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC"> <tr> <td width="6%" align="center" bgcolor="#E6E6E6"><strong>#</strong></td> <td width="53%" align="center" bgcolor="#E6E6E6"><strong>Topic</strong></td> <td width="15%" align="center" bgcolor="#E6E6E6"><strong>Views</strong></td> <td width="13%" align="center" bgcolor="#E6E6E6"><strong>Replies</strong></td> <td width="13%" align="center" bgcolor="#E6E6E6"><strong>Date/Time</strong></td> </tr> <?php // Start looping table row while($rows=mysql_fetch_array($result)){ echo"<tr> <td bgcolor=#FFFFFF>$rows['id']</td> <td bgcolor=#FFFFFF><a href='view_topic.php?id=$rows['id']'>$rows['topic']</a><BR></td> <td align=center bgcolor=#FFFFFF>$rows['view']</td> <td align=center bgcolor=#FFFFFF>$rows['reply']</td> <td align=center bgcolor=#FFFFFF>$rows['datetime'];</td> </tr>"; // Exit looping and close connection } mysql_close(); ?> <tr> <td colspan="5" align="right" bgcolor="#E6E6E6"><a href="create_topic.php"><strong>Create New Topic</strong> </a></td> </tr> </table> </body> </html> 

просто проверьте код выше, я думаю, что ваша проблема должна быть выполнена

Вам не нужно использовать mysql_fetch_array (). Если хотите, попробуйте что-то вроде этого:

 $sql="SELECT * FROM $tbl_name ORDER BY id DESC"; //that's your query $result=mysql_query($sql); $rows=mysql_num_rows($result); $iteration=0; echo "<table>"; while($iteration < $rows){ $cell_in_your_html_table = mysql_result($result , $iteration , 'column_name_from_database'); echo "<tr><td>".$cell_in_your_html_table."</td></tr>"; $iteration++; } echo "</table>"