[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: поиск по базе
igorianru
Добрый вечер, вот гдето нашол скрипт поиска, работает ищет по таблице,

только вот, выдаёт ошибку "Undefined variable: s "

и если видете тут ляпы исправте буду оч благодарен=)

<?
// Глобальная переменная. Например, нужна в функции коннекта.
$sock=false;
// новые функции
function sql($a) { return mysql_query($a); }
function sqlrows($a) { return @mysql_num_rows($a); }
function sqlval($a,$b,$c) { return @mysql_result(mysql_query($a),$b,$c); }
function sqlget($a) { return @mysql_fetch_array($a); }
function sqlline($a) { return sqlget(sql($a)); }
function sqllast() { return mysql_insert_id(); }


// коннект к серверу
function connect() {
global $sock;

$host="localhost";
$user="root";
$base="stihi";
$pass="";

$s='1';

$sock=@mysql_connect($host,$user,$pass);
if ( ! $sock || ! @mysql_select_db($base,$sock))
die("Сервер временно не работает");

unset($host);
unset($user);
unset($base);
unset($pass);
unset($s);
}

// замена die()
function xdie($zapros="", $info="") {
die("</table></table></table></table><hr><h3>************ $info ***********<br><br>
SQL ERROR..... N"
.mysql_errno().": ".mysql_error()."</h3><pre>$zapros</pre><hr>");
}
if (!isset($z)) $z="";
if (isset($all)) $all=intval($all);
if (isset($start)) $start=intval($start);
if (isset($len)) $len=intval($len);
else $len=5;
?>

<p>
<? echo "<table width='497' height='52' border='1' cellpadding='1' cellspacing='1' bordercolor='#000099'>
<tr>
<th bgcolor='#0066FF' scope='row'><form action=
$PHP_SELF method=get>
<input type=hidden name=z value=search>
<span class='стиль5'>
Что ищем:</span>
<input type=text name=s value='
$s' value='' maxlength='10'>
<span class='стиль5'>Строк:</span>
<input type=text name=len value='
$len' size=5>
  <input type=submit value=' Искать '><br>
<br>

</form></th>
</tr>
</table>"
;
switch ($z) {
case "search":
connect();
$query="SELECT * FROM `stihi` WHERE `name` LIKE '%$s'";
if (!isset($start)) {
if (!( $res=sql($query) )) xdie($query,"ошибка");
$start=0;
$all=sqlrows($res);
} else {
$query.=" LIMIT $start,$len";
if (!( $res=sql($query) )) xdie($query,"ошибка");
}
echo "Запрос: <strong><font color=#00ff00>$s</font><br><br></strong>";
for ($j=1; $j<=$len && $tmp=sqlget($res); $j++) {
printf ("<table align='center' class='Pmb3'>
<tr >
<td class='Pmb2' align='center'>
<strong><a href='../../kab/odrab/text.php?stihi_id=%s'>%s</a></strong>
<tr><td class='Pmb3'> <p>%s</table><p></p>
</table>"
, $tmp["stihi_id"], $tmp["name"], $tmp["name"]);
}
echo "<br>";
for ($i=1; $i<=floor($all/$len); $i++)
echo "<a href=$PHP_SELF?z=search&all=$all&len=$len&".
"start=".(($i-1)*$len)."&s=".urlencode($s).">$i</a> ";
break;
}
connect();
// удаляем таблицу (на всякий случай)
sql("DROP TABLE limit_test");
// создаем
if (!sql("CREATE TABLE limit_test (id int, s char(100))"))
xdie("","Таблица не создана");


?>




Спустя 2 часа, 11 минут, 58 секунд (16.06.2011 - 23:39) inpost написал(а):
igorianru
Мой совет, выкинь его...

Спустя 8 часов, 18 минут (17.06.2011 - 07:57) linker написал(а):
В самом начале добавить
$z = isset($_REQUEST['s']) ? $_REQUEST['z'] : '';
$s = isset($_REQUEST['s']) ? $_REQUEST['s'] : '';
$len = isset($_REQUEST['len']) ? (int)$_REQUEST['len'] : 1;
$all = isset($_GET['all']) ? $_GET['all'] : 0;
$start = isset($_GET['start']) ? (int)$_GET['start'] : 1;
А так, конечно, гумно редкостное, даже нет никакой защиты от SQL-инъекций. В топку этот скрипт.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.