Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поисковый запрос к таблице
 
 автор: mendosa49   (19.02.2013 в 11:15)   письмо автору
 
 

звестный скрипт поиска по сайту.Есть название базы "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_HOSTDB_USERDB_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);]

  Ответить  
 
 автор: Sfinks   (20.02.2013 в 09:38)   письмо автору
 
   для: mendosa49   (19.02.2013 в 11:15)
 

Если коротко, то в SELECT-запросе имя таблицы указывается сразу после FROM.
Если подробно, то: SELECT Syntax

  Ответить  
 
 автор: mendosa49   (21.02.2013 в 12:47)   письмо автору
 
   для: 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 открывается страничка с поиском набираю слово для поиска нажимаю на кнопку поиск и ничего не происходит.Не соединяется с базой очевидно.Подскажите в чем тут дело?

  Ответить  
 
 автор: Sfinks   (21.02.2013 в 16:15)   письмо автору
 
   для: mendosa49   (21.02.2013 в 12:47)
 

Не, лично я не подскажу.
Меня всегда ставит в тупик, когда человек, не имея представления о чем он пишет, берет кучу разных кусков кода, сваливает все в кучу, а потом удивляется - А ПОЧЕМУ НЕ РАБОТАЕТ???

Потому что код нужно писать, а не копипастить.

Вот вы можете мне ответить?
- Что такое: "WHERE `text`" ?
- Что значит "Ничего не происходит" ?
- Где у вас собственно вывод результата на экран, чтобы что-то происходило ?
- И с чего вы взяли что "Не соединяется с базой"? Для меня это совершенно не очевидно.

  Ответить  
 
 автор: Sfinks   (21.02.2013 в 16:19)   письмо автору
 
   для: mendosa49   (21.02.2013 в 12:47)
 

> SELECT * FROM `articles` WHERE `text`
Вольный перевод на русский язык:
ВЫНЕСИТЕ все ИЗ `комнаты` ГДЕ `стол`

Что стол? Зеленый? Квадратный? Деревянный?

  Ответить  
 
 автор: Igorek   (21.02.2013 в 17:06)   письмо автору
 
   для: Sfinks   (21.02.2013 в 16:19)
 

> ВЫНЕСИТЕ все ИЗ `комнаты` ГДЕ `стол`

=)

  Ответить  
 
 автор: Jovidon   (22.02.2013 в 12:45)   письмо автору
 
   для: 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
    
}
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования