|
|
|
| у меня такая проблема: я скачал скрипт Cheops но он немножко не так работает, может кто-то заметит где что ни так
когда я нажимаю на кнопку№2 - мне выдает вместо 2 страницы с новыми 10 позициями - какуюто фигню, где вместо новых позиций - сообщения денвера про индексы и такое. а "денвер" ругается на счет Notice: Undefined variable: i я указал это место ниже.
Плюс при этом выдаеться сообщение "Что не введены параметры поиска"
$pnumber = 10;
< << 2 3 [4] 5 6 >> >
$linknumber = 2;
$page = $_GET['page'];
if($page < 1) $page = 1;
if(empty($page)) $page = 1;
$begin = ($page - 1)*$pnumber;
$select_sql = "SELECT * FROM tablename
ORDER BY customerid DESC
LIMIT $begin, $pnumber";
$result = MYSQL_QUERY($select_sql);
if(!$result) exit(mysql_error());
$query = "SELECT COUNT(*) FROM tablename";
$ctg = mysql_query($query);
if(!$ctg) puterror
$total = mysql_result($ctg,0);
IF ($total == 0) {
PRINT "<CENTER><Pколичество автомобилей;</CENTER>";
}
ELSEIF ($total > 0)
{
PRINT "<CENTER><P>количество объявлений: $total<BR><BR>";
WHILE ($arr = mysql_fetch_array($result))
{
$customerid = $arr['customerid'];
$name = $arr['name'];
$datum = $arr['datum'];
$para = $arr['para'];
$firma = $arr['firma'];
echo $datum."<br>";
echo $name."<br>";
echo $para."<br>";
echo $firma."<br>";
$i++; // это не нравится "Денверу" }
}
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
if($page - $linknumber < 1) $str_begin = 1;
else $str_begin = $page - $linknumber;
if($page + $linknumber > $number) $str_end = $number;
else $str_end = $page + $linknumber;
echo "Страницы:";
echo " <a title='Первая страница ;' class=menuinfo href=index.php?page=1><<</a> ";
if($page > 1) echo " <a title=Первая страница class=menuinfo href=index.php?page=".($page - 1)."><</a> ";
for($i = $str_begin; $i<=$str_end; $i++)
{
if($page == $i)
echo " $i ";
else
echo " <a title='Открытьстраницу' class=menuinfo href=index.php?page=".$i.">$i</a> ";
}
if($page < $number) echo "первая страница' class=menuinfo href=index.php?page=".($page + 1).">></a> ";
echo " <a title='первая страница' class=menuinfo href=index.php?page=$number>>></a> ";
?>
|
| |
|
|
|
|
|
|
|
для: Vadim777
(21.09.2005 в 13:19)
| | Notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE
|
Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
?>
|
В качестве параметра, которой передать соответствующий уровень обработки ошибок.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985 | |
|
|
|
|
|
|
|
для: cheops
(22.09.2005 в 00:20)
| | понял, но почему после вызова поиска, первая страница появляется с 10 позициями, а когда клацаешь №2 выдает, что не веденны параметры поиска? | |
|
|
|
|
|
|
|
для: Vadim777
(22.09.2005 в 11:58)
| | Хм... а что за параметры поиска? Что-то такой фразы не видно в первом листинге? | |
|
|
|
|
|
|
|
для: cheops
(22.09.2005 в 14:54)
| | логично!!! моя ошибка! вместо $tablename у меня стоит ".$_POST['searchtype']." т.е. человек выбирает рубрику/таблицу, т.е. выбираю рубрику из выпадающего окна, и у меня появляется первая страница, клацаю по №2 - появляется: "введите параметры поиска."
плюс в моем скрипте была необязательная позиция "para"
code]
if(!empty($_POST['para']))
$sql.=" WHERE para<= '".$_POST['para']."'";
[/code]
но я не знаю как ее разместить в скрипте с
$select_sql = "SELECT * FROM ".$_POST['searchtype']."
ORDER BY customerid DESC
LIMIT $begin, $pnumber";
$result = MYSQL_QUERY($select_sql);
if(!$result) exit(mysql_error());
$query = "SELECT COUNT(*) FROM ".$_POST['searchtype']." ";
|
потому что после LIMIT $begin, $pnumber"; вроде запрещенно ставить конструкции с where.
???? Заранее благодарен как за оказанную ,так и будущую помощь! | |
|
|
|
|
|
|
|
для: Vadim777
(22.09.2005 в 15:26)
| |
<?
if(!empty($_POST['para']))
$tmp=" WHERE para<= '".$_POST['para']."'";
$select_sql = "SELECT * FROM ".$_POST['searchtype']."
$tmp ORDER BY customerid DESC
LIMIT $begin, $pnumber";
?>
|
| |
|
|
|
|
|
|
|
для: Loki
(22.09.2005 в 17:23)
| | Спасибо за помощь!
Я вставил в скрипт, но странно: выводится результат без поправки на
WHERE para<= '".$_POST['para']."'
|
т.е. что есть данные в графе, что нет - выдаются все данные из таблицы. Может это обусловленно SELECT * FROM, может, гдето указать, что if para применима, тогда нет SELECT * а когда пара не используется, тогда SELECT * т.е. все данные из таблицы.???
И как быть с переходом на вторую страницу | |
|
|
|
|
|
|
|
для: Vadim777
(22.09.2005 в 18:05)
| | Проверьте, передается ли у вас para. И надо придумать как ее передавать на вторую страницу: сделать это можно лубым из способов (post, get, session, cookie). Наверное, самое удобное - get или session | |
|
|
|
|
|
|
|
для: Loki
(22.09.2005 в 19:37)
| | Я наверно неправильно объяснил, у меня вообще выдаеться результат. Без поправки на "para", возможно это связанно с тем, что в скрипте есть Select * from, по идее * выдает весь результат, что имеется в таблице( если я прав?) у меня проблема в том, что выводится первая страница с 10 результатами, а при клацании второй появляется надпись, что не введены параметры запроса. Я закомментировал это место скрипта, где требуется выбрать рубрику, и при клацании на вторую страницу появляется надпись:
You have an error in your SQL syntax near 'ORDER BY customerid DESC LIMIT 10, 10' at line 2 | |
|
|
|
|
|
|
|
для: Vadim777
(23.09.2005 в 12:05)
| | Вам нужно $_POST['searchtype'] передавать вместе с ссылкой на другую страницу. А в начале страницы проверять передан ли параметр $_POST['searchtype'], если нет, то использовать параметр $_GET['searchtype'].
<?php
if(isset($_POST['searchtype'])) $_POST['searchtype'] = $_GET['searchtype'];
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(23.09.2005 в 15:01)
| | я видимо, что то напутал. Потому что как нет второй страницы, так и нет. Я ввел последний код в начала скрипта, разницы нет. | |
|
|
|
|
|
|
|
для: Vadim777
(23.09.2005 в 15:31)
| | А в вот эти ссылки добавили параметр searchtype = $_POST['searchtype']?
echo " <a title='Первая страница ;' class=menuinfo href=index.php?page=1><<</a> ";
if($page > 1) echo " <a title=Первая страница class=menuinfo href=index.php?page=".($page - 1)."><</a> ";
for($i = $str_begin; $i<=$str_end; $i++)
{
if($page == $i)
echo " $i ";
else
echo " <a title='Открытьстраницу' class=menuinfo href=index.php?page=".$i.">$i</a> ";
}
if($page < $number) echo "первая страница' class=menuinfo href=index.php?page=".($page + 1).">></a> ";
echo " <a title='первая страница' class=menuinfo href=index.php?page=$number>>></a> ";
|
| |
|
|
|
|
|
|
|
для: cheops
(23.09.2005 в 15:45)
| | я слишком темный, (пока:)), все, что я сделал, это подставил названия своей страницу result.php, вместо index.php.
Разжуйте плиз! | |
|
|
|
|
|
|
|
для: Vadim777
(23.09.2005 в 16:33)
| | вторая страница ничего не знает о данных переданных первой странице, поэтому эти данные надо передать и второй странице тоже. Сделать это можно через строку адреса, как и рекомендует cheops:
имя файла.php?имя переменной=значение переменной
и ко всем ссылкам ведущим на вторую страницу надо подставить эту конструкцию. | |
|
|
|
|
|
|
|
для: Loki
(23.09.2005 в 16:53)
| | понял, у меня сейчас выдает:
You have an error in your SQL syntax near 'ORDER BY customerid DESC LIMIT 0, 10' at line 2
$select_sql = "SELECT * FROM ".$_POST['searchtype']."
$tmp ORDER BY customerid DESC
LIMIT $begin, $pnumber";
|
| |
|
|
|
|
|
|
|
для: Vadim777
(23.09.2005 в 18:13)
| |
if(isset($_POST['searchtype'])) $_POST['searchtype'] = $_GET['searchtype'];
|
Если это место закомментировать - выводится хотябы первая страница??? | |
|
|
|