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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Постраничная навигация как в phpMyAdmin

Сообщения:  [1-10] 

 
 автор: Gandzas   (16.11.2006 в 03:29)   письмо автору
 
   для: Gandzas   (15.11.2006 в 22:23)
 

Спасибо форуму и администрации за то, что ВЫ есть :)

Trianon!
Вам отдельное ОГРОМЕННОЕ спасибо за неоценимую помощь!!!
Я, наконец-то, исправила все ошибки и во всем разобралась.
По крайней мере, мне так кажется :))

   
 
 автор: Gandzas   (15.11.2006 в 22:23)   письмо автору
 
   для: Gandzas   (15.11.2006 в 22:15)
 

В аттаче файл rent.php

   
 
 автор: Gandzas   (15.11.2006 в 22:18)   письмо автору
 
   для: Trianon   (15.11.2006 в 22:16)
 

:) "Это" - это приведенный файл. Все вышеперечисленное находится в одном файле с названием rent.php

   
 
 автор: Trianon   (15.11.2006 в 22:16)   письмо автору
 
   для: Gandzas   (15.11.2006 в 22:10)
 

>А это и есть файл rent.php
Ок. До завтра буду угадывать, что же Вы имеете в виду под словом "это".

>Этот файл вызывается в index.php при выполнении условия.
Этот момент я как бы понял. Еще из исходника.

   
 
 автор: Gandzas   (15.11.2006 в 22:15)   письмо автору
 
   для: Trianon   (15.11.2006 в 21:51)
 

Поменяла.

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/infotmi/public_html/baza/rent.php on line 149

149 строка:

$count=mysql_num_rows($res);


0...-1 - это выводит строка:

 . " $start...$last_row ";


Error: 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 ' 10' at line 4

А 4 строка - это вообще описание таблицы.

        <table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>


При клике на "следующая страница":
10...9

   
 
 автор: Gandzas   (15.11.2006 в 22:10)   письмо автору
 
   для: Trianon   (15.11.2006 в 21:43)
 

А это и есть файл rent.php
Этот файл вызывается в index.php при выполнении условия.

   
 
 автор: Trianon   (15.11.2006 в 21:51)   письмо автору
 
   для: Gandzas   (15.11.2006 в 21:01)
 

Вместо

