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

Ваш аккаунт

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

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

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

MySQL+Php Find

7.4K
07 марта 2010 года
T...H
159 / / 28.12.2008
Подскажите пожалйста что-либо для поиска текста в MySQL.
Из скриптов ничего нормального не нашел.
274
07 марта 2010 года
Lone Wolf
1.3K / / 26.11.2006
Задачу точнее.
Fulltext index или LIKE не подходят?
7.4K
07 марта 2010 года
T...H
159 / / 28.12.2008
Я составил что-то наподобие этого:
Код:
<?php
$first_rec=0;
$num_rec=20;
$k=0;
$fnd = $_POST['fname'];
do {
$query = "SELECT msg, biography, answer FROM `".$table."` WHERE UPPER(msg) LIKE '$fnd' LIMIT $first_rec, $num_rec";
$result = mysql_query($query) or die("Запрос ошибочный.<br>".$query);
echo "<hr>".$query;
$k=mysql_num_rows($result); //количество строк в результате запроса

if (($first_rec==0)||($k==0)) {echo "<br>Ничего не найдено"; break;}
elseif ($first_rec==0){

echo "<table>\n";
}

while ($line = mysql_fetch_array($result, MYSQL_NUM))
{
echo "\t<tr>\n";
for ($i=0;$i<=2;$i++)
{
if($i==0)
$line[$i]= str_ireplace($_POST['fname'], "<span>".$_POST['fname']."</span>", $line[$i]);
echo "\t\t<td>".$line[$i]."</td>\n";
}
echo "\t</tr>\n";
}
if($k<$num_rec) {

print "</table>\n";
mysql_free_result($result);
}
$first_rec += $num_rec;

} while ($k==$num_rec);

?>

Но он не пашет :(
253
07 марта 2010 года
Proger_XP
1.5K / / 07.08.2004
 
Код:
$query = "SELECT msg, biography, answer FROM `".$table."` WHERE UPPER(msg) LIKE '$fnd' LIMIT $first_rec, $num_rec";

LIKE без шаблонов всё равно, что просто сравнение. Тогда уж так: msg LIKE "%$fnd%"
% = * (любое количество символов от 0),
_ = ? (обязательно один, но любой символ).
7.4K
07 марта 2010 года
T...H
159 / / 28.12.2008
UPPER(msg)
- это надо или просто:
msg ?
7.4K
07 марта 2010 года
T...H
159 / / 28.12.2008
Цитата:
LIKE '%".strtoupper($fnd)."%'


я делал так. Это верно ?

253
07 марта 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: T...H
UPPER(msg)
- это надо или просто:
msg ?


Зависит от кодировки таблицы. Если её имя оканчивается на "_ci", то кодировка не учитывает регистр символов, если на "_cs" - надо.
Например: utf8_unicode_[COLOR="Red"]ci[/COLOR] - "case-insensitive"

 
Код:
я делал так. Это верно?

Если не используешь UPPER(), то strtoupper() можно опустить.
А так да, правильно.
7.4K
08 марта 2010 года
T...H
159 / / 28.12.2008
Эмм.... я все сделал, но все равно пишет на выходе "Ничего не найдено"...
Тут я как-то намудрил, что-то не то я сделал... А вот что неверно не могу понять, (пока)... :(
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог