wolfcry Posted March 28, 2008 Share Posted March 28, 2008 Hey all, I wrote a script to preform the basic pagination needs but for some reaons I cannot get the data to prin t to the screen when I click on the paginated page number (EG page #2). Everything prints fine for page one, but nothing shows up for page to or any other pages. Heres the bit of code: <?php session_start(); require("config.php"); $link = ft_db_connect(); // now retrieve ALL submissions in this location $table_id = information; $_SESSION['city'] = $_POST['city']; $sl = $_SESSION['city']; $city_location = $sl; $result = mysql_query("SELECT COUNT(*) AS total_entries FROM data_{$table_id} WHERE col_3 = '$city_location'") or die("Uh Oh" . mysql_error()); $row = mysql_fetch_row($result); $total_entries = $row[0]; $entries_per_page = 5; if(isset($_GET['page_number'])) { $page_number = $_GET['page_number']; } else { $page_number = 1; } $total_pages = ceil($total_entries / $entries_per_page); $offset = ($page_number - 1) * $entries_per_page; $result = mysql_query("SELECT * FROM ft_form_{$form_id} WHERE col_3 = '$city_location' LIMIT $offset, $entries_per_page") or die(mysql_error()); while ($row = mysql_fetch_array($result)) { echo "<table>"; echo "<tr><td><b>Location Name:</b> {$row['col_2']}</td></tr>"; echo "<tr><td><b>City / Town:</b> {$row['col_3']}</td></tr>"; echo "<tr><td><b>State / Province:</b> {$row['col_4']}</td></tr>"; echo "<tr><td><b>GPS Data:</b> {$row['col_5']}</td></tr>"; echo "<tr><td><b>Description:</b> {$row['col_6']}</td></tr>"; echo "</table>"; echo "<hr size=\"1\" />"; // just for display purposes to separate the entries } for($i = 1; $i <= $total_pages; $i++) { if($i == $page_number) { print "$i "; } else { print "<a href='search.php?page_number=$i'>$i</a>"; } } if (isset($_POST["submit"]) AND mysql_num_rows($result) == 0) { echo "Sorry, there have been no submissions in this location."; } Now, you'll see $_SESSION['city'] = $_POST['city'] because I've been experimenting with trying to get this to work (it was originally $city = $_POST['city'] and the value is being pulled from posted data search from another page. How do I store the original value of the search into a variable or into this code so the paginated data will show up on all pages? I've been working on it for a bit now and it's really starting to drive me nuts lol. Thanks in advance. Link to comment https://forums.phpfreaks.com/topic/98261-pagination-problem/ Share on other sites More sharing options...
benjaminbeazy Posted March 28, 2008 Share Posted March 28, 2008 Now, you'll see $_SESSION['city'] = $_POST['city'] because I've been experimenting with trying to get this to work (it was originally $city = $_POST['city'] and the value is being pulled from posted data search from another page. How do I store the original value of the search into a variable or into this code so the paginated data will show up on all pages? just change $_SESSION['city'] = ... to $city = $_REQUEST['city']; that will capture post and get methods. then add the city as a var to your pagination url like <a href='search.php?city=$city&page_number=$i'> that should fix the other problem, as when you click on a subsequent page past the first result, you redefine your city location based on the posted var (which is no longer posted, we are using get now..) here, just use this... <?php session_start(); require("config.php"); $link = ft_db_connect(); // now retrieve ALL submissions in this location $table_id = information; $city_location = $_REQUEST['city']; $result = mysql_query("SELECT COUNT(*) AS total_entries FROM data_{$table_id} WHERE col_3 = '$city_location'") or die("Uh Oh" . mysql_error()); $row = mysql_fetch_row($result); $total_entries = $row[0]; $entries_per_page = 5; if(isset($_GET['page_number'])) { $page_number = $_GET['page_number']; } else { $page_number = 1; } $total_pages = ceil($total_entries / $entries_per_page); $offset = ($page_number - 1) * $entries_per_page; $result = mysql_query("SELECT * FROM ft_form_{$form_id} WHERE col_3 = '$city_location' LIMIT $offset, $entries_per_page") or die(mysql_error()); while ($row = mysql_fetch_array($result)) { echo "<table>"; echo "<tr><td><b>Location Name:</b> {$row['col_2']}</td></tr>"; echo "<tr><td><b>City / Town:</b> {$row['col_3']}</td></tr>"; echo "<tr><td><b>State / Province:</b> {$row['col_4']}</td></tr>"; echo "<tr><td><b>GPS Data:</b> {$row['col_5']}</td></tr>"; echo "<tr><td><b>Description:</b> {$row['col_6']}</td></tr>"; echo "</table>"; echo "<hr size=\"1\" />"; // just for display purposes to separate the entries } for($i = 1; $i <= $total_pages; $i++) { if($i == $page_number) { print "$i "; } else { print "<a href='search.php?city=$city_location&page_number=$i'>$i</a>"; } } if (isset($_POST["submit"]) AND mysql_num_rows($result) == 0) { echo "Sorry, there have been no submissions in this location."; } Link to comment https://forums.phpfreaks.com/topic/98261-pagination-problem/#findComment-502818 Share on other sites More sharing options...
cooldude832 Posted March 28, 2008 Share Posted March 28, 2008 is you registered globals turned on? Link to comment https://forums.phpfreaks.com/topic/98261-pagination-problem/#findComment-502822 Share on other sites More sharing options...
wolfcry Posted March 29, 2008 Author Share Posted March 29, 2008 Thanks Benjamin its finally working. I tried using the $_REQUEST method before but was setting it up wrong. I have another question if I could, I wish to allow visitors the chance to update a row if that particular row comes up empty. I tried using the following code (I surrounded it in #'s for this post only. It's not actually in my code): <?php session_start(); require("config.php"); $link = ft_db_connect(); // now retrieve ALL submissions in this location $table_id = information; $city_location = $_REQUEST['city']; $result = mysql_query("SELECT COUNT(*) AS total_entries FROM data_{$table_id} WHERE col_3 = '$city_location'") or die("Uh Oh" . mysql_error()); $row = mysql_fetch_row($result); $total_entries = $row[0]; $entries_per_page = 5; if(isset($_GET['page_number'])) { $page_number = $_GET['page_number']; } else { $page_number = 1; } $total_pages = ceil($total_entries / $entries_per_page); $offset = ($page_number - 1) * $entries_per_page; $result = mysql_query("SELECT * FROM ft_form_{$form_id} WHERE col_3 = '$city_location' LIMIT $offset, $entries_per_page") or die(mysql_error()); while ($row = mysql_fetch_array($result)) { echo "<table>"; echo "<tr><td><b>Location Name:</b> {$row['col_2']}</td></tr>"; echo "<tr><td><b>City / Town:</b> {$row['col_3']}</td></tr>"; echo "<tr><td><b>State / Province:</b> {$row['col_4']}</td></tr>"; echo "<tr><td><b>GPS Data:</b> {$row['col_5']}</td></tr>"; echo "<tr><td><b>Description:</b> {$row['col_6']}</td></tr>"; echo "</table>"; ##################### NEW CODE ####################### if ($row ['col_6'] == "") { echo "<form action='$_SERVER[php_SELF]' method='post'>"; echo "<input type='text' name='description'>"; echo "<input type='submit' name='submit' value='Submit Information'>"; echo "</form>"; $description = $_POST['description']; $query="UPDATE ft_form_{$form_id} SET description='$description'"; mysql_query($query); mysql_close(); } ################## END NEW CODE ########################## echo "<hr size=\"1\" />"; // just for display purposes to separate the entries } for($i = 1; $i <= $total_pages; $i++) { if($i == $page_number) { print "$i "; } else { print "<a href='search.php?city=$city_location&page_number=$i'>$i</a>"; } } if (isset($_POST["submit"]) AND mysql_num_rows($result) == 0) { echo "Sorry, there have been no submissions in this location."; } The function works as in it shows up if that particular field is empty but I need two things from this: 1. To find any empty field not just the one I have as shown above if possible. 2. To actually be able to update the table if that information is submitted. Seems I'm hitting a brick wall again. Only thing that happens when new information is submitted is the default "Sorry, there have been no submissions in this location." message is shown. I know I'm missing something simple I just don't know what. Again, thanks for all of your help guys. Link to comment https://forums.phpfreaks.com/topic/98261-pagination-problem/#findComment-503980 Share on other sites More sharing options...
wolfcry Posted March 29, 2008 Author Share Posted March 29, 2008 Sorry for reposting, but I wasn't able to modify my original post. For this section of code: $description = $_POST['description']; $query="UPDATE ft_form_{$form_id} SET description='$description'"; mysql_query($query); mysql_close(); I'm actually using this: if (isset($_POST[submit])) { $form_id = 24; $id = $row["submission_id"]; $new_description = $_POST["description"]; $query = "UPDATE `ft_form_{$form_id} SET `description` = '{$new_description}' WHERE submission_id = '{$id}'"; mysql_query($query); } Link to comment https://forums.phpfreaks.com/topic/98261-pagination-problem/#findComment-503992 Share on other sites More sharing options...
wolfcry Posted March 30, 2008 Author Share Posted March 30, 2008 Actually, let me reword this. I know the syntax for modifying a database. What I want to know is, which one is better to use for the visitor side if I created a function that only shows a form based on an empty field, would it be UPDATE or INSERT? What I'm trying to accomplish is, after everything prints (which it does) if there is a field that is empty (say for example: echo "<tr><td><b>GPS Data:</b> {$row['col_5']}</td></tr>"; ), I am trying to successfully allow a user to enter that data and update the database with the submitted code. Hope that makes sense. I just need a fresh pair of eyes to help me distinguish where I'm going wrong. Thanks Link to comment https://forums.phpfreaks.com/topic/98261-pagination-problem/#findComment-504679 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.