Foster1984 Posted January 28, 2009 Share Posted January 28, 2009 Hey iam getting this error: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Website\view_topic.php on line 18 (also on line 48 and 88) These lines: $rows=mysql_fetch_array($result); while($rows=mysql_fetch_array($result2)){ $rows=mysql_fetch_array($result3); HERE IS THE FULL CODE: <?php $host="localhost"; // Host name $username=""; // Mysql username $password=""; // Mysql password $db_name="test"; // Database name $tbl_name="forum_question"; // Table name // Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); // get value of id that sent from address bar $id=$_GET['id']; $sql="SELECT * FROM $tbl_name WHERE id='$id'"; $result=mysql_query($sql); $rows=mysql_fetch_array($result); ?> <table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> <tr> <td><table width="100%" border="0" cellpadding="3" cellspacing="1" bordercolor="1" bgcolor="#FFFFFF"> <tr> <td bgcolor="#F8F7F1"><strong><?php echo $rows['topic']; ?></strong></td> </tr> <tr> <td bgcolor="#F8F7F1"><?php echo $rows['detail']; ?></td> </tr> <tr> <td bgcolor="#F8F7F1"><strong>By :</strong> <?php echo $rows['name']; ?> <strong>Email : </strong><?php echo $rows['email'];?></td> </tr> <tr> <td bgcolor="#F8F7F1"><strong>Date/time : </strong><?php echo $rows['datetime']; ?></td> </tr> </table></td> </tr> </table> <BR> <?php $tbl_name2="forum_answer"; // Switch to table "forum_answer" $sql2="SELECT * FROM $tbl_name2 WHERE question_id='$id'"; $result2=mysql_query($sql2); while($rows=mysql_fetch_array($result2)){ ?> <table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> <tr> <td><table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> <tr> <td bgcolor="#F8F7F1"><strong>ID</strong></td> <td bgcolor="#F8F7F1">:</td> <td bgcolor="#F8F7F1"><?php echo $rows['a_id']; ?></td> </tr> <tr> <td width="18%" bgcolor="#F8F7F1"><strong>Name</strong></td> <td width="5%" bgcolor="#F8F7F1">:</td> <td width="77%" bgcolor="#F8F7F1"><?php echo $rows['a_name']; ?></td> </tr> <tr> <td bgcolor="#F8F7F1"><strong>Email</strong></td> <td bgcolor="#F8F7F1">:</td> <td bgcolor="#F8F7F1"><?php echo $rows['a_email']; ?></td> </tr> <tr> <td bgcolor="#F8F7F1"><strong>Answer</strong></td> <td bgcolor="#F8F7F1">:</td> <td bgcolor="#F8F7F1"><?php echo $rows['a_answer']; ?></td> </tr> <tr> <td bgcolor="#F8F7F1"><strong>Date/Time</strong></td> <td bgcolor="#F8F7F1">:</td> <td bgcolor="#F8F7F1"><?php echo $rows['a_datetime']; ?></td> </tr> </table></td> </tr> </table><br> <?php } $sql3="SELECT view FROM $tbl_name WHERE id='$id'"; $result3=mysql_query($sql3); $rows=mysql_fetch_array($result3); $view=$rows['view']; // if have no counter value set counter = 1 if(empty($view)){ $view=1; $sql4="INSERT INTO $tbl_name(view) VALUES('$view') WHERE id='$id'"; $result4=mysql_query($sql4); } // count more value $addview=$view+1; $sql5="update $tbl_name set view='$addview' WHERE id='$id'"; $result5=mysql_query($sql5); mysql_close(); ?> <BR> <table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> <tr> <form name="form1" method="post" action="add_answer.php"> <td> <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> <tr> <td width="18%"><strong>Name</strong></td> <td width="3%">:</td> <td width="79%"><input name="a_name" type="text" id="a_name" size="45"></td> </tr> <tr> <td><strong>Email</strong></td> <td>:</td> <td><input name="a_email" type="text" id="a_email" size="45"></td> </tr> <tr> <td valign="top"><strong>Answer</strong></td> <td valign="top">:</td> <td><textarea name="a_answer" cols="45" rows="3" id="a_answer"></textarea></td> </tr> <tr> <td> </td> <td><input name="id" type="hidden" value="<?php echo $id; ?>"></td> <td><input type="submit" name="Submit" value="Submit"> <input type="reset" name="Submit2" value="Reset"></td> </tr> </table> </td> </form> </tr> </table> Quote Link to comment https://forums.phpfreaks.com/topic/142793-fetch-array-problem/ Share on other sites More sharing options...
gevans Posted January 28, 2009 Share Posted January 28, 2009 Use [ code] [/ code] tags also add this.... $result=mysql_query($sql) or die(mysql_error()); Quote Link to comment https://forums.phpfreaks.com/topic/142793-fetch-array-problem/#findComment-748440 Share on other sites More sharing options...
Foster1984 Posted January 28, 2009 Author Share Posted January 28, 2009 Use [ code] [/ code] tags also add this.... $result=mysql_query($sql) or die(mysql_error()); Im unsure what you mean? Quote Link to comment https://forums.phpfreaks.com/topic/142793-fetch-array-problem/#findComment-748444 Share on other sites More sharing options...
gevans Posted January 28, 2009 Share Posted January 28, 2009 Change these two lines; $sql="SELECT * FROM $tbl_name WHERE id='$id'"; $result=mysql_query($sql); to this $sql="SELECT * FROM $tbl_name WHERE id='$id'"; $result=mysql_query($sql) or die(mysql_error()); Quote Link to comment https://forums.phpfreaks.com/topic/142793-fetch-array-problem/#findComment-748447 Share on other sites More sharing options...
void Posted January 28, 2009 Share Posted January 28, 2009 table `forum_question` probably isn't there. Quote Link to comment https://forums.phpfreaks.com/topic/142793-fetch-array-problem/#findComment-748449 Share on other sites More sharing options...
Adam Posted January 28, 2009 Share Posted January 28, 2009 For each of the 3 problems, look for use of the "mysql_query()" function and add: or die(mysql_error()); ... to the end. For example: $result=mysql_query($sql) or die(mysql_error()); This will output an error message for each which should help you to identify the problem. Adam Quote Link to comment https://forums.phpfreaks.com/topic/142793-fetch-array-problem/#findComment-748452 Share on other sites More sharing options...
gevans Posted January 28, 2009 Share Posted January 28, 2009 @void It won't be the table name as he gets the same error on a different line with a different table in the query. And the insert queries are working. Quote Link to comment https://forums.phpfreaks.com/topic/142793-fetch-array-problem/#findComment-748454 Share on other sites More sharing options...
Foster1984 Posted January 28, 2009 Author Share Posted January 28, 2009 @void It won't be the table name as he gets the same error on a different line with a different table in the query. And the insert queries are working. Hey im getting the following error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id']; ?>'' at line 1 Quote Link to comment https://forums.phpfreaks.com/topic/142793-fetch-array-problem/#findComment-748458 Share on other sites More sharing options...
gevans Posted January 28, 2009 Share Posted January 28, 2009 OK, now change it to this; $sql="SELECT * FROM $tbl_name WHERE id='$id'"; echo $sql.'<br />'; $result=mysql_query($sql) or die(mysql_error()); Then we'll see the query followed by the error. Quote Link to comment https://forums.phpfreaks.com/topic/142793-fetch-array-problem/#findComment-748471 Share on other sites More sharing options...
Foster1984 Posted January 28, 2009 Author Share Posted January 28, 2009 OK, now change it to this; $sql="SELECT * FROM $tbl_name WHERE id='$id'"; echo $sql.'<br />'; $result=mysql_query($sql) or die(mysql_error()); Then we'll see the query followed by the error. The error is now: SELECT * FROM forum_question WHERE id='' You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id']; ?>'' at line 1 Quote Link to comment https://forums.phpfreaks.com/topic/142793-fetch-array-problem/#findComment-748479 Share on other sites More sharing options...
gevans Posted January 28, 2009 Share Posted January 28, 2009 There's your problem SELECT * FROM forum_question WHERE id='' You'r not passing and id variable. When you do this; $id=$_GET['id']; check if it's empty, and if so don't run the queries Quote Link to comment https://forums.phpfreaks.com/topic/142793-fetch-array-problem/#findComment-748481 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.