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 Quote 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 Quote 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. Quote 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. Quote Link to comment https://forums.phpfreaks.com/topic/245219-mysql_num_rows/#findComment-1261147 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.