Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблемы с пагинацией(((((
 
 автор: kbn   (06.12.2014 в 14:17)   письмо автору
 
 

Прописываю пагинацию. Почему вместо двух таблиц выводится одна последняя? Кто найдёт ошибку, тому респект и уважуха!!!)))

<?php

// Переменная хранит число сообщений выводимых на странице
$num = 2;
// Извлекаем из URL текущую страницу
@$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM avtomobil");
$posts = mysql_result($result, 0);
// Находим общее число страниц
$total = intval(($posts - 1) / $num) + 1;
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная к какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
$result = mysql_query("SELECT * FROM avtomobil LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
while ( $myrow[] = mysql_fetch_array($result))

?>

<?php

echo '<div id="content">';

do {

printf ("

<table class='table_content' border='1' bordercolor='DFDFDF' cellpadding='0' cellspacing='0'>

<tr>
<td rowspan='2' align='center' width='124' height='45'>%s</td>
<td colspan='2' align='center' width='200' height='45'><p class='table_content_3'>Марка:</p><p class='table_content_2a'>%s</p></td>
<td colspan='2' align='center' width='200' height='45'><p class='table_content_3'>Модель:</p><p class='table_content_2a'>%s</p></td>
<td align='center' width='100' height='45'><p class='table_content_3'>Год выпуска:</p><p class='table_content_2a'>%s</p></td>
<td rowspan='2' align='center' width='124' height='45'><p class='table_content_3'>Цена:</p><br><p class='table_content_5'>%s</p></td>
</tr>

<tr>
<td align='center' width='100' height='45'><p class='table_content_3'>Тип<br>кузова:</p><p class='table_content_4'>%s</p></td>
<td align='center' width='100' height='45'><p class='table_content_3'>Тип<br>двигателя:</p><p class='table_content_4'>%s</p></td>
<td align='center' width='100' height='45'><p class='table_content_3'>Объём<br>двигателя л.:</p><p class='table_content_4'>%s</p></td>
<td align='center' width='100' height='45'><p class='table_content_3'>Мощность<br>двигателя л.с.:</p><p class='table_content_4'>%s</p></td>
<td align='center' width='100' height='45'><p class='table_content_3'>Коробка<br>передач:</p><p class='table_content_4'>%s</p></td>
</tr>

<tr>
<td align='center' width='124' height='28'>%s</td>
<td colspan='4' align='center' width='400' height='28'>№-m%s</td>
<td colspan='3' class='table_content_2' align='center' width='224' height='28'>Подробнее</td>
</tr>

</table>",

$myrow["foto"],
$myrow["marka"],
$myrow["model"],
$myrow["god_vipuska"],
$myrow["cena"],

$myrow["kuzov"],
$myrow["dvigatel"],
$myrow["objom"],
$myrow["ls"],
$myrow["korobka"],

$myrow["data"],
$myrow["id"]

);

}

while ($myrow = mysql_fetch_array($result));

echo '</div>'

?>

  Ответить  
 
 автор: confirm   (07.12.2014 в 10:47)   письмо автору
 
   для: kbn   (06.12.2014 в 14:17)
 

Код в сообщении нужно оформлять, иначе ответа можете и не получить.

while ( $myrow[] = mysql_fetch_array($result)) - это что такое и зачем?

do { .... } while ($myrow = mysql_fetch_array($result)); - а после первой выборки (while) чего здесь ожидаете?

  Ответить  
 
 автор: kbn   (08.12.2014 в 12:07)   письмо автору
 
   для: confirm   (07.12.2014 в 10:47)
 

Эта страница у меня подключена через include на главную страницу. Так же подключены connect.php
<?php

$db = mysql_connect ("localhost","Dima","dima");
mysql_select_db("k2",$db);
mysql_query('SET names "utf8"');
?>

и файл с выборкой из базы данных
<?php

$result = mysql_query("SELECT foto, marka, model, god_vipuska, cena, kuzov, dvigatel, objom, ls, korobka, id, DATE_FORMAT(data, '%d-%m-%Y') AS data FROM avtomobil WHERE category='avto' ORDER BY id DESC", $db);
$myrow = mysql_fetch_array($result);

?>

  Ответить  
 
 автор: confirm   (08.12.2014 в 12:29)   письмо автору
 
   для: kbn   (08.12.2014 в 12:07)
 

Вверху поля ввода написано Используйте тэги для выделения текста:

Выставляя код, обрамляйте его тегом CODE, иначе ваш код не форматирован и без подсветки, читать его и разбираться в нем трудно.

Я вас не спрашиваю о том, что и где подключается, я вижу в вашем коде следующее:

<?
//.....
// Выбираем $num сообщений начиная с номера $start 
$result mysql_query("SELECT * FROM avtomobil LIMIT $start$num"); 
// В цикле переносим результаты запроса в массив $postrow 
//это вы выбрали записи из ресурса $result - после чего УКАЗАТЕЛЬ РЕСУРСА находится на позиции count($result)+1
while ( $myrow[] = mysql_fetch_array($result))  
//а далее идет невообразимое
//.....
do {
    
//вывод
}
while (
$myrow mysql_fetch_array($result)); //что вы ЗДЕСЬ можете получить, кроме как NULL?


Если вы пытаетесь пройтись повторно по ресурсу, то необходимо установить указатель в начало. Но какой смысл от повторного прохода по ресурсу.

Если do...while, это проход по ресурсу, который получен другим запросом (что сейчас показан), и подключается, то это надо было сразу показывать - вы думаете кто-то догадается что вы там делаете?

1) do...while - совсем не нужен.
2) while ( $myrow[] = mysql_fetch_array($result)) - тоже не нужно, если два этих запроса можно объединить, и вывести одним циклом, и не do...while, а while. Тем более совсем не понятно что там в $myrow, что за структура его, и каким образом вы пытаетесь его связать в цикле с данными другого ресурса.
3) исходя из 1 и 2, опишите эти таблицы, и что хотите сделать, чтобы было на чем основывать предложение.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования