zintani Posted August 19, 2011 Share Posted August 19, 2011 Hello, While I was working on my code I faced this problem (Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\showlist.php on line 31 Call Stack # Time Memory Function Location 1 0.0269 371408 {main}( ) ..\showlist.php:0 2 0.0611 383760 mysql_num_rows ( ) ..\showlist.php:31 ) And I tried to figure out why is this message appearing every time I invoke the code. Anyone can help please? and here is my code echo "<br />"; $sql = "SELECT * FROM message, recipientinfo WHERE message.message_id = recipientinfo.mid AND (message.sender = 'kevin.hyatt@enron.com' AND recipientinfo.rvalue = 'michelle.lokay@enron.com' AND recipientinfo.rtype = TO )"; $done = mysql_query ($sql); $show = mysql_num_rows($done); echo $show; Another question please my database is larger than 500 MB which sometimes I find difficulties when I search using join feature between tables. Is there a method to increase the capability of phpmyadmin? Thanks a lot Link to comment https://forums.phpfreaks.com/topic/245219-mysql_num_rows/ Share on other sites More sharing options...
xyph Posted August 19, 2011 Share Posted August 19, 2011 Problem one - use mysql_error() Problem two - get a better server, or optimize your queries/indexes/table structure Link to comment https://forums.phpfreaks.com/topic/245219-mysql_num_rows/#findComment-1259506 Share on other sites More sharing options...
Psycho Posted August 19, 2011 Share Posted August 19, 2011 Right, your query is failing. Change your mysql_query() line to this $done = mysql_query ($sql) or die("Query:<br>{$query}<br>Error:<br>".mysql_error()); However, I see why your query is failing. Here it is in a more readable format: $sql = "SELECT * FROM message, recipientinfo WHERE message.message_id = recipientinfo.mid AND ( message.sender = 'kevin.hyatt@enron.com' AND recipientinfo.rvalue = 'michelle.lokay@enron.com' AND recipientinfo.rtype = TO )"; It is failing because of the "TO" in the last condition. If you are trying to compare against a string then the value need to be in single quotes: 'TO'. If TO is a variable or constant then you will need to define it appropriately - if it is a string then it still needs to be in quotes. Personally I prefer to use explicit joins. I don't know if it is more efficient, but it is easier to see the relationships. This is how I would have prepared that query $sql = "SELECT * FROM message JOIN recipientinfo ON message.message_id = recipientinfo.mid WHERE message.sender = 'kevin.hyatt@enron.com' AND recipientinfo.rvalue = 'michelle.lokay@enron.com' AND recipientinfo.rtype = 'TO'"; Don't be afraid to add line breaks and spacing to your code. It makes the code much, much more readable and logical for a human. Link to comment https://forums.phpfreaks.com/topic/245219-mysql_num_rows/#findComment-1259516 Share on other sites More sharing options...
zintani Posted August 24, 2011 Author Share Posted August 24, 2011 Thanks a lot that helps me to go through. Link to comment https://forums.phpfreaks.com/topic/245219-mysql_num_rows/#findComment-1261147 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.