Резултати от ДБ и странициране

  • Автор Автор Ozka
  • Начална дата Начална дата

Ozka

Registered
Здравейте,
искам да изкарам резултатите от ДБ, така че да изглеждат по следния начин.
например лимита за една страница да е 16.

Код:
<table>
<tr>
<td>Резултат 1</td><td>Резултат 2</td><td>Резултат 3</td><td>Резултат 4</td>
</tr>
<tr>
<td>Резултат 5</td><td>Резултат 6</td><td>Резултат 7</td><td>Резултат 8</td>
</tr>
<tr>
<td>Резултат 9</td><td>Резултат 10</td><td>Резултат 11</td><td>Резултат 12</td>
</tr>
<tr>
<td>Резултат 13</td><td>Резултат 14</td><td>Резултат 15</td><td>Резултат 16</td>
</tr>
</table>

...
Благодаря предварително
 
Нещо неможе да разбера какво точно искаш са направиш я обесни по подробно.
 
Това успях да измисля. Кажи дали работи, защото аз не съм го пробвал! :?:

PHP:
<?php
if(isset($_GET['page']))
    $page = (int)$_GET['page'];
else
    $page = 1;
$limit = 16;  // брой резултати на страница
$first = ($page-1)*$limit ; // първия елемент за текущата страница

/*
 * Това е само примерна заявка, където важното ти е накрая - LIMIT (а и ORDER BY, разбира се :) )
 */
$query = mysql_query("SELECT * FROM `table` WHERE `active` = '1' ORDER BY `id` LIMIT $first, $limit") or die(mysql_error());

$counter = 0; // това ще ни брои показаните до момента елементи
echo '<table>';
while($result = mysql_fetch_assoc($query)) {
    if($counter%4 == 0)
        echo '<tr>';
    echo '<td>'.$result['name'].'</td>';
    if($counter%4 == 3)
        echo '</tr>';
    $counter++;
}
echo '</table>';

// Извеждане на списък със страници
/*
 * Тук също пиши името на таблицата в БД
 */
$rows = mysql_query("SELECT * FROM `table`") or die(mysql_error()); 
$rows= mysql_num_rows($rows); // Броя на записите в БД
$number_of_pages = ceil($rows/$limit); // Броя на страниците 
echo '<center>';
if($page != 1)
    echo ' <a href="http://web-tourist.net/index.php?page=1">[Първа страница]</a> ';
for($i = 1; $i <= $number_of_pages; $i++) {
    if($i == $page)
        echo ' <strong>[''.$i.']</strong> ';
    else
        echo ' <a href="http://web-tourist.net/index.php?page='.$i.'">[''.$i.']</a> ';
}
if($page != $number_of_pages)
    echo ' <a href="http://web-tourist.net/index.php?page='.$number_of_pages.'">[Последна страница]</a> ';
echo '</center>';
?>
Където ти ще си оправиш заявката и имената на ключовете в масива, в зависимост от имената на таблицата и колоните ти в БД, както и ще сложиш твоя URL адрес, вместо web-tourist.net. :wink:
 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '` LIMIT 0, 16' at line 1
 
Изпуснал съм една кавичка. Поправих я. Трябва id да бъде заградено и от двете страни с `.
 
Да сега се оправи и изкарва резултатите точно както искам аз.
Само остана един проблем със страницирането.

Код:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\VertrigoServ\www\test.php on line 32

ред 32
$rows= mysql_num_rows($redove); // Броя на записите в БД
 
Бях объркал името на променливата. Сега вече трябва да е ОК. :wink:
 

Back
Горе