PHP - нумерация страниц и место таблицы - PullRequest
1 голос
/ 22 февраля 2012

Я попробовал свои силы на некоторой нумерации страниц, но это дает мне очень неожиданные результаты ...

Во-первых, на первой странице нумерации страниц она переопределяет CSS и выравнивает все элементы div по правой стороне страницы ... когда вы нажимаете «Далее», чтобы просмотреть следующие три результата и так что на странице восходит в соответствии с CSS говорит!

Вторая проблема заключается в том, что таблица с результатами не работает. Самый первый результат на каждой странице нумерации страниц находится в таблице, следующие два результата (три результата на страницу) отображаются на странице, но ниже, а не в таблице!

Код довольно длинный, но мы идем:

<?php
session_start();
if ( !isset($_SESSION['username']))
{
header("Location:index.php");
exit();
}

//connect to database

require "dbconn.php";


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





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


$results = mysql_query($query)
            or die (mysql_error());

$record_count = mysql_num_rows($results);
if (!$start)
   $start = 0;

$get = mysql_query("SELECT * FROM booktable LIMIT $start, $per_page");
?>
<?php
if (isset($_GET['showerror']))
$errorcode = $_GET['showerror'];
else
$errorcode = 0;
?>

Тогда я вырежу все ненужные html

<div id="mid">

<?php
echo "<table border='2px'>";
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 href='products.php?start=$x'>$i</a>";
 else
    echo "<a href='products.php?start=$x'><b>$i</b></a>";
 $i++;
}

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



<?php echo $record_count; ?>

Так выглядит страница (изображение 1) (проблема с рамкой таблицы)

image1

Как я уже говорил, у меня также возникает проблема, когда список отображается впервые, а страница выглядит примерно так: (image2)

image2

Вы можете видеть, как они отличаются!

Я надеюсь, что я понял!

1 Ответ

3 голосов
/ 22 февраля 2012

Для начала, у вас есть тег </table> в вашей петле while. Измени это и посмотри, все ли встало на свои места.

...