• Уважаемый посетитель!!!
    Если Вы уже являетесь зарегистрированным участником проекта "миХей.ру - дискусcионный клуб",
    пожалуйста, восстановите свой пароль самостоятельно, либо свяжитесь с администратором через Телеграм.

Поиск по базе данных

  • Автор темы Автор темы Sunland
  • Дата начала Дата начала
S

Sunland

Гость
Вот нужен скрипт - понятный и не сложный но хороший по базе данных.:)

Тоесть он будет искать по словам которые данны в описание сайта, названия, и адресса.

Поиск нужен вот для этого проэкта.

--------------------------------------------
http://www.xefus.net/ideas/xe-cat/index.php
--------------------------------------------
 
Боюсь, универсальных скриптов нету.
Есть только общие методы... А часть кода писать придется самому.
 
Ок вот есть код

PHP:
<?php
include config.php;

$rowsPerPage = 5;
$pageNum = 1;

if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
if(isset($_GET['search']))
{
$search = $_GET['search'];
}

// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;

$keywords = explode(" ", $search);

$query = "SELECT id,name,about FROM people " .
"WHERE about LIKE '%".$keywords['0']."%'";

for ($i=1; $i<count($keywords); $i++) {
$query = $query." AND about LIKE '%".$keywords[$i]."%'";
}
$query = $query." ORDER BY id LIMIT $offset, $rowsPerPage";

$result2 = mysql_query($query) or die(mysql_error());
?>
<center>
<form method="GET" action="search.php">
<b>Search:</b> <input type="text" name="search" size="20" />
<input type="submit" value="Search!" />
</form>
<table width="50%" style="border:1px solid #000000;">
<?php
$keywords = explode(" ", $search);

$query = "SELECT COUNT(id) AS numrows FROM people " .
"WHERE about LIKE '%".$keywords['0']."%'";

for ($i=1; $i<count($keywords); $i++) {
$query = $query." AND about LIKE '%".$keywords[$i]."%'";
}

$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];

// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);

// print the link to access each page
$self = $_SERVER['PHP_SELF'];
$nav = '';

for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nav .= " $page ";
}
else
{
$nav .= " <a href=\"$self?page=$page&search=$search\">$page</a> ";
}
}
// creating previous and next link
// plus the link to go straight to
// the first and last page

if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"$self?page=$page&search=$search\">[Prev]</a> ";

$first = " <a href=\"$self?page=1&search=$search\">[First Page]</a> ";
}
else
{
$prev = ' ';
$first = ' ';
}

if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$next = " <a href=\"$self?page=$page&search=$search\">[Next]</a> ";

$last = " <a href=\"$self?page=$maxPage&search=$search\">[Last Page]</a> ";
}
else
{
$next = ' ';
$last = ' ';
}

while($row = mysql_fetch_array($result2))
{
echo "<tr>";
echo "<td style='border-bottom: 1px solid #000000;'>";
echo "<b>".$row['name']."</b>";
echo "<p>".$row['about']."</p>";
echo "</td>";
echo "</tr>";
}

echo "<tr>";
echo "<td>";
echo "<center>".$first . $prev . $nav . $next . $last."</center>";
echo "</td>";
echo "</tr>";
// print the navigation link(s)
?>
</td>
</tr>
</table>
<a href="add.php">Add a person to our index.</a>
</center>

Но проблема в том что он дает результат до начана поиска(сразу)
И вторая когда нечего не ввиденно он показывает все сайты в базе данных. А также кода нечто не найдено надо чтобы он писал "Нету".
 
Назад
Сверху