|
|
|
| Прописываю пагинацию. Почему вместо двух таблиц выводится одна последняя? Кто найдёт ошибку, тому респект и уважуха!!!)))
<?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>'
?> | |
|
|
|
|
|
|
|
для: kbn
(06.12.2014 в 14:17)
| | Код в сообщении нужно оформлять, иначе ответа можете и не получить.
while ( $myrow[] = mysql_fetch_array($result)) - это что такое и зачем?
do { .... } while ($myrow = mysql_fetch_array($result)); - а после первой выборки (while) чего здесь ожидаете? | |
|
|
|
|
|
|
|
для: 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);
?> | |
|
|
|
|
|
|
|
для: 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, опишите эти таблицы, и что хотите сделать, чтобы было на чем основывать предложение. | |
|
|
|