Re: A weird images database/web page problem

From: Date: Thu, 17 Jan 2002 16:00:58 +0000
Subject: Re: A weird images database/web page problem
References: 1  Groups: php.db 
Request: Send a blank email to php-db+get-15938@lists.php.net to get a copy of this message
Hello again. On Thursday, January 17, 2002, at 01:06 AM, chip wrote:
On Wednesday 16 January 2002 08:57 pm, Steven Cayford banged out on the keys:
On 2002.01.16 19:59:37 -0600 chip wrote:
Let's tackle the first one first -
OK.
On Tuesday 15 January 2002 10:20 pm, Steven Cayford banged out on the keys:
On 2002.01.15 23:30:25 -0600 chip wrote:
won't work) $new_pic=$pic+12;
Is $pic already set by the HTTP_GET_VARS here?
I don't know. How do I set this? I was reading the online manual about http_get_vars and it didn't help, and doesn't have any examples.
I was assuming that the $pic variable was set by the HTTP get request since your link below is in the form: <a href=\"index.php?pic=$new_pic\">. When the target script starts after being called like that the value in the global variable $HTTP_GET_VARS['pic'] will hold whatever $new_pic was set to in the reference. Assuming you have register_globals on,
Yes it is on.
then the global variable $pic will also be set to the same value.
Makes sense
Otherwise $pic will be uninitialized and should evaluate to 0.
So, I guess I have to set the variable to 0 first when the first page is loaded, then add 24 (or 12 or whatever) to for the link to the next page. So, with that in mind I added this
    $pic=0;
before
    $new_pic=$pic+12;
but that just caused it to reload the same images each time next was pushed.
So, now that I appear to be a total dummy, and the manual doesn't provide any
examples, and the two books I have don't seem to be able to help also, would
you mind helping me a bit more? I'm I going about this next page stuff all
wrong, is there a better way to do it? --
Sorry, I think I got you off track. In this case you *do* want to set $pic from the GET vars. I guess how I would do this would be something like this: if(! isset($pic)) { $pic = 0; } This way, if $pic has been set by the GET vars, then the value will be retained, otherwise it will be explicitly set to whatever default value you want--in this case 0. This is probably anal of me, but I just don't like using uninitialized variables. Also keep in mind that $pic can be set to any value via the URL. So if someone types into their browser: "http://...your_site.../index.php?pic=hello" then when your script runs $pic will hold the string "hello" instead of a number. Then if you stick the value straight into your sql statement without verifying it you could get all sorts of weird problems. If the site is just for your own local use, then don't worry about it, but if its going to be available to the wider world at some point then you may want to explicitly force $pic to be an integer "$pic = (int) $pic;" or something like that. In any case, this is all aside from the problem that you were running into. I think if you change your sql statement below from "select * from ab limit $new_pic,12" to "select * from ab limit $pic,12" you'll find you can get the first page of images. -Steve
(nothing new below here, just history)
    $conn=mysql_connect("localhost", "chip","carvin") or die ("Could
not
get the databse"); mysql_select_db("images", $conn) or die ("Could not select the database"); $sql="select * from ab limit $new_pic,12";
Assuming that $pic is 0, then $new_pic is 12, so you're selecting with LIMIT 12, 12. You probably want to use $pic here, right?
$result=mysql_query($sql); while ($row=mysql_fetch_array($result)) { printf("<td align=\"center\"><a href=\"%s\"><img src=\"../thumbs/%s\"></a></td>\n", $row["name"], $row["name"]); $i++; if($i %6==0)
           {
           echo "</tr>\n";
           }
Note that if the select statement gives you other than 6 or 12 images (which it probably will on the last page), that </tr> will never get echoed.
} echo "<tr>\n<td colspan=\"6\" align=\"center\">\n<a href=\"../index.html\">Home</a>&nbsp;\n<a href=\"index.php?pic=$new_pic\">Next</a>\n</td>\n</tr>\n"; ?>
To find out if $new_pic pointed to a valid image you would probably
need
to do a "select count(*) from ab" to get the total number of records.
If
$new_pic is less than the count, then show the link.
-- Chip W
-- PHP Database Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-db-unsubscribe@lists.php.net For additional commands, e-mail: php-db-help@lists.php.net To contact the list administrators, e-mail: php-list-admin@lists.php.net


« previous php.db (#15938) next »