$res=mysql_query("SELECT * FROM baza where  
oper='rent'  
AND tip LIKE '".$_POST["tip"]."' AND region LIKE '".$_POST["region"]."'  
AND data LIKE '".$_POST["data"]."' ORDER BY tip, kk, region, cena");  
$cnt_obj=mysql_num_rows($res);//считаем количество записей, соответствующих условию
$num=10;//по сколько записей выводим  
$page=1;//текущая страница, 1- по умолчанию  
$total = intval(($cnt_obj- 1) / $num) + 1; //подсчитываем количество страниц  
$page = intval($page); //начало сообщений для текущей страницы  
$start = $page * $num - $num;//считаем с какого номера выводить сообщения  
echo "По Вашему запросу найдено ".$total." страниц (".$cnt_obj." объектов)<br>";  

$res=mysql_query("SELECT * FROM baza where oper='rent'  
AND tip LIKE '".$_POST["tip"]."' AND region LIKE '".$_POST["region"]."'  
AND data LIKE '".$_POST["data"]."'  
ORDER BY tip, kk, region, cena LIMIT $start, $num"); 


напрашивается

$res=mysql_query("SELECT COUNT(*) FROM baza where  
oper='rent'  
AND tip LIKE '".$_POST["tip"]."' AND region LIKE '".$_POST["region"]."'  
AND data LIKE '".$_POST["data"]."' ORDER BY tip, kk, region, cena");  
$total=mysql_result($res,0);//считаем количество записей, соответствующих условию
$num=10;//по сколько записей выводим  
echo "По Вашему запросу найдено $total объектов<br>";  

$res=mysql_query("SELECT * FROM baza where oper='rent'  
AND tip LIKE '".$_POST["tip"]."' AND region LIKE '".$_POST["region"]."'  
AND data LIKE '".$_POST["data"]."'  
ORDER BY tip, kk, region, cena LIMIT $start, $num"); 




А фрагмент

$res=mysql_query("SELECT * FROM baza where oper='rent'  
AND tip LIKE '".$_POST["tip"]."'  
AND region LIKE '".$_POST["region"]."'  
AND data LIKE '".$_POST["data"]."'  
ORDER BY tip, kk, region, cena LIMIT $start, $num"); 

нужно вообще удалить. Вы же уже выполнили этот запрос.

   
 
 автор: Trianon   (15.11.2006 в 21:43)   письмо автору
 
   для: Gandzas   (15.11.2006 в 21:01)
 

Как-то не очень понятно, который из них rent.php ?

   
 
 автор: Gandzas   (15.11.2006 в 21:01)   письмо автору
 
   для: Gandzas   (15.11.2006 в 20:49)
 

Уточнение:
До формы "шапка",
после формы:
</select>
и было </form> - это я убрала.
(Это как раз ответ на Ваш вопрос по поводу закрытого фильтра.)
Начало таблицы с описанием полей:

<table><tr><td>Дата</td>......</tr>

Потом навигация и вывод данных, после этого: </table>. и "низ" страницы
Вот, собственно, и весь файл

   
 
 автор: Gandzas   (15.11.2006 в 20:49)   письмо автору
 
 

Продолжение темы
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=27514

Форма фильтра:

<?
require("globals.php");
$link=mysql_connect($sqlhost,$sqluser,$sqlpass);
mysql_select_db($dbname,$link); 
?>
<form name="form" method="post" action=index.php> 
<input type=hidden name=viborr> 
<select name=tip  onChange='this.form.submit()'>  
<option value='%' selected="selected">Не важно</option> 
<?
$res
=mysql_query("SELECT DISTINCT tip FROM baza");
  if(
$res)
{
while(
$baza mysql_fetch_array($res))
    {
    echo (
"<option value='".$baza['tip']."' onClick='this.form.submit()'");
    if (
$HTTP_POST_VARS['tip']=="$baza[tip]
          echo(
"selected");
          echo(
">".$baza['tip']."<br></option>");
    }
}
else
{
  echo 
"<p><b>Error: ".mysql_error()."<br>";
  exit();
}
?>
</select>  
<select name=region  onChange='this.form.submit()'>  
<option value="%" selected="selected">Не важно</option> 
<?
$res
=mysql_query("SELECT DISTINCT region FROM baza");
 if(
$res)
{
  while(
$baza mysql_fetch_array($res))
    {
     echo (
"<option value='".$baza['region']."' onClick='this.form.submit()'");
    if (
$HTTP_POST_VARS['region']=="$baza[region]
         echo(
"selected"); 
         echo(
">".$baza['region']."<br></option>");
    }
}
else
{
  echo 
"<p><b>Error: ".mysql_error()."<br>";
  exit();
}
?>
</select>  
<select name=data  onChange='this.form.submit()'>  
<option value="%" selected="selected">Не важно</option> 
<?
$res
=mysql_query("SELECT DISTINCT data FROM baza");
if(
$res)
{
while(
$baza mysql_fetch_array($res))
    {
    echo (
"<option value='".$baza['data']."' onClick='this.form.submit()'");
    if (
$HTTP_POST_VARS['data']=="$baza[data]
         echo(
"selected");
         echo(
">".$baza['data']."<br></option>");
    }
}
else
{
  echo 
"<p><b>Error: ".mysql_error()."<br>";
  exit();
}
?>


Часть файла, которя касается навигации:


<?php
require("globals.php");
$link=mysql_connect($sqlhost,$sqluser,$sqlpass);
mysql_select_db($dbname,$link); 
$res=mysql_query("SELECT * FROM baza where 
oper='rent' 
AND tip LIKE '"
.$_POST["tip"]."' AND region LIKE '".$_POST["region"]."' 
AND data LIKE '"
.$_POST["data"]."' ORDER BY tip, kk, region, cena"); 
$cnt_obj=mysql_num_rows($res);//считаем количество записей, соответствующих условию 
$num=10;//по сколько записей выводим 
$page=1;//текущая страница, 1- по умолчанию 
$total intval(($cnt_obj1) / $num) + 1//подсчитываем количество страниц 
$page intval($page); //начало сообщений для текущей страницы 
$start $page $num $num;//считаем с какого номера выводить сообщения 
echo "По Вашему запросу найдено ".$total." страниц (".$cnt_obj." объектов)<br>"

$res=mysql_query("SELECT * FROM baza where oper='rent' 
AND tip LIKE '"
.$_POST["tip"]."' AND region LIKE '".$_POST["region"]."' 
AND data LIKE '"
.$_POST["data"]."' 
ORDER BY tip, kk, region, cena LIMIT 
$start$num");
$count=mysql_num_rows($res);

if(isset(
$_POST['from']) && is_array($_POST['from'])) 
     foreach(
$_POST['from'] as $start => $button
          
$start intval($start); 
else 
$start 0

$nav_first 0
$nav_prev max(0$start-$num); 
$nav_next $start+$num >= $total $start $start+$num
$nav_last intval($total/$num)*$num
$nav_last -= ($nav_last == $total) * $num
$last_row $start $count-1

echo 
"<input type=submit name=from[$nav_first] value='<<'>" // перейти на первую страницу 
   
"<input type=submit name=from[$nav_prev] value='<'>"  // перейти на предыдущую 
   
"<input type=submit name=from[$nav_next] value='>' >" // перейти на следующую 
   
"<input type=submit name=from[$nav_last] value='>>'></form>" // перейти на последнюю 
   
$start...$last_row ";


$res=mysql_query("SELECT * FROM baza where oper='rent' 
AND tip LIKE '"
.$_POST["tip"]."' 
AND region LIKE '"
.$_POST["region"]."' 
AND data LIKE '"
.$_POST["data"]."' 
ORDER BY tip, kk, region, cena LIMIT 
$start$num");

if(
$res)
{
 while(
$baza mysql_fetch_array($res))

    {
    echo 
"<tr><td><span class='gennote'>".$baza['data']."</td>
<td><span class='gennote'>"
.$baza['tip']."</td>
<td><span class='gennote'>"
.$baza['kk']."</td>
<td><span class='gennote'>"
.$baza['cena']."</td>
<td><span class='gennote'>"
.$baza['region']."</td>
<td><span class='gennote'>"
.$baza['street']."</td>
<td><span class='gennote'>"
.$baza['jil']."</td>
<td><span class='gennote'>"
.$baza['kyx']."</td>
<td><span class='gennote'>"
.$baza['et']."</td>
<td><span class='gennote'>"
.$baza['etj']."</td>
<td><span class='gennote'>"
.$baza['tel']."</td>
<td><span class='gennote'>"
.$baza['tv']."</td>
<td><span class='gennote'>"
.$baza['xol']."</td>
<td><span class='gennote'>"
.$baza['meb']."</td>
<td><span class='gennote'>"
.$baza['info']."</td></tr>";
    }
}
else
{
  echo 
"<p><b>Error: ".mysql_error()."</b></p>";
  exit();
}
?>


Если нужно, могу прикрепить весь файл.

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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