Question

As you have observed I have put an ambiguous title for this question, as simply I do not realize (by lack of deep knowledge) if this is the true problem or not.

Let's start then with a short description:

Here is where I select my products:

    $select_prod = "SELECT * FROM product WHERE product_id IN ($some_array)";

After that here is where I define the pagination stuff:

    $query_page = mysql_query($select_prod);
    $product_total = mysql_num_rows($query_page);

            $page_rows = 4;
            $last = ceil($product_total/$page_rows);
            if ($page < 1) { 
               $page = 1; 
            } elseif ($page > $last) {
               $page = $last; 
            }
            $limit = 'limit ' .($page - 1) * $page_rows .',' .$page_rows;

And where I prepare the render

    $page_query = mysql_query($select_prod . $limit);   
    $results = array();
    while ($array_filter = mysql_fetch_array($page_query)) {
            $results[] = $array_filter;
            }

Until this point everything is flowing easily, and I get my products listed as I wanted, BUT in random ORDER.

I have tried to include "ORDER BY price ASC" at the end of the first query like this:

    $select_prod = "SELECT * FROM product WHERE product_id IN ($some_array) ORDER BY price ASC";

but for a strange reason fails to list the products with the error:

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given...

I've already had several hours in trying to find where could be the problem, and this forum seems to be the final try for me, after that I would let them order as they want to.

Was it helpful?

Solution

You really need to print out your full query directly before execution. Try this instead:

$select_prod = "SELECT * FROM product WHERE product_id IN ($some_array) ORDER BY price ASC ";

Or, change the limit line to have a space before the limit.

What I believe the problem is the the lack of space before limit. The snippet in ()limit 100 is valid SQL. The snippet in () order by price asclimit 100 is not valid SQL.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top