irishgirl Posted August 22, 2008 Share Posted August 22, 2008 Hi everyone Firstly I hope I've put this in the correct forum. Looking for advice on how to have page navigation with php. Currently I have the page set up dynamically so that each page reloads on the same page but with a different id (which i get from the mysql database) for example, project.html?id=5. At the end of each page i'd like a project navigation system with previous ( for ex. project.html?id=4) and next (for ex. project.html?id=6). This is my code for this piece: <div class="scroll-gallery"> <? mysql_connect("$DBHost","$DBUser","$DBPass"); $result=mysql("$DBName","SELECT * FROM project where id = '$projid'"); while($row=mysql_fetch_row($result)) { $pid=$row[0]; $pid1 = $pid+1; $pid2 = $pid-1; $result2=mysql("$DBName","SELECT COUNT(id) FROM project"); while($row=mysql_fetch_array($result2)) { $totalNum = $row['COUNT(id)']; } } if ($pid>1){ echo"<a href=\"project.html?id=$pid2\" class=\"prev\">Prev Project</a><span class=\"separ\">"; } if ($pid<$totalNum){ echo"<span class=\"separ\"><a href=\"project.html?id=$pid1\" class=\"next\">Next Project</a><span class=\"scr-numb\">"; } ?> </div> But as its going by the id in the database, if a record is erased from the database i need it to skip to the next available id number otherwise a blank page will show. I cant get it to do this please help *beginner* Link to comment https://forums.phpfreaks.com/topic/120892-phpmysql-page-navigation-help/ Share on other sites More sharing options...
.josh Posted August 22, 2008 Share Posted August 22, 2008 I think what I would do is initially pull out all the ids from the database and put it in a session array and then base your GET var off the array position, and use the value of that position in your query. That way you are working with a list of numbers without any gaps. pseudo code: <?php session_start(); if (!$_SESSION['id_list']) { $sql = "select id from table"; $result = mysql_query($sql); while ($n = mysql_fetch_row($result)) { $_SESSION['id_list'][]= $n[0]; } // end while $n } // end if !$_SESSION['id_list'] $id = $_SESSION['id_list'][{$_GET['id']}]; // use $id in your query Link to comment https://forums.phpfreaks.com/topic/120892-phpmysql-page-navigation-help/#findComment-623153 Share on other sites More sharing options...
irishgirl Posted August 22, 2008 Author Share Posted August 22, 2008 Thanks you gave me an idea and I tried doing it with an array like this, would this be correct? $numbers = array(); <div class="scroll-gallery"> <? mysql_connect("$DBHost","$DBUser","$DBPass"); $result=mysql("$DBName","SELECT * FROM project where id = '$projid'"); while($row=mysql_fetch_row($result)) { array_push($numbers,$row[0]); } sort($numbers, [sORT_NUMERIC]); array_count_values($numbers); $total = array_count_values($numbers); foreach ($numbers as $number) { if ($number>1){ echo"<a href=\"project.html?id=$number\" class=\"prev\">Prev Project</a><span class=\"separ\">"; } if ($number<$total){ echo"<span class=\"separ\"><a href=\"project.html?id=$number\" class=\"next\">Next Project</a><span class=\"scr-numb\">"; } ?> </div> Link to comment https://forums.phpfreaks.com/topic/120892-phpmysql-page-navigation-help/#findComment-623212 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.