Поиск по БД с выводом результатов.

940u1

Новичок
Поиск по БД с выводом результатов.

Как реализовать поиск по базе данных Mysql по заданным параметрам, с поледующим выводом результата на странице?
ПРИМЕР: поиск на сайте www.delit.ru
 

Фанат

oncle terrible
Команда форума
940u1
В разделе "Статьи" этого сайта есть статья "Вступление в пхп и мускул"
Почитай - там написано, как отправлять запрос в базу и выводить результат.
 

940u1

Новичок
Спасибо за отичный ответ... я этого и ожидал.)))


to Фанат
Составлять запросы и выводить результат я и так могу, лучше бы одсказал как реалтзовать именно такой поиск как на указанном сайте.

-~{}~ 14.03.06 09:58:

Дело не в том что у меня не получается, а в том что я хочу оптимизировать то, что имеется.


PHP:
<a href='letter.php?action=%C0'>А</a> 
<a href='letter.php?action=%C1'>Б</a> 
<a href='letter.php?action=%C2'>В</a> 
<a href='letter.php?action=%C3'>Г</a> 
--------------------------------------------------
<a href='letter.php?action=%DF'>Я</a>
PHP:
<?php
			
if (isset($_GET['action']) && ($_GET['action'] == "А")) {
				$result = mysql_query("SELECT * FROM `iptables` WHERE name LIKE 'А%'");
				}
if (isset($_GET['action']) && ($_GET['action'] == "Б")) {
				$result = mysql_query("SELECT * FROM `iptables` WHERE name LIKE 'Б%'");
				}
if (isset($_GET['action']) && ($_GET['action'] == "В")) {
				$result = mysql_query("SELECT * FROM `iptables` WHERE name LIKE 'В%'");
				}
if (isset($_GET['action']) && ($_GET['action'] == "Г")) {
				$result = mysql_query("SELECT * FROM `iptables` WHERE name LIKE 'Г%'");
				}
------------------------------------------------
if (isset($_GET['action']) && ($_GET['action'] == "Я")) {
				$result = mysql_query("SELECT * FROM `iptables` WHERE name LIKE 'Я%'");
				}
?>
Мне не обходимо ввести переменную
вот сюда
PHP:
if (isset($_GET['action']) && ($_GET['action'] == "chr")) {
				$result = mysql_query("SELECT * FROM `iptables` WHERE name LIKE '[COLOR=red]$v[/COLOR]'");
				}
где $v - требуемая переменная, значение которой = требуемая БУКВА.
 

baev

‹°°¬•
Команда форума
Чего-то я не пойму — а в чём проблема-то?
Значение переменной передать не можете? Или что?

Ставьте в ссылке "?action=chr&letter=%DF" и будет у Вас:

PHP:
WHERE name LIKE '".$_GET['letter']."'
Только $_GET['letter'] чистить не забудьте — например через [m]preg_replace[/m] пропустить, чтоб только одна буква осталась.
 

Фанат

oncle terrible
Команда форума
Спасибо за отичный ответ... я этого и ожидал.)))
Раз ты ожидал именно такого ответа на СВОЙ ВОПРОС, то кто тебе мешал написать вопрос по-другому, чтобы и ответ был другим?
Составлять запросы и выводить результат я и так могу, лучше бы одсказал как реалтзовать именно такой поиск как на указанном сайте.
дело в том, что "такой поиск, как на том сайте" делает именно это - составляет запрос и выводит результат.
поэтому, если у тебя есть какие-то конкретные затруднения, то тебе следует именно их и описывать.

Постарайся впредь задавать вопросы именно про то, что тебе нужно, и воздержаться от претензий.
или тебе придётся поискать другой форум, ибо мы друг друга не поймём.
 

940u1

Новичок
Автор оригинала: baev
Чего-то я не пойму — а в чём проблема-то?
Значение переменной передать не можете? Или что?

Ставьте в ссылке "?action=chr&letter=%DF" и будет у Вас:

PHP:
WHERE name LIKE '".$_GET['letter']."'
Только $_GET['letter'] чистить не забудьте — например через [m]preg_replace[/m] пропустить, чтоб только одна буква осталась.
Спасибо за ваш ответ.
Пока сделал так -
PHP:
if (isset($_GET['action']) && ($_GET['action'] == "chr")) {
				$result = mysql_query("SELECT * FROM `iptables` WHERE name LIKE '".$_GET['letter']."%'");
				}
Как разберусь с [m]preg_replace[/m] - переделаю.
еще раз спасибо.
 

Фанат

oncle terrible
Команда форума
сделай, хотя бы, тогда substr - обрежь chr до одной буквы
и mysql_real_escape_string.
иначе у тебя будет не поиск по сайту, а мечта хакера.

и я не пойму, зачем такие сложности с 'action'
у тебя же есть letter
почему не написать просто
if (isset($_GET['letter'])) {
?
 

940u1

Новичок
Автор оригинала: Фанат
сделай, хотя бы, тогда substr - обрежь chr до одной буквы
и mysql_real_escape_string.
иначе у тебя будет не поиск по сайту, а мечта хакера.

и я не пойму, зачем такие сложности с 'action'
у тебя же есть letter
почему не написать просто
if (isset($_GET['letter'])) {
?
да действительно так if (isset($_GET['letter'])) гораздо лучше, но если вам не трудно прошу раъяснить как использовать substr и mysql_real_escape_string. Спасибо.
 

Wicked

Новичок
разъяснить что? :)
зачем использовать?
или
как использовать?
 

940u1

Новичок
Да, хотелось бы чтобы объяснили КАК)))
зачем я и так понимаю, но к сожалению пока недостиг таких высот в программировании как ВЫ. Надеюсь на вышу помощь. Спасибо
 

940u1

Новичок
не могу разоьраться как заставить substr оставлять первый символ...
 

Andreika

"PHP for nubies" reader
940u1
по ссылке выше "Пример 1. Пример использования substr()" .. изучи его..
 

baev

‹°°¬•
Команда форума
Э-э...
Там же русским языком всё написано!

substr() возвращает подстроку строки string длиной length, начинающегося с start символа по счету.

Если start неотрицателен, возвращаемая подстрока начинается в позиции start от начала строки, считая от нуля. Например, в строке 'abcdef', в позиции 0 находится символ 'a', в позиции 2 - символ 'c', и т.д.
— какие слова тут непонятны?
 
Сверху