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

  • Автор темы Автор темы 940u1
  • Дата начала Дата начала

940u1

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

Как реализовать поиск по базе данных Mysql по заданным параметрам, с поледующим выводом результата на странице?
ПРИМЕР: поиск на сайте www.delit.ru
 
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 - требуемая переменная, значение которой = требуемая БУКВА.
 
Чего-то я не пойму — а в чём проблема-то?
Значение переменной передать не можете? Или что?

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

PHP:
WHERE name LIKE '".$_GET['letter']."'

Только $_GET['letter'] чистить не забудьте — например через [m]preg_replace[/m] пропустить, чтоб только одна буква осталась.
 
Спасибо за отичный ответ... я этого и ожидал.)))
Раз ты ожидал именно такого ответа на СВОЙ ВОПРОС, то кто тебе мешал написать вопрос по-другому, чтобы и ответ был другим?
Составлять запросы и выводить результат я и так могу, лучше бы одсказал как реалтзовать именно такой поиск как на указанном сайте.
дело в том, что "такой поиск, как на том сайте" делает именно это - составляет запрос и выводит результат.
поэтому, если у тебя есть какие-то конкретные затруднения, то тебе следует именно их и описывать.

Постарайся впредь задавать вопросы именно про то, что тебе нужно, и воздержаться от претензий.
или тебе придётся поискать другой форум, ибо мы друг друга не поймём.
 
Автор оригинала: 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] - переделаю.
еще раз спасибо.
 
сделай, хотя бы, тогда substr - обрежь chr до одной буквы
и mysql_real_escape_string.
иначе у тебя будет не поиск по сайту, а мечта хакера.

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

и я не пойму, зачем такие сложности с 'action'
у тебя же есть letter
почему не написать просто
if (isset($_GET['letter'])) {
?
да действительно так if (isset($_GET['letter'])) гораздо лучше, но если вам не трудно прошу раъяснить как использовать substr и mysql_real_escape_string. Спасибо.
 
разъяснить что? :)
зачем использовать?
или
как использовать?
 
Да, хотелось бы чтобы объяснили КАК)))
зачем я и так понимаю, но к сожалению пока недостиг таких высот в программировании как ВЫ. Надеюсь на вышу помощь. Спасибо
 
не могу разоьраться как заставить substr оставлять первый символ...
 
940u1
по ссылке выше "Пример 1. Пример использования substr()" .. изучи его..
 
Э-э...
Там же русским языком всё написано!

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

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