Forum Moderators: coopster

Message Too Old, No Replies

mysql num rows(): supplied argument is

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result re

         

asson

7:57 pm on Mar 13, 2010 (gmt 0)

10+ Year Member



Hi,
I've this code

if (isset($_GET['totalRows_komentar'])) {
$totalRows_komentar = $_GET['totalRows_komentar'];
} else {
$all_komentar = mysql_query($query_komentar);
$totalRows_komentar = mysql_num_rows($all_komentar);
}
$totalPages_komentar = ceil($totalRows_komentar/$maxRows_komentar)-1;


And it's generating this error,
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result re


The error reffers to this line,

$totalRows_komentar = mysql_num_rows($all_komentar);


Any ideas on how to fix it?

Thanks in advance.

Readie

10:27 pm on Mar 13, 2010 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Probably an error in your SQL. Could you show us the value for $query_komentar please?

asson

11:05 pm on Mar 13, 2010 (gmt 0)

10+ Year Member



Thanks Readie, here is the code,


$query_komentar = sprintf("SELECT bestall.id as bid, bestall.fornamn, bestall.efternamn, undersokning.id as uid, undersokning.bestid, undersokning.kommentar, undersokning.relate FROM undersokning, bestall WHERE relate = %s AND undersokning.bestid =bestall.id ORDER BY undersokning.id DESC", GetSQLValueString($colname_komentar, "int"));
$query_limit_komentar = sprintf("%s LIMIT %d, %d", $query_komentar, $startRow_komentar, $maxRows_komentar);
$komentar = mysql_query($query_limit_komentar, $wd) or die(mysql_error());
$row_komentar = mysql_fetch_assoc($komentar);

Readie

11:35 am on Mar 14, 2010 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Looks like you need to make use of one of the join statements, possibly inner join.

I've no experience with applying sprintf on a SQL statement, so I'll just write the SQL that I think you'll need.

SELECT bestall.id as bid, bestall.fornamn, bestall.efternamn, undersokning.id as uid, undersokning.bestid, undersokning.kommentar, undersokning.relate FROM undersokning INNER JOIN bestall ON undersokning.bestid = bestall.id ORDER BY undersokning.id DESC

rocknbil

9:20 pm on Mar 14, 2010 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



... undersokning.relate FROM undersokning, bestall WHERE relate = %s AND ....


1. When joining, etc. you need the disambiguate all references to fields.

...undersokning.relate FROM undersokning, bestall WHERE undersokning.relate = %s AND...

Is relate a numeric field? If it's not, it needs to be quoted (I think . .. don't use placeholders myself . . . so this could be wrong.)

... undersokning.relate = '%s' ....

All of this is easily debugged by adding the error handler:

$all_komentar = mysql_query($query_komentar) or die(mysql_error());

You get invalid resource error when querying $all_komentar because that's a fatal error, without the handler on the actual query, it passes unnoticed (but will probably be in the server logs.)