Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Любое значение в поле поиска


Автор: kelario 22.11.2009, 21:14
Добрый вечер.
У меня есть скрипт поиска ( вернее начало этого скрипта)

Код

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   $name= trim($_POST['name']);
   $category = trim($_POST['category']);
   $location = trim($_POST['location']);
   $keyword = trim($_POST['keyword']);

if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $name)) {
      die("In the Company name field only   symbols, letters,numbers and underline symbol are allowed<br />\n");
   }
  elseif (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $category)) {
      die("In the Categories  field only   symbols, letters,numbers and underline symbol are allowed<br />\n");
  }
 elseif (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $location)) {
      die("In the Location  field only   symbols, letters,numbers and underline symbol are allowed<br />\n");
  }  
   elseif (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $keyword)) {
      die("In the Keyword  field only   symbols, letters,numbers and underline symbol are allowed<br />\n");
  }  
   $con = mysql_connect('localhost', 'asd', 'asd');
   if (!$con) {
      die("Cant connect to the DataBase");
   }else {
      // Chosing DataBase
      mysql_select_db('author',$con);
      
$search=mysql_query("SELECT * FROM shops WHERE name='$name' AND category='$category' AND location='$location' AND description='$keyword'");
 $type=mysql_fetch_array($search);

 
   }

?>


Подскажите,как сделать так,что бы при пустом (незаполненном ) поле, переменная принимала "любое значение".То есть если к примеру поле Location пустое,то скрипт ищет в базе в колонке location пустое поле.Как сделать так,что бы его удовлетворяло любое значение колонки location ?

Автор: Pitlord 22.11.2009, 22:02
Формировать 
Код

name='$name' AND category='$category' AND location='$location' AND description='$keyword'

отдельно:
Код

<?php

$fields = array();

if( $name != '' )
    $fields[] = '`name` = "' . mysql_real_escape_string($name) . '"';

if( $category != '' )
    $fields[] = '`category` = "' . mysql_real_escape_string($category) . '"';

if( $keyword != '' )
    $fields[] = '`description` = "' . mysql_real_escape_string($keyword) . '"';

if( empty($fields) )
{
    die( 'Заполните какое-нибудь поле' );
}

$query = 'SELECT * FROM `shops` WHERE ' . implode(' AND ', $fields) . ' ...;';

?>

Автор: kelario 22.11.2009, 22:44
О спасибо!! 

Всё прекрасно работает!!!

Благодарю!!! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)