Jump to content

query help


speedy33417

Recommended Posts

Quick newbie question. I'm trying to get a count of albums in my table:

[code]        $sql = "SELECT COUNT(*)
                FROM pictures
                WHERE picture_albumid = 1";
               
        $numofpics = mysql_query($sql);
       
        echo $numofpics;[/code]

But this is what I get echoed:

Resource id #7

What am I doing wrong?

Thanks.
Link to comment
Share on other sites

From the manual: For SELECT, SHOW, DESCRIBE or EXPLAIN statements, mysql_query() returns a resource on success, or FALSE on error.
http://no.php.net/mysql_query


$total = mysql_result(mysql_query("SELECT COUNT(*) FROM pictures WHERE picture_albumid = 1"),0);
Link to comment
Share on other sites

You need to do something with your result resource to extract the data from it.

Lets look at your query...

[code=php:0]$sql = "SELECT COUNT(*) FROM pictures WHERE picture_albumid = 1";
[/code]

Now count() is what's known as a single row query, if you use count() in a statement, you're only expecting one row returned, so if you get your result resource like so...

[code=php:0]$numofpics = mysql_query($sql);[/code]


We expect $numofpics to be one row, which it is.  BUT we can't just echo it out, as you've found out, we need to extract that data, so a search of the manual tells us we can use [code=php:0]mysql_fetch_row()[/code] for getting a single row.

So lets give that a try...

[code=php:0]$row = mysql_fetch_row($numofpics);[/code]


What this has done is put the row into an array, with each element representing a column, seen as though we only selected one column, our array only contains one element.  So to echo the first element in an array all we need is...

[code=php:0]echo "$row[0]";[/code]


I hope this helped.  Remember this is only for a single row, if you have multiple rows you'll need something like mysql_fetch_array() and you'll need to loop through them.

Regards
Huggie
Link to comment
Share on other sites

Thanks guys. It really helped me out!

I ended up using the first code

[code]$total = mysql_result(mysql_query("SELECT COUNT(*) FROM pictures WHERE picture_albumid = 1"),0);[/code]

It works great, but now I need to use a variable instead of a plain number and I'm getting an error again.
The statement is supposed to find out how many albums I have to display. album_root can have a value of "main" or the name of a sub-album. If it's "main" that means it's displayed on the main page.

Here's the statement:

[code]$album = "main";
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM albums WHERE album_root = $album"),0);
[/code]

Right now I'm manually feeding the variable $album. But it doesn't seem to work... ???
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.