Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

поиск в MySQL с помощью php

393
16 февраля 2004 года
Couger
128 / / 13.04.2003
Подскажите, как мне организовать поиск в определенной таблице базы (состоящей из 2х таблиц) и вывести результат поиска на страницу через запяту?!
4
16 февраля 2004 года
mike
3.7K / / 01.10.2002
Ну блин вечно, как спросите :)

 
Код:
$str="";
$r=mysql_query("SELECT field1 FROM table");
while ($a=mysql_fetch_array($r,MYSQL_ASSOC)) {
   $str.=$a["field1"].",";
   }
print substr($str,0,-1);
393
16 февраля 2004 года
Couger
128 / / 13.04.2003
Цитата:
Originally posted by mike
Ну блин вечно, как спросите :)

 
Код:
$str="";
$r=mysql_query("SELECT field1 FROM table");
while ($a=mysql_fetch_array($r,MYSQL_ASSOC)) {
   $str.=$a["field1"].",";
   }
print substr($str,0,-1);



А так можно:
Пусть форма передаёт, что надо искать $form

$query = "SELECT * FROM $userstable WHERE choice = $form";

$result = MYSQL_QUERY($query);

$name = mysql_result($result,$i,"name");
$name2 = mysql_result($result,$i,"name2");

А дальше все это printим и т.д. и т.п.

4
16 февраля 2004 года
mike
3.7K / / 01.10.2002
 
Код:
$query = "SELECT * FROM ".$userstable." WHERE choice = '".mysql_escape_string($form)."';";

$result=mysql_query($query);
while ($a=mysql_fetch_array($result,MYSQL_ASSOC)) {
   print $a["name"];
   print "
"
;
   print $a["name2"];
   }
393
16 февраля 2004 года
Couger
128 / / 13.04.2003
Цитата:
Originally posted by mike
 
Код:
$query = "SELECT * FROM ".$userstable." WHERE choice = '".mysql_escape_string($form)."';";

$result=mysql_query($query);
while ($a=mysql_fetch_array($result,MYSQL_ASSOC)) {
   print $a["name"];
   print "
"
;
   print $a["name2"];
   }



mysql_escape_string - это что такое? И зачем столько кавычек? Всё перерыл, ничего подобного нету... Может кинешь ссылочку с полезной инфой по вопросу MySQL+PHP.

393
17 февраля 2004 года
Couger
128 / / 13.04.2003
Если писать
$result=mysql_query("SELECT * FROM $t_links");
то далее все нормально выводится.
А как только пытаюся заменить эту строку на
$result=mysql_query("SELECT * FROM $t_links WHERE choice = '".mysql_escape_string($seach)."'");
сразу возникает ошибка и $result=0

$seach имеет определенное значение...

Бообщем, пока поиск у меня совсем не клеится!!!
Help!!!
1.9K
17 февраля 2004 года
HabaHaba
172 / / 24.12.2003
Цитата:
Originally posted by Couger
...сразу возникает ошибка и $result=0...

...$seach имеет определенное значение...


По такому описанию ошибки можно посоветовать только - "Наверное нужно кое что сделать".
Сделай:

 
Код:
$result=mysql_query("SELECT * FROM $t_links WHERE choice = '".mysql_escape_string($seach)."'")  OR DIE (mysql_error());

И процитируй ошибку.
Также, очень полезно сделать следующее:
 
Код:
$sql = "SELECT * FROM $t_links WHERE choice = '".mysql_escape_string($seach)."'";
print "
Запрос: $sql
"
;

Потом скопировать получившийся запрос и попытаться его выполнить в командной строке.
И ещё, ты понимаешь, что когда ты пишешь: choice='чтото' у тебя должно быть полное соответствие? Если хочешь что бы действительно искало, замени "=" на "like" и добавь к $search проценты.
Вот так:
$sql = "SELECT * FROM $t_links WHERE choice LIKE '%".mysql_escape_string($seach)."%'";
393
17 февраля 2004 года
Couger
128 / / 13.04.2003
Цитата:
Originally posted by HabaHaba
$sql = "SELECT * FROM $t_links WHERE name LIKE '%".mysql_escape_string($seach)."%'";



Этот код работает...

Как можно сделать, чтобы поиск проходил не только в поле name, а и в title (или вообще во всей таблице $t_links )?

И как можно выделить в результате те слова, которые мы ищем?

Если мы ищем фразу, состоящую из нескольких слов, то найдется только эта комбинация, можно сделать так, чтоб искались все слова по отдельности (можно в форме поставить select: искать все слова и искать каждое слово)?

Ещё у данного кода есть один недостаток: если мы ищем, например слово seach, то результатом будет всё, где встречается эта последовательность букв, т.е. и newseach и т.д. Ведь можно сделать так, чтобы искались слова полностью, т.е. они отделены пробелами, или дефисом, или запятыми и т.д.?

4
18 февраля 2004 года
mike
3.7K / / 01.10.2002
Обычно в форумах спрашивают то что нельзя (или сложно) почерпнуть из литературы.

Почитай:

http://www.codenet.ru/db/ssql.php
http://www.codenet.ru/db/sql/index.php
http://www.codenet.ru/db/query.php

тут про базы данных:
http://www.codenet.ru/db/

тут про PHP:
http://www.codenet.ru/webmast/php/

тут про PHP и MySql:
http://www.codenet.ru/webmast/php/php3/php3_34.php
393
18 февраля 2004 года
Couger
128 / / 13.04.2003
Цитата:
Originally posted by mike
Обычно в форумах спрашивают то что нельзя (или сложно) почерпнуть из литературы.

Почитай:

http://www.codenet.ru/db/ssql.php
http://www.codenet.ru/db/sql/index.php
http://www.codenet.ru/db/query.php

тут про базы данных:
http://www.codenet.ru/db/

тут про PHP:
http://www.codenet.ru/webmast/php/

тут про PHP и MySql:
http://www.codenet.ru/webmast/php/php3/php3_34.php



Инфа полезная... thanks! Правда часть, я уже просматривал, почитал и вторую, все равно не понимаю как можно выделить в результате те слова, которые мы ищем...

4
18 февраля 2004 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by Couger
Инфа полезная... thanks! Правда часть, я уже просматривал, почитал и вторую, все равно не понимаю как можно выделить в результате те слова, которые мы ищем...



С помощью строковых функций PHP.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог