Re: function not returning query

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Nov 23, 2009, at 6:22 PM, Allen McCabe wrote:

> Hi, thanks for reading, I hope you can help:
> 
> In my main file for an orders page I have the following code:
> 
> 
> if (isset($_GET['filterby']))
> {
>  $resultOrders = adminFilterQuery();
>  $numberOfOrders = mysql_num_rows($resultOrders);
> }
> else
> {
>  $resultOrders = mysql_query("SELECT * FROM afy_order;") or
> die(mysql_error("Could not query the database!"));
>  $numberOfOrders = mysql_num_rows($resultOrders);
> }

You reduce this part by one line by putting the following after the else statement and removing the other 2:

$numberOfOrders = mysql_num_rows ($resultOrders);

Also, these queries don't need a semi-colon (;) to end the query. PHP handles this part. Remove them.


> adminFilterQuery() is a custom function that is supposed to return a
> mysql_query, here are the last few lines of this function:
> 
> 
> $query = "SELECT * FROM afy_order WHERE school_id = '{$school}' ORDER BY
> {$order_by_param};";
> $result = mysql_query($query);
> return $result;
> 
> l am getting this error when I try to filter my query using a form in tandem
> with the quey building function:
> 
> *Warning*: mysql_num_rows(): supplied argument is not a valid MySQL result
> resource
> 
> where the line is the one where I use the mysql_num_rows function.
> 
> What am I missing here?
> 
> Thanks!

Do you get this warning with both queries? Make sure that your queries are using a valid mysql connection. You may also consider using a database class to perform the repetitive tasks so that you really only have to be concerned with the queries you're writing...?

<?php
class database {
    public function query ($sql) {
        $result = mysql_query ($sql);
        if ($result === false) {
            die ('Uh oh!');
        }
        return $result;
    }
    
    public function numRows ($result) {
        return mysql_num_rows ($result);
    }
}
$db = new database();
$result = $db->query('SELECT * FROM afy_order');
$numRows = $db->numRows($result);
?>

Of course this is just a simple example, but you get the idea. Hope that stirs your brain!

~Philip
-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux