Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вопросы / ответы
Форумы портала PHP.SU » Объявления » Наработки по собственным проектам » Вопросы / ответы

Страниц (1): [1]
 

1. etoYA - 21 Декабря, 2011 - 14:47:30 - перейти к сообщению
Вот решил поигратся и сделал скрипт FAQ. Не совсем обычный.

В общем есть форма, в которую пользователь вводит вопрос, если вовпрос найден, то ему покажет сразу ответ, если не найден, то добавит его в базу. А в файле admin.php выводится список вопросов без ответа. Есть 2 ссыки (удалить, ответить).

Скрипт состоит:

Index.php
admin.php
style.css
img
config.php - настройки для MySQL

Обсираем за говнокод посоны Улыбка
2. DeepVarvar - 21 Декабря, 2011 - 16:39:17 - перейти к сообщению
1) пересохранить все в utf-8.
2) вынести основные "манипуляции" в отдельное место.
3) отделить логику от вывода.
4) нет проверки на пустоту строки вопроса.
5) строка вопроса не разбирается по словам, т.е. если в базе есть слово "тест", то вопрос "тест тест" вернет пустой результат.

так на вскидку пока все...
3. etoYA - 21 Декабря, 2011 - 16:58:09 - перейти к сообщению
DeepVarvar пишет:
1) пересохранить все в utf-8.

сделал
DeepVarvar пишет:
2) вынести основные "манипуляции" в отдельное место.

Непонял...
DeepVarvar пишет:
3) отделить логику от вывода.

Непонялл. Эт в разных файлах чтоли?
DeepVarvar пишет:
4) нет проверки на пустоту строки вопроса.

Сделал
DeepVarvar пишет:
5) строка вопроса не разбирается по словам, т.е. если в базе есть слово "тест", то вопрос "тест тест" вернет пустой результат.

Это выборку нужен разбить функцией explode(), а потом уже искать по словам?
4. DeepVarvar - 21 Декабря, 2011 - 17:04:41 - перейти к сообщению
2 и 3 почти одно и то же. Вынести не обязательнов отдельный файл. Но обязательно все расчеты вынести вверх, до вывода в браузер.

5 - да
5. etoYA - 21 Декабря, 2011 - 17:08:40 - перейти к сообщению
DeepVarvar, хм.. А как же разбить выборку если там LIKE

PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query("SELECT `answer` FROM `questions` WHERE `question` LIKE '%$question%' AND answer != ''  LIMIT 1");
  3.  

(Добавление)
Как я понял, тут уже нужно без LIKE.

Пост запрос разбить на массив, потом уже искать по словам чезе in_array()?
6. Slesher - 21 Декабря, 2011 - 17:33:34 - перейти к сообщению
etoYA, пробуй match against
7. etoYA - 21 Декабря, 2011 - 20:44:28 - перейти к сообщению
что-то не получилось

 

Powered by ExBB FM 1.0 RC1