Rus
Guest
Скрипт поиска по mysql
Вообще я на php программирую еще очень мало! И месяца нет, как этим делом занялся. Короче, написал скрипт поиска для своей базы и теперь очень хочу чтобы вы его оценили (как всегда очень сильно поругали)! Буду рад каждому замечанию
Вообще я на php программирую еще очень мало! И месяца нет, как этим делом занялся. Короче, написал скрипт поиска для своей базы и теперь очень хочу чтобы вы его оценили (как всегда очень сильно поругали)! Буду рад каждому замечанию

PHP:
<?php
require_once ("./class.php");
//все пишу с register_globals Off
if (!isset($HTTP_GET_VARS["p"])) $p="";
else $p = $HTTP_GET_VARS["p"];
switch($p)
{
case "":
search_form();
break;
case "search":
xsearch($HTTP_GET_VARS['s'], $HTTP_GET_VARS['logic']);
break;
}
//форма поиска
function search_form()
{
echo "<form action=search.php method=get>
<input type=hidden name=p value=search>
Что ищем:
<input type=text name=s>
<select name='logic'>
<option value='OR'>искать любое из слов
<option value='AND'>искать все слова
</select>
<input type=submit value=' search '><br><br>
</form>";
}
//функция осуществляет поиск
function xsearch($s, $logic)
{
//проводим все возможные проверки
$s = substr($s, 0, 64);
$s = preg_replace("/[^\w\x7F-\xFF\s]/", " ", $s);
$good = trim(preg_replace("/\s(\S{1,2})\s/", " ", ereg_replace(" +", " "," $s")));
$good = ereg_replace(" +", " ", $good);
$good = str_replace("ё", "е", $good);
$word = explode(" ", $good);
//это а тот случай если $logic не установлен
if (($logic!="AND") && ($logic!="OR"))
$logic = "OR";
$query = "SELECT s_id, name FROM arts WHERE atext LIKE '%";
$i = 0;
$c = count($word);
while ($i < $c)
{
if (strlen($word[$i])>2)
if ($i == ($c-1))
$query .= addslashes($word[$i])."%'"; //если последнее слово
else
$query .= addslashes($word[$i])."%' $logic atext LIKE '%"; //если будут еще слова
$i++;
};
$result = query_sql($query); //query_sql() - mysql_query() но уже с проверками
$r = mysql_numrows($result); //количество найденых строк
echo "<b>Искали:</b> <i>$s</i><br>";
echo "<b>Количество найденных статей: $r</b><br><br>";
while($row=mysql_fetch_array($result))
{
echo "<a href=article.php?id=".$row['s_id'].">".$row['name']."</a><br>";
}
}
?>