<?php
$searchtype=$HTTP_POST_VARS['searchtype'];
$searchterm=$HTTP_POST_VARS['searchterm'];
$searchterm=trim($searchterm);
/*if (!$searchtype || !$searchterm)
{
echo 'Вы не ввели параметры поиска. Пожалуйста,
вернитесь к поиску и повторите попытку.';
}*/
$searchtype = addslashes($searchtype);
$searchterm = addslashes($searchterm);
@ $db=mysql_pconnect('localhost', 'root','');
if (!$db)
{
echo 'Ошибка: Не удалось установить соединение с базой данных. Пожалуйста,
повторите попытку позже';
}
mysql_select_db('shop');
$from_where="select * from shopp where ".$searchtype." like '%".$searchterm."%'";
// и получим общее количество записей
$res=mysql_query("select count(shopID)".$from_where);
$row=mysql_fetch_row($res);
$total_rows=$row[0];
$per_page=5;
if (isset($_GET['page'])) $CUR_PAGE=($_GET['page']); else $CUR_PAGE=1;
$start=abs(($CUR_PAGE-1)*$per_page);
//выполняем запрос и получаем данные для вывода
$query="SELECT * $from_where ORDER BY date DESC LIMIT $start,$per_page";
$res=mysql_query($query);
while ($row=mysql_fetch_array($res)) $DATA[++$start]=$row;
//определяем адрес страницы без переменной page
$uri=strtok($_SERVER['REQUEST_URI'],"?")."?";
if (count($_GET)) {
foreach ($_GET as $k => $v) {
if ($k != "page") $uri.=urlencode($k)."=".urlencode($v)."&";
}
}
//узнаем общее количество страниц и заполняем массив со ссылками
$num_pages=ceil($total_rows/$per_page);
for($i=1;$i<=$num_pages;$i++) $PAGES[$i]=$uri.'page='.$i;
//а дальше выводим в шаблоне данные и навигацию:
?>
Найдено сообщений: <b><?=$total_rows?></b><br><br>
<? foreach ($DATA as $i => $row): ?>
<?=$i?>. <a href="?shopID=<?=$row['shopID']?>"><?=$row['shop']?></a><br>
<? endforeach ?>
<br>
Страницы:
<? foreach ($PAGES as $i => $link): ?>
<? if ($i == $CUR_PAGE): ?>
<b><?=$i?></b>
<? else: ?>
<a href="<?=$link?>"><?=$i?></a>
<? endif ?>
<? endforeach
?>
Моя БД: shop
таблица : shopp (shopID, shop, category,street,phone)
Выдаёт ошибки:
mysql_fetch_row(): supplied argument is not a valid MySQL result resource
Undefined variable: per_page
Заранее спасибо
Спустя 1 минута, 31 секунда (1.10.2010 - 09:51) ApuktaChehov написал(а):
mysql_fetch_row(): - работает с результатом который возвращается запросом к БД.
Смотрите что происходит с вашими запросам и все сразу станет ясно.
Смотрите что происходит с вашими запросам и все сразу станет ясно.
Спустя 6 минут, 50 секунд (1.10.2010 - 09:57) Michael написал(а):
Сейчас я отредактировал ваше сообщение, а в будущем сами старайтесь заключать код в соответствующие теги.
По вопросу: запросы ошибочные.
например тут
с учетом
будет получаться что то типа:
что неверно.
По вопросу: запросы ошибочные.
например тут
$query="SELECT * $from_where ORDER BY date DESC LIMIT $start,$per_page";
с учетом
$from_where="select * from shopp where ".$searchtype." like '%".$searchterm."%'";
будет получаться что то типа:
SELECT * SELECT *
что неверно.
Цитата |
$HTTP_POST_VARS |
у вас что старый php?
Спустя 5 минут, 23 секунды (1.10.2010 - 10:03) olgan написал(а):
у меня php 4.3.0)
Спустя 1 минута, 32 секунды (1.10.2010 - 10:04) Michael написал(а):
$_POST должен уже быть.
Спустя 3 минуты, 31 секунда (1.10.2010 - 10:08) olgan написал(а):
мне надо сделать новый запрос типа
$from_where="select * from shopp where ".$searchtype." like '%".$searchterm."%' ORDER BY date DESC LIMIT $start,$per_page";
или через union объединить их?
или я что-то не так поняла?
$from_where="select * from shopp where ".$searchtype." like '%".$searchterm."%' ORDER BY date DESC LIMIT $start,$per_page";
или через union объединить их?
или я что-то не так поняла?
Спустя 4 минуты, 10 секунд (1.10.2010 - 10:12) Michael написал(а):
Сама логика тут страдает.
в $from_where должны по идее "собираться" FROM и WHERE части запроса. А не как у вас - вместе с SELECT.
А потом уже вот так:
пристыковываться.
$from_where="select * from shopp where ".$searchtype." like '%".$searchterm."%'";
в $from_where должны по идее "собираться" FROM и WHERE части запроса. А не как у вас - вместе с SELECT.
А потом уже вот так:
$query="SELECT * $from_where ORDER BY date DESC LIMIT $start,$per_page";
пристыковываться.
Спустя 7 минут, 10 секунд (1.10.2010 - 10:19) olgan написал(а):
$from_where="from shopp where ".$searchtype." like '%".$searchterm."%'";
а потом
$query="SELECT * $from_where ORDER BY date DESC LIMIT $start,$per_page";
Наверное так)
а потом
$query="SELECT * $from_where ORDER BY date DESC LIMIT $start,$per_page";
Наверное так)
Спустя 1 минута, 49 секунд (1.10.2010 - 10:21) olgan написал(а):
число правильно выводит, а страницы не выводит почему то
Спасибо Вам огромное за запросы.
Спасибо Вам огромное за запросы.
Спустя 10 минут, 24 секунды (1.10.2010 - 10:31) Michael написал(а):
а ошибок новых нет?
В коде много тонкостей, гадать не вижу смысла. Возьмите запрос на саму страницу, скопируйте и выполните в phpmyadmin. И посмотрите почему пусто.
В коде много тонкостей, гадать не вижу смысла. Возьмите запрос на саму страницу, скопируйте и выполните в phpmyadmin. И посмотрите почему пусто.
Спустя 29 минут, 4 секунды (1.10.2010 - 11:00) olgan написал(а):
Ошибка есть
mysql_fetch_row(): supplied argument is not a valid MySQL result resource
mysql_fetch_row(): supplied argument is not a valid MySQL result resource
Спустя 8 минут, 9 секунд (1.10.2010 - 11:09) Michael написал(а):
ну так текст этого запроса в студию.
Сделай так:
так со всеми запросами
Сделай так:
echo $query;
$res=mysql_query($query) or die('Error:' . mysql_error());
так со всеми запросами
Спустя 2 часа, 8 минут, 1 секунда (1.10.2010 - 13:17) Ice написал(а):
Цитата (olgan @ 1.10.2010 - 10:49) |
$from_where="select * from shopp where ".$searchtype." like '%".$searchterm."%'"; // и получим общее количество записей $res=mysql_query("select count(shopID)".$from_where); $row=mysql_fetch_row($res); |
Рассмотрим вот этот кусочек.
По моему предположению должно быть так:
$res=mysql_query("select count(shopID) from (".$from_where.") as alias_one");
Спустя 17 минут, 35 секунд (1.10.2010 - 13:34) inpost написал(а):
Ice
А зачем from в скобках?
А зачем from в скобках?
Спустя 2 минуты (1.10.2010 - 13:36) Ice написал(а):
Цитата (inpost @ 1.10.2010 - 14:34) |
А зачем from в скобках? |
Да мало ли там чего. Просто как обобщение, что это вложенный запрос. Можно, наверное, и убрать
А, не, убирать нельзя, - ошибка
Спустя 3 минуты, 36 секунд (1.10.2010 - 13:40) inpost написал(а):
Ice
Ааа, точно, понятно.
Что-то последние деньги я какой-то рассеяный...
Ааа, точно, понятно.
Что-то последние деньги я какой-то рассеяный...
Спустя 3 дня, 22 часа, 35 минут, 5 секунд (5.10.2010 - 12:15) olgan написал(а):
Когда я вставила новый запрос, выдала ошибку
Error:You have an error in your SQL syntax near 'from shopp where shop like '%%' ) as alias_one' at line 1
А с тем старым работает.
Error:You have an error in your SQL syntax near 'from shopp where shop like '%%' ) as alias_one' at line 1
А с тем старым работает.