поиск в MySQL с помощью php
$r=mysql_query("SELECT field1 FROM table");
while ($a=mysql_fetch_array($r,MYSQL_ASSOC)) {
$str.=$a["field1"].",";
}
print substr($str,0,-1);
Ну блин вечно, как спросите :)
$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им и т.д. и т.п.
$result=mysql_query($query);
while ($a=mysql_fetch_array($result,MYSQL_ASSOC)) {
print $a["name"];
print "
";
print $a["name2"];
}
$result=mysql_query($query);
while ($a=mysql_fetch_array($result,MYSQL_ASSOC)) {
print $a["name"];
print "
";
print $a["name2"];
}
mysql_escape_string - это что такое? И зачем столько кавычек? Всё перерыл, ничего подобного нету... Может кинешь ссылочку с полезной инфой по вопросу MySQL+PHP.
$result=mysql_query("SELECT * FROM $t_links");
то далее все нормально выводится.
А как только пытаюся заменить эту строку на
$result=mysql_query("SELECT * FROM $t_links WHERE choice = '".mysql_escape_string($seach)."'");
сразу возникает ошибка и $result=0
$seach имеет определенное значение...
Бообщем, пока поиск у меня совсем не клеится!!!
Help!!!
...сразу возникает ошибка и $result=0...
...$seach имеет определенное значение...
По такому описанию ошибки можно посоветовать только - "Наверное нужно кое что сделать".
Сделай:
И процитируй ошибку.
Также, очень полезно сделать следующее:
print "
Запрос: $sql
";
Потом скопировать получившийся запрос и попытаться его выполнить в командной строке.
И ещё, ты понимаешь, что когда ты пишешь: choice='чтото' у тебя должно быть полное соответствие? Если хочешь что бы действительно искало, замени "=" на "like" и добавь к $search проценты.
Вот так:
$sql = "SELECT * FROM $t_links WHERE choice LIKE '%".mysql_escape_string($seach)."%'";
$sql = "SELECT * FROM $t_links WHERE name LIKE '%".mysql_escape_string($seach)."%'";
Этот код работает...
Как можно сделать, чтобы поиск проходил не только в поле name, а и в title (или вообще во всей таблице $t_links )?
И как можно выделить в результате те слова, которые мы ищем?
Если мы ищем фразу, состоящую из нескольких слов, то найдется только эта комбинация, можно сделать так, чтоб искались все слова по отдельности (можно в форме поставить select: искать все слова и искать каждое слово)?
Ещё у данного кода есть один недостаток: если мы ищем, например слово seach, то результатом будет всё, где встречается эта последовательность букв, т.е. и newseach и т.д. Ведь можно сделать так, чтобы искались слова полностью, т.е. они отделены пробелами, или дефисом, или запятыми и т.д.?
Почитай:
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
Обычно в форумах спрашивают то что нельзя (или сложно) почерпнуть из литературы.
Почитай:
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! Правда часть, я уже просматривал, почитал и вторую, все равно не понимаю как можно выделить в результате те слова, которые мы ищем...
Инфа полезная... thanks! Правда часть, я уже просматривал, почитал и вторую, все равно не понимаю как можно выделить в результате те слова, которые мы ищем...