Resource ID # 4 Why am I getting this?

I have a pretty simple forum template I'm working on for testing

When I create a topic and click submit, proccess updates the database but does not display it. Why is this? and why I get resource identifier No. 4 when I return the result of $ result from this code below:

<?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> 
+4
source share
5 answers

You get resource id #4 because $result is a resource, you have to extract the values ​​contained in it in such a way

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

More about variable resource

Update 2 (from OP comments)

You print the values ​​using the field name. In this case, you will need to change to

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

Or you can directly use mysql_fetch_assoc () , which in your case will be

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

The problem is in your code:

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

$result is the type of resource, since mysql_query($sql) returns the resource Stop echo $result .

+4
source

If you check the link - http://php.net/manual/en/function.mysql-query.php

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements that return a result set, mysql_query () returns the resource with success or FALSE on error

Therefore, you see Resource # 4

. What do you want to achieve?

+1
source
 <?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> 

just check the code above. I think your problem should be fulfilled

0
source

You do not need to use mysql_fetch_array (). If you want, try something like this:

 $sql="SELECT * FROM $tbl_name ORDER BY id DESC"; //that 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>" 
-2
source

Source: https://habr.com/ru/post/1443584/


All Articles