|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - PHP - несколько вопросов |
|
Разное - PHP - несколько вопросов
|
![]() Старожил Сообщения: 361 |
В итоге, как сделать, чтобы MOVE перемещала файл в папку, адрес которой задаётся из переменной $final_path, а не выводила на экран (сейчас файл загружается в текстовом виде в окно браузера). Как установить поддержку ID3_Tags и PEAR вообще? ![]() Под *math*понимается некоторая функция, которая смотрит сколько было файлов в последнем каталоге, и если он заполнен, меняет адрес каталога на новый. Как написать такую функцию? |
|
Отправлено: 20:19, 05-07-2009 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Может быть неверно задаётся адрес директории?
Выведите переменную: echo $final_path перед выполнением этого ветвления. Вообще, здесь надо использовать относительный путь, а не абсолютный. Например: opendir("./images/dir0001") Цитата ManHack:
|
|
Отправлено: 08:10, 08-07-2009 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 361
|
Профиль | Отправить PM | Цитировать Добавление в базу сделано.
Теперь надо написать поиск. Поиск должен искать слова из 1 строки сразу в 3 столбцах таблицы и выдавать результаты по их релевантности. Сколько не бился - толком ничего не вышло. Подскажите, а? ![]() И/или хотя бы обясните пословно, что здесь написано: "SELECT id FROM CoreLibrary WHERE title LIKE '%". str_replace(" ", "%' OR title LIKE '%", $good). "%'" Знак % что даёт? и кавычки как-то странно стоят, аж жуть.... А вот здесь ещё непонятнее: "SELECT *, MATCH row1 AGAINST ('$search')+MATCH row2 AGAINST ('$search')+MATCH row3 AGAINST //('$search') as relev FROM CoreLibrary ORDER BY relev DESC" AGAINST? MATCH? DESC? |
Отправлено: 21:11, 09-08-2009 | #12 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Цитата:
Но согласен, скобки стоят странно. Было бы правильнее расставить их так: Цитата:
Цитата:
SELECT *, ... - выбрать все строки, удовлетворяющие условию, и справа добавить столбец relev - релевантность поиска (по нему потом идёт сортировка). MATCH колонка AGAINST ('строка поиска') - полнотекстовый поиск по столбцу. Таблицы должны иметь индекс для полнотекстового поиска. Видимо, здесь идут три подзапроса по разным столбцам, потом им задаётся общее имя (AS relev) и по этой колонке (ORDER BY relev) уже сортируется по убыванию (DESC). Хотя странно выглядит) Подробнее о полнотекстовом поиске можете почитать здесь, если интересно. Я не совсем разобрался =~_~= |
|||
Отправлено: 04:14, 10-08-2009 | #13 |
![]() Старожил Сообщения: 361
|
Профиль | Отправить PM | Цитировать Последний запрос (с релевантностью) возвращает таблицу целиком с дополнительным столбиком "relev", в котором одни нули... Почему? $search совпадает со значениями row1 в двух строках.
И где можно получить информацию по "ERROR: "Неизвестная строка с пунктуацией @ 96"" (cобственно, интересуют описания этих самых @96, @100 и т.д.) |
Отправлено: 20:59, 10-08-2009 | #14 |
![]() Старожил Сообщения: 361
|
Профиль | Отправить PM | Цитировать Вопрос про нолики отпал... И правда, релевантность начинает подсчитываться, когда в базе 10 и более записей...
Теперь, как с ней манипулировать? Чтобы при точных запросах по нескольким столбцам таблицы выдавала только точные ответы (как в медиапоисковиках или поиске по электронным библиотекам,например) |
Отправлено: 21:58, 10-08-2009 | #15 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать При точных запросах вам не нужна релевантность. Вам нужно точное совпадение:
Но обычно полную строку никто не ищет, поэтому вместо stolb = 'запрос' пишите stolb LIKE '%запрос%'. Т.е. пробелы внутри запроса будут обрабатываться как есть, но сама подстрока будет обнаруживаться как в начале, так в середине и конце строк. Чтобы упорядочить выдачу, добавьте в конце ORDER BY stolb_name ASC ASC - по возрастанию (указывать не обязательно, т.к. по умолчанию), DESC - по убыванию. Можно указать несколько полей через запятую, тогда упорядочивание будет производиться сначала по первому, потом по второму и т.д.(имеется в виду, что в первом поле "автор" Пушкин будет идти после Гоголя, конечно, но у самого Пушкина произведения будут упорядочены по второму полю "название"). Прим: LIKE - странная штука. Когда я делал поиск по прайсу, она находила даже запросы длиной меньше 4 символов, но что это были за результаты... Каждый раз что-то своё. И только больше 4 символов запроса находились точно. |
Отправлено: 04:05, 11-08-2009 | #16 |
![]() Старожил Сообщения: 361
|
Профиль | Отправить PM | Цитировать С этим разобрались. Я решил пока что отказаться от LIKE и всё выполнил через MATCH AGAINST.
В SQL мой запрос работает отлично, а вот в написанном PHP'шнике - шиш. Суть php-файла:
В чём теперь дело? Может я обращение к результатам запроса неправильно делаю? или что ещё? |
Отправлено: 19:49, 11-08-2009 | #17 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Вы бы почитали руководство PHP касательно работы с MySQL. Там даже примеры есть.
mysql_query() и должно возвращать идентификатор ресурса. Теперь его надо обработать:
|
Отправлено: 03:57, 12-08-2009 | #18 |
![]() Старожил Сообщения: 361
|
Профиль | Отправить PM | Цитировать Тьфу ты, точно... Вылетело из головы >_<
Спасибо! |
Отправлено: 09:49, 13-08-2009 | #19 |
![]() Старожил Сообщения: 361
|
Профиль | Отправить PM | Цитировать Цитата Coutty:
Поэтому придётся использовать конструкцию типа foreach ($array as $value) { *** последовательная обработка элементов строки*** } |
|
Отправлено: 12:11, 13-08-2009 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Несколько вопросов по PHP | ManHack | Программирование и базы данных | 53 | 24-03-2009 01:23 | |
Несколько вопросов по ОС | Master WEB | Общий по Linux | 33 | 02-08-2007 23:23 | |
Несколько вопросов | raingts | Хочу все знать | 2 | 30-01-2007 18:05 | |
Несколько вопросов | barbos | Общий по Linux | 8 | 16-12-2004 20:40 | |
Несколько вопросов по RH 9 | Frost Wolf | Общий по Linux | 12 | 07-09-2003 12:51 |
|