Добрый вечер! Есть 2 страницы: 1 страница- (форма для заполнения) PHP: <form name="form_s" method="post" action="view_searchsell.php"> <p><label>Введите название товара<br> <input name="search" type="text" size="25" maxlength="40" /> </p> ... 2 страница - (поиск по базе) PHP: <? if (isset($_POST['submit_s'])) {$submit_s = $_POST['submit_s'];} if (isset($submit_s)) { $query = " SELECT * FROM datasell "; if (isset($_POST['seller'])) { $seller = $_POST['seller']; $where[]= "seller = ('$seller')"; } if (isset($_POST['cat'])) { $cat = $_POST['cat']; $where[]= "cat = ('$cat')"; } if (isset($_POST['prise'])) { if (isset($_POST['prise2'])) { $prise2 = $_POST['prise2']; $where[]= "prise BETWEEN ($prise) AND ($prise2)"; } } else { $prise = $_POST['prise']; $where[]= "prise >= ($prise)"; } if (isset($_POST['search'])) { $search = $_POST['search']; $search = trim($search); $search = stripslashes($search); $search = htmlspecialchars($search); $where[]= "MATCH(text) AGAINST('$search')"; } $where_sql = ''; if(sizeof($where)) { $where_sql = ' WHERE '.implode(" AND ",$where); } $result=mysql_query($query.$where_sql); } else { exit("<p>Вы обратились к файлу без параметров.</p>"); } .... ?> Хочу сдлеать так чтобы выбор шел только по тем параметрам которые я указал в форме. Во втором коде присутствует ошибка, не могу найти какая. В результате PHP: if (mysql_num_rows($result) > 0) всегда False, даже если все поля заполнены данными из базы. Подскажите что неправильно ?
Если не подставлять параметры, то результатом запроса будет: PHP: WHERE seller = ('') AND cat = ('') AND prise BETWEEN () AND () AND MATCH(text) AGAINST('') Из-за того что пустые переменные и выдает ошибку. Почему не срабатывает условие: PHP: if (isset($_POST['переменная'])) { $where[]= "значение из таблицы = ($переменная)";
PHP: <?php ... $query = 'SELECT * FROM table WHERE 1=1'; if(isset($_POST['seller']) && trim($_POST['seller'])!=''){ $seller = addslashes($_POST['seller']); $query .= " AND seller='{$seller}'" } if(isset($_POST['cat']) && trim($_POST['cat'])!=''){ $seller = addslashes($_POST['cat']); $query .= " AND cat='{$cat}'" } ... ?>