|
|
|
|
звестный скрипт поиска по сайту.Есть название базы "burg" указываю в настройках.Но в базе же есть таблицы у меня "articles","pages" где содержится информация для поиска.Как эти таблицы внеси в скрипт поиска?
[code<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'maks_badenga');
define('DB_PASS', '12345678');
define('DB_NAME', 'burg');
if (!mysql_connect(DB_HOST, DB_USER, DB_PASS)) {
exit('Cannot connect to server');
}
if (!mysql_select_db(DB_NAME)) {
exit('Cannot select database');
}
mysql_query('SET NAMES utf8');
function search ($query)
{
$query = trim($query);
$query = mysql_real_escape_string($query);
$query = htmlspecialchars($query);
if (!empty($query))
{
if (strlen($query) < 3) {
$text = '<p>Слишком короткий поисковый запрос.</p>';
} else if (strlen($query) > 128) {
$text = '<p>Слишком длинный поисковый запрос.</p>';
} else {
$q = "SELECT `id`, `title`, `description`, `text`, `mini_img`, `author`
FROM `table_name` WHERE `text` LIKE '%$query%'
OR `title` LIKE '%$query%' OR `meta_k` LIKE '%$query%'
OR `meta_d` LIKE '%$query%'";
$result = mysql_query($q);
if (mysql_affected_rows() > 0) {
$row = mysql_fetch_assoc($result);
$num = mysql_num_rows($result);]
|
| |
|
|
|
|
|
|
|
для: mendosa49
(19.02.2013 в 11:15)
| | Если коротко, то в SELECT-запросе имя таблицы указывается сразу после FROM.
Если подробно, то: SELECT Syntax | |
|
|
|
|
|
|
|
для: Sfinks
(20.02.2013 в 09:38)
| | Установил $q = "SELECT * FROM `articles` WHERE `text` "; реальная таблица и поле в файл search.php и еще один index.php с формой поиска
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<form action="search.php" method="post">
<tt>
Поиск<br />
<input type="text" name="search" value="что искать?" onclick="search.value='';"/><br /><br />
<input type="submit" name="submit" value="искать"/>
</tt>
</form>
| оба файла поместил в папку news в основной директории сайта.Набираю http://localhost/burg1/news открывается страничка с поиском набираю слово для поиска нажимаю на кнопку поиск и ничего не происходит.Не соединяется с базой очевидно.Подскажите в чем тут дело? | |
|
|
|
|
|
|
|
для: mendosa49
(21.02.2013 в 12:47)
| | Не, лично я не подскажу.
Меня всегда ставит в тупик, когда человек, не имея представления о чем он пишет, берет кучу разных кусков кода, сваливает все в кучу, а потом удивляется - А ПОЧЕМУ НЕ РАБОТАЕТ???
Потому что код нужно писать, а не копипастить.
Вот вы можете мне ответить?
- Что такое: "WHERE `text`" ?
- Что значит "Ничего не происходит" ?
- Где у вас собственно вывод результата на экран, чтобы что-то происходило ?
- И с чего вы взяли что "Не соединяется с базой"? Для меня это совершенно не очевидно. | |
|
|
|
|
|
|
|
для: mendosa49
(21.02.2013 в 12:47)
| | > SELECT * FROM `articles` WHERE `text`
Вольный перевод на русский язык:
ВЫНЕСИТЕ все ИЗ `комнаты` ГДЕ `стол`
|
Что стол? Зеленый? Квадратный? Деревянный? | |
|
|
|
|
|
|
|
для: Sfinks
(21.02.2013 в 16:19)
| | > ВЫНЕСИТЕ все ИЗ `комнаты` ГДЕ `стол`
=) | |
|
|
|
|
|
|
|
для: mendosa49
(19.02.2013 в 11:15)
| |
<?php
if(isset($_POST))
{
// собираем ошибки в $error;
$error = array();
if(empty($_POST["search"])) $error[] = "Поля поиск пусто.";
if(strlen($_POST["search"]) < 3) $error[] = "Слишком короткий поисковый запрос.";
if(strlen($_POST["search"]) > 128) $error[] = "Слишком длинный поисковый запрос.";
// если нет ошибок то зделаем запрос;
if(empty($error))
{
// зашишаем их как будо ;)
$_POST["search"] = htmlspecialchars($_POST["search"]);
$_POST["search"] = mysql_escape_string($_POST["search"]);
$search = trim($_POST["search"]);
// выбираем все что надо;
$query = "SELECT *
FROM table_name
WHERE title LIKE %$search%";
$result = mysql_query($query) or die("Ошибка: " . mysql_error());
if(mysql_num_rows($result))
{
while($sch = mysql_fetch_array($result))
{
echo // вывод;
}
}
else
{
echo "По вашему запросу ничего не нейдено :(";
}
}
// выводим ошибки;
else
{
foreach($error as $err)
{
echo '<span class="error">' . $err . '</span>';
}
}
}
else
{
?>
<form action="search.php" method="post">
Поиск<br />
<input type="text" name="search" value="что искать?" onclick="search.value='';"/><br />
<input type="submit" name="submit" value="искать"/>
</form>
<?php
}
?>
|
| |
|
|
|