Использование выпадающего меню для заказа списка, взятого из базы данных одновременно с разбиением на страницы - PullRequest
0 голосов
/ 23 февраля 2012

Я надеюсь, что заголовок имеет смысл .... По сути, я создал PHP-скрипт для получения данных из базы данных и их отображения, затем я написал некоторый код, чтобы использовать выпадающее меню для упорядочивания этих данных.Это все работало хорошо, пока я не попытался использовать некоторые нумерации страниц.Я могу сделать работу разбивки на страницы, и я могу сделать работу заказа, но не в то же время!На данный момент код, который я имею, позволит мне упорядочить список и почти разбить его на страницы.Есть 40 результатов, и я хочу отображать 10 одновременно.Когда код заказа не используется, я могу прекрасно разбить его на страницы, но когда я пытаюсь объединить два бита кода, он покажет только первые 10 результатов и не даст мне возможность перейти на следующую страницу, чтобы увидеть остальные!(Пожалуйста, имейте в виду, что я только начал изучать 5 дней назад, поэтому я все еще с этим справляюсь!

Код:

if (! isset ($ _ GET ['start']))) {

$ _ GET ['start'] = 0;}

$ per_page = 10; $ start = $ _GET ['start'];

if (!$start)
   $start = 0;



$sort = @$_POST['order'];  
if (!empty($sort)) {   
$get = mysql_query("SELECT bookname, bookauthor, bookpub, bookisbn
            FROM booktable
            ORDER BY ".mysql_real_escape_string($_POST['order'])." ASC
            LIMIT $start, $per_page");
}
 else { 
$get = mysql_query("SELECT bookname, bookauthor, bookpub, bookisbn 
                FROM booktable 
                ORDER BY bookname ASC
                LIMIT $start, $per_page"); 
}

$record_count = mysql_num_rows($get);


?>
<?php
if (isset($_GET['showerror']))
$errorcode = $_GET['showerror'];
else
$errorcode = 0;
?>

не будет включать в себя весь мусор HTML и меню заказа!

<div id="mid">

<?php
echo "<table>";
echo "<tr>";
echo "<th>";

echo "</th>";
echo "<th>";
echo "Book Title";
echo "</th>";
echo "<th>";
echo "Book Author";
echo "</th>";
echo "<th>";
echo "Book Publisher";
echo "</th>";
echo "<th>";
echo "Book ISBN";
echo "</th>";
echo "<th>";

echo "</th>";
echo "</tr>";
while ($row = mysql_fetch_assoc($get))
{
 // get data
 $bookname = $row['bookname'];
 $bookauthor = $row['bookauthor'];
 $bookpub = $row['bookpub'];
 $bookisbn = $row['bookisbn'];



    echo "<tr>";
    echo "<td>";
    echo "<a href='addtolist.php?bookname=".$bookname."&bookauthor=".$bookauthor."&bookpub=".$bookpub."&bookisbn=".$bookisbn."'>Add to basket</a>";

    echo "</td>";

    echo "<td>";
    echo $bookname;
    echo "</td>";

    echo "<td>";
    echo $bookauthor;
    echo "</td>";

    echo "<td>";
    echo $bookpub;
    echo "</td>";

    echo "<td>";
    echo $bookisbn;
    echo "</td>";

    echo "</tr>";


}

echo "</table>";

$prev = $start - $per_page;
$next = $start + $per_page;

if (!($start<=0))
       echo "<a href='products.php?start=$prev'>Prev</a> ";

       //set variable for first page number
$i=1;

//show page numbers
for ($x = 0; $x < $record_count; $x = $x + $per_page)
{
 if ($start != $x)
    echo "<a class='pagin' href='products.php?start=$x'> $i </a>";
 else
    echo "<a class='pagin' href='products.php?start=$x'><b> $i </b></a>";
 $i++;
}

//show next button
if (!($start >= $record_count - $per_page))
       echo "<a class='pagin' href='products.php?start=$next'> Next </a>";
?>

Большое вам спасибо за чтение!

1 Ответ

1 голос
/ 23 февраля 2012

Самый простой способ - просто измените $sort = @$_POST['order']; на $sort = @$_REQUEST['order']; и добавьте к своим ссылкам нумерацию страниц &order=$order

...