X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
> запросы и get с ним
Salikhoff_hb
Salikhoff_hb
Topic Starter сообщение 20.4.2011, 7:25; Ответить: Salikhoff_hb
Сообщение #1


народ вот код [PHP]<?php
require_once ('includes/configuration.php');
require_once ('includes/functions/global.func.php');

db_connect($config);

$request = mysql_real_escape_string(isset ($_GET['s']) ? trim ($_GET['s']) : '');
$request = preg_replace ('|[^a-zа-я0-9\s\-\!\&\.\,\^\*\_\?]|siu', '', $request);

$category = intval(isset ($_GET['c']) ? trim ($_GET['c']) : '');

$counter = ("SELECT COUNT(`id`) FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '$request%') OR (`url` LIKE '%$request%'))");
if (!empty ($category))
{
$counter .= "AND `category` = ".($category);
}

$counter = mysql_query($counter) or die(mysql_error());
$counter = mysql_result($counter, 0);
if ($counter > 0)
{
$list = intval(isset($_GET['list']) && intval($_GET['list']) > 0 ? intval($_GET['list']) : 1);
if(!isset($list))
$list = 1;
$number = $list * 10 - 10;

if (!empty ($category))
{
$result = ("SELECT * FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '$request%') OR (`url` LIKE '%$request%')) AND `category`='$category' ORDER BY `counter` DESC LIMIT $number, 10");
}
else
{
$result = ("SELECT * FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '$request%') OR (`url` LIKE '%$request%')) ORDER BY `counter` DESC LIMIT $number, 10");
}
if (!empty ($request))
{
echo ("<strong class='font'>Нашли <strong style='color:#999999'>".counter($counter, array('ответ', 'ответа', 'ответов'))." по вашему запросу.</strong>");
}
else
{
echo ("<strong class='font'>Здесь всего <strong style='color:#999999'>".counter($counter, array('сайт', 'сайта', 'сайтов')).".</strong>");
}
$number = 1 + $number;
$result = mysql_query($result) or die(mysql_error());
while ($row = mysql_fetch_array($result))
{
echo ("<div id='block'><div class='number'>".$number."</div>");
echo ("<div id='result'><a href=".$row['url']." target='_blank' onClick=this.href='/addons/counter.php?id=".$row['id']."' class='title'>".$row['title']."</a>");
echo ("<div class='content_result'>".$row['description']."</div>");
echo ("<a href=".$row['url']." target='_blank' onClick=this.href='/addons/counter.php?id=".$row['id']."' class='url'>".$row['url']."</a>");
echo ("</div></div>");
$number ++;
}
$counter = $counter/10;
$counter = ceil ($counter);
$list_s = $list - 4;
$list_m = $list + 5;
if ($list_m > $counter)
$list_m = $counter;
echo ("<div class='list' align='center'>");
if ($list >= 6)
{
if (!empty ($category))
{
echo ("<a href='catalog.php?c=$category&s=$request'>1</a> ");
}
else
{
echo ("<a href='catalog.php?s=$request'>1</a> ");
}
echo ("... ");
}
for ($i=$list_s; $i <= $list_m; $i++)
{
if ($i > 0) {
if ($i==$list)
{
echo ("<div class='this'>$i</div> ");
}
else
{
if (!empty ($category))
{
echo ("<a href='catalog.php?list=$i&c=$category&s=$request'>$i</a> ");
}
else
{
echo ("<a href='catalog.php?list=$i&s=$request'>$i</a> ");
}
}
}
}
$list_f = $counter - 6;
if ($list <= $list_f)
{
echo ("... ");
if (!empty ($category))
{
echo ("<a href='catalog.php?list=$counter&c=$category&s=$request'>$counter</a>");
}
else
{
echo ("<a href='catalog.php?list=$counter&s=$request'>$counter</a>");
}
}
echo ("</div>");
}
else
{
if (!empty ($request))
{
echo ("<strong class='error'>К сожалению по вашему запросу, в этой категории сайтов не найдено...</strong>");
}
else
{
echo ("<strong class='error'>К сожалению в этой категории сайтов не найдено...</strong>");
}
}
?>[/PHP] как здесь поработать с запросами, т.е. у меня может быть запрос поиск($request) а может и не быть, так зачем нагружать бд лишними поисками без переменной [PHP] $counter = ("SELECT COUNT(`id`) FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '$request%') OR (`url` LIKE '%$request%'))");
if (!empty ($category))
{
$counter .= "AND `category` = ".($category);
}[/PHP]и так же второй запрос [PHP] if (!empty ($category))
{
$result = ("SELECT * FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '$request%') OR (`url` LIKE '%$request%')) AND `category`='$category' ORDER BY `counter` DESC LIMIT $number, 10");
}
else
{
$result = ("SELECT * FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '$request%') OR (`url` LIKE '%$request%')) ORDER BY `counter` DESC LIMIT $number, 10");
}[/PHP] еще хотел спросить как передавать параметр если он только есть? т.е. вот на примере листалки страниц [PHP] if (!empty ($category))
{
echo ("<a href='catalog.php?list=$counter&c=$category&s=$request'>$counter</a>");
}
else
{
echo ("<a href='catalog.php?list=$counter&s=$request'>$counter</a>");
}[/PHP] если переменной($request) нет, он все равно ее передаст, а зачем чтобы вновь поиск по бд с пустым вопросом прошел! вот мои вопросы помогите решить! и если есть замечания по коду говорите, чтобы я смог исправить!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Salikhoff_hb
Salikhoff_hb
Topic Starter сообщение 20.4.2011, 8:47; Ответить: Salikhoff_hb
Сообщение #2


ну так одну проблему решил с ссылками и тегом title [PHP]<?php echo($request ? "$request" : 'Весь каталог сайтов'); ?>[/PHP]
еще осталась проблема с запросами в БД и есть вопрос, вот смотрите пользователь зашел на сайт и кликнул по форме нечего не набрав, как сделать так что если переменная гет s пуста чтобы исчезла? вот смотрите catalog.php?s= у меня по идеи если она пуста или ее нет должно будет вывести все записи, но зачем она нужна пустая, лишнюю нагрузку делает, как сделать чтобы она превратилась просто в catalog.php
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
zabmix
zabmix
сообщение 20.4.2011, 8:55; Ответить: zabmix
Сообщение #3


Я вообще ничего не понял.

Вы конструируете навигацию по страницам из каталога?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Salikhoff_hb
Salikhoff_hb
Topic Starter сообщение 20.4.2011, 9:06; Ответить: Salikhoff_hb
Сообщение #4


в общем все те вопросы отбросили, заново пишу надо поправить sql запросы к бд [PHP] $counter = ("SELECT COUNT(`id`) FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '$request%') OR (`url` LIKE '%$request%'))");
if (!empty ($category))
{
$counter .= "AND `category` = ".($category);
}[/PHP] и [PHP] if (!empty ($category))
{
$result = ("SELECT * FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '$request%') OR (`url` LIKE '%$request%')) AND `category`='$category' ORDER BY `counter` DESC LIMIT $number, 10");
}
else
{
$result = ("SELECT * FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '$request%') OR (`url` LIKE '%$request%')) ORDER BY `counter` DESC LIMIT $number, 10");
}[/PHP] вот здесь используется переменная $request поиска, в общем этой переменной может и не быть. Тогда зачем нагружать БД лишним поиском по бд с пустым запросом, тогда ему выведет все равно все записи, вот я и хочу реализовать сперва вывод всех записей, если есть переменная $request то только поиск по бд! так понятно, чет с утра голова не очень варит! а что касается catalog.php?s= то если она переменная s пуста то тогда надо сделать чтобы перекинуло на просто catalog.php но чтобы пользователь этого не заметил!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
zabmix
zabmix
сообщение 20.4.2011, 9:27; Ответить: zabmix
Сообщение #5


дак с переменной $category вы уже и сами разобрались, а чтоб перекинуть используй это:
[PHP]
if (!empty ($category))
{
$result = ("SELECT * FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '$request%') OR (`url` LIKE '%$request%')) AND `category`='$category' ORDER BY `counter` DESC LIMIT $number, 10");
}
else
{
header('Location: catalog.php');
$result = ("SELECT * FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '$request%') OR (`url` LIKE '%$request%')) ORDER BY `counter` DESC LIMIT $number, 10");
}
[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
zabmix
zabmix
сообщение 20.4.2011, 9:33; Ответить: zabmix
Сообщение #6


Дай расшифрую.

Идет запрос $category
Если он пуст, кидаем пользователя на catalog.php (ту с которой он пришел)
Если там что-то есть то выдаем это. Чет тоже голова с утра...

[PHP]
if(!empty ($category)) {
// SQL запрос
} else if(!eregi("catalog.php", $PHP_SELF)) {
// перенаправляем в catalog.php
header('Location: catalog.php');
}
[/PHP]
А вот эта
[PHP] if(!eregi("catalog.php", $PHP_SELF)) [/PHP]
тут служит для проверки, чтоб бесконечной переадресации не было.

$PHP_SELF соответственно должна быть указана через $_SERVER. или как нить там..
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
zabmix
zabmix
сообщение 20.4.2011, 9:35; Ответить: zabmix
Сообщение #7


Ну, все верно! Получили что просили, с вас шоколадка
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
zabmix
zabmix
сообщение 20.4.2011, 9:43; Ответить: zabmix
Сообщение #8


[PHP]if (!empty ($category) and !empty ($request)) {

}[/PHP]
Если есть то ищем, если нет то ищем все.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Salikhoff_hb
Salikhoff_hb
Topic Starter сообщение 20.4.2011, 19:17; Ответить: Salikhoff_hb
Сообщение #9


народ смотрите есть вот такая переменная $request в гете она выглядит вот так s=здесь запрос, как сделать если ссылка вида catalog?s= здесь пусто, то она перекинуло на просто catalog.php, но а если есть запрос то так и оставить?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
zabmix
zabmix
сообщение 20.4.2011, 19:24; Ответить: zabmix
Сообщение #10


тебе реализация этого в js или в php надо??
если в php то я уже писал в 6 посте (с верху)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Get-Web.site - Качественная верстка сайтов
0 GetWeb 1515 29.7.2019, 20:08
автор: GetWeb
Горячая тема (нет новых ответов) Самый мощный софт для раскрутки - Xrumer. Как с ним продвигать и зарабатывать
33 AnnaYa 13822 27.2.2019, 12:53
автор: -AnnaYa-
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыСобрать ключевые запросы для 20 тем
около 250-500к кеев
4 venom777 2961 3.7.2017, 11:29
автор: bakson2016
Открытая тема (нет новых ответов) Статьи заточенные под НЧ запросы с низкой конкуренцией по mutagen
Обзоры игр и приложений для Андроид, ios, PC + картинки
2 seonotebook 2739 30.1.2017, 22:51
автор: seonotebook
Открытая тема (нет новых ответов) Нужна правка (уникализация) паблик шаблонов и создание шапок к ним
7 chechev1984 3713 22.11.2016, 23:10
автор: chechev1984


 



RSS Текстовая версия Сейчас: 25.4.2024, 14:29
Дизайн