Re: A weird images database/web page problem
| From: | Steve Cayford | 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: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. -SteveOn 2002.01.16 19:59:37 -0600 chip wrote:Yes it is on.Let's tackle the first one first -OK.On Tuesday 15 January 2002 10:20 pm, Steven Cayford banged out on the keys: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,On 2002.01.15 23:30:25 -0600 chip wrote: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.won't work) $new_pic=$pic+12;Is $pic already set by the HTTP_GET_VARS here?then the global variable $pic will also be set to the same value.Makes senseOtherwise $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 allwrong, is there a better way to do it? --
(nothing new below here, just history)-- 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.netnot$conn=mysql_connect("localhost", "chip","carvin") or die ("Couldneedget 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)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"; }} echo "<tr>\n<td colspan=\"6\" align=\"center\">\n<a href=\"../index.html\">Home</a> \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 probablyto 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