2013-12-13 2 views
0

В настоящее время у меня есть страница index.php, которая служит индексом для страницы «Мои закладки». Страница возвращает результаты запроса базы данных MySQL в таблицу, которая автоматически генерируется. Код должен допускать только пять записей на странице, прежде чем генерировать дополнительную страницу (таким образом, вставляя номера страниц/ссылки внизу). По какой-то причине мой код просто прекратил работу/создание номеров страниц.Динамически генерирующие номера страниц

Что не так с моим кодом? Кажется, я не могу найти проблему, и я не знаю, что искать на форуме; любое руководство очень ценится.

Вот мой index.php код:

<?php 
session_start(); 
//check session first 
if (!isset($_SESSION['email'])){ 
echo "You are not logged in!"; 
exit(); 
}else{ 
//include the header 
include ("../includes/header.php"); 
require_once ('../../mysql_connect.php'); 
echo ("<center>"); 
echo ("<div class='bookmarkMenu'><h1 style='text-decoration:underline;'>Q & A Database</h2><p>"); 
echo ("<p><a class='bookmarkAdd' href=add.php>Add Record</a> "); 
echo ("<a class='bookmarkSearch' href=searchform.php>Search Records</a></p><hr /></div><br />"); 
//Set the number of records to display per page 
$display = 5; 
//Check if the number of required pages has been determined 
if(isset($_GET['p'])&&is_numeric($_GET['p'])){//Already been determined 
    $pages = $_GET['p']; 
}else{//Need to determine 
    //Count the number of records; 
    $query = "SELECT COUNT(ID) FROM bookmark"; 
    $result = @mysql_query($query); 
    $row = @mysql_fetch_array($result, MYSQL_NUM); 
    $records = $row[0]; //get the number of records 
    //Calculate the number of pages ... 
    if($records > $display){//More than 1 page is needed 
     $pages = ceil($records/$display); 
    }else{ 
     $pages = 1; 
    } 
}// End of p IF. 

//Determine where in the database to start returning results ... 
if(isset($_GET['s'])&&is_numeric($_GET['s'])){ 
    $start = $_GET['s']; 
}else{ 
    $start = 0; 
} 

//Make the paginated query; 
$query = "SELECT * FROM answers LIMIT $start, $display"; 
$result = @mysql_query ($query); 

//Table header: 
echo "<table class='bookmarksTable' cellpadding=5 cellspacing=5 border=1><tr> 
<th>ID</th><th>Question</th><th>Answer</th><th>Comment</th><th>*</th><th>*</th></tr>"; 

//Fetch and print all the records... 
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    echo "<tr><td class='bookmarkInfo'>".$row['ID']."</td>"; 
    echo "<td class='bookmarkInfo'>".$row['Question']."</td>"; 
    echo "<td class='bookmarkInfo'>".$row['Answer']."</td>"; 
    echo "<td class='bookmarkInfo'>".$row['Comment']."</td>"; 
    echo "<td class='bookmarkInfo'><a href=deleteconfirm.php?id=".$row['ID'].">Delete</a></td>"; 
    echo "<td class='bookmarkInfo'><a href=updateform.php?id=".$row['ID'].">Update</a></td></tr>"; 
} // End of While statement 
echo "</table>"; 
mysql_free_result ($result); // Free up the resources.   
mysql_close(); // Close the database connection. 

//Make the links to other pages if necessary. 
if($pages>1){ 
    echo '<br/><table><tr>'; 
    //Determine what page the script is on: 
    $current_page = ($start/$display) + 1; 
    //If it is not the first page, make a Previous button: 
    if($current_page != 1){ 
     echo '<td><a href="index.php?s='. ($start - $display) . '&p=' . $pages. '"> Previous </a></td>'; 
    } 
    //Make all the numbered pages: 
    for($i = 1; $i <= $pages; $i++){ 
     if($i != $current_page){ // if not the current pages, generates links to that page 
      echo '<td><a href="index.php?s='. (($display*($i-1))). '&p=' . $pages .'"> ' . $i . ' </a></td>'; 
     }else{ // if current page, print the page number 
      echo '<td>'. $i. '</td>'; 
     } 
    } //End of FOR loop 
    //If it is not the last page, make a Next button: 
    if($current_page != $pages){ 
     echo '<td><a href="index.php?s=' .($start + $display). '&p='. $pages. '"> Next </a></td>'; 
    } 

    echo '</tr></table>'; //Close the table. 
}//End of pages links 
//include the footer 
include ("../includes/footer.php"); 
} 
?> 

Большое спасибо, -Rockmandew

+0

Это требует базовой отладки, поэтапных тестовых выходов, а не вопроса переполнения стека ... Отладка - это то, как даже опытные программисты исправляют сложный код, нет волшебного трюка. –

+0

просто интересно, почему вы рассчитываете из 'bookmarks', чтобы рассчитать логику вашей страницы, когда вы запрашиваете ответы« ответы »ниже? –

+0

Я ценю ответ, однако, я любительский кодер и не знаю, с чего начать. Я просто искал некоторые рекомендации относительно того, как подойти к проблеме. (В качестве примечания я получил этот код для задания и ему было поручено манипулировать им и т. Д. - после манипуляций он не функционировал должным образом - таким образом, поскольку я не писал всю страницу, я не знаю, что искать или что может быть причиной проблемы. – rockmandew

ответ

0

вы должны считать от answers таблицы и сделать страницу логики на основе этого запроса затем на answers таблицы в нижняя будет соответствовать

Смежные вопросы