powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP. Поиск по пустым параметрам
18 сообщений из 18, страница 1 из 1
PHP. Поиск по пустым параметрам
    #37730849
plus_stick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Есть такой код:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<form action="view.php" method="post">
<input type="text" name="id" />ID<br>
<input type="text" name="name" />Name<br>
<input type="text" name="comment" />Comment<br>
<input type="text" name="price" />Price<br>
<input type="submit" name="search" value="Search" />
</form>
<table cellpadding=0 cellspacing=0 border=1 align=center>
<?php

@$id = $_POST["id"];
@$name = $_POST["name"];
@$comment = $_POST["comment"];
@$price = $_POST["price"];

$query = mysql_query ("SELECT * FROM info WHERE id like '%$id%' or name like '%$name%' or comment like '%comment%' or price like '%$price%'") or die('error! Такой таблицы нет!');

while($row=mysql_fetch_array($query)) {
echo 
'

<tr>
<td>'.$row['id'].'</td>
<td>'.$row['name'].'</td>
<td>'.$row['comment'].'</td>
<td>'.$row['price'].'</td>
</tr>
';
}
?>
</table>


который производит поиск в базе.
Но минус в том, что чтобы найти одну или несколько записей, нужно указывать все параметры, то есть не оставлять ни одно поле пустым. Иначе запрос вернет все строки в таблице. Подскажите пожалуйста, как можно будет сделать поиск по одному или нескольким параметрам? Спасибо.
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37730903
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
plus_stick,

$inputs = array('id','name','comment','price');

<form action="view.php" method="post">
<?php foreach ($inputs as $input): ?>
<input type="text" name="search[<?php print $input;?>]" /><?php print ucfirst($input);?><br>
<?php endforeach;?>
<input type="submit" name="search" value="Search" />
</form>
<table cellpadding=0 cellspacing=0 border=1 align=center>
<?php

$query=array();
foreach ($inputs as $input) {
if (isset($_POST['search'][$input])) {
$query[] = $input.' LIKE "%'.mysql_real_escape_string($_POST['search'][$input]).'%';
}
}

$query = mysql_query ('SELECT * FROM info WHERE ' . implode(' OR ', $query)) or die('error! Такой таблицы нет!');

while($row=mysql_fetch_array($query)) {
echo 
'

<tr>
<td>'.$row['id'].'</td>
<td>'.$row['name'].'</td>
<td>'.$row['comment'].'</td>
<td>'.$row['price'].'</td>
</tr>
';
}
?>
</table>

...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37730970
plus_stick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

Спасибо, за ответ.
Как я понял из него, поиск по всем критериям будет производиться из одного поля?
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37730979
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
plus_stickРенат,

Спасибо, за ответ.
Как я понял из него, поиск по всем критериям будет производиться из одного поля?
Я недописал код: вместо
Код: php
1.
if (isset($_POST['search'][$input])) {


поставте
Код: php
1.
if (isset($_POST['search'][$input]) && trim($_POST['search'][$input])) {


Если поле пустое то для него просто не будет сформиовано условие выборки. Все логика
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37731091
plus_stick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

При выборке запрос не срабатывает, пишет текст ошибки
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37731124
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
plus_stickРенат,

При выборке запрос не срабатывает, пишет текст ошибки
какой текст ошибки то?
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37731166
plus_stick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

Текст ошибки, который должен выходить, если запрос не верен. То есть "error! Такой таблицы нет"
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37731167
plus_stick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка выходит при любом раскладе
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37731198
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
plus_stickОшибка выходит при любом раскладе
Блин, починка довольно банальная, надо былов сего лишь разобрать что да как работает:
вот правильная строка с закрытой двойной кавычкой
Код: php
1.
$query[] = $input.' LIKE "%'.mysql_real_escape_string($_POST['search'][$input]).'%"';


обычная распечатка запроса вывела бы причину
Код: php
1.
 or die('error! Такой таблицы нет!');


замените уже на
Код: php
1.
or die(mysql_error());


а еще лучше уберите die, так как ее использование не привествуеться и юзайте нормальный драйвер подключения , mysql_xxx уже depricated
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37731241
plus_stick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

Увы. Та же ошибка.
В случае с mysql_error содержание таково:
You have an error your SQL syntax; check the manual that corresponds to yor MySQL server version for the right syntax to use near " at line 1.
Проверил все кавычки, вроде все нормально.
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37731432
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажите текст запроса, который передаете в mysql_query().
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37731454
plus_stick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

Я исходил из примера, который привел мне Ренат.
Все один в один.
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37731516
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
plus_stickvkle,

Я исходил из примера, который привел мне Ренат.
Все один в один.
покажите код запроса который скрипт генерит... Я код писал навскидку нигде не проверяя, конечно же я человек и у меня могут быть оишбки.
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37731596
plus_stick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

Я бы с радостью, но не знаю как это сделать. Я только учусь. Подскажите, как?
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37731665
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
plus_stick, как то так примерно

Код: php
1.
2.
3.
$query = .... // то что нагенерил сборщик запроса
var_dump($query);
$result = mysql_query($query);
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37731731
plus_stick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

Ничего не показывает ((
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37731870
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
plus_stick,

Так не бывает. var_dump() делает вывод в любом случае, даже если переменная пуста. Проверьте имена переменных, возможно где-то не та переменная использована, а вывод ошибок отключен (для отладки его лучше включить - по крайней мере, ляпы сразу видно).
...
Рейтинг: 0 / 0
PHP. Поиск по пустым параметрам
    #37732184
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
COALESCE(id,'') LIKE '%$id%' и так на все остальные поля, если я правильно понял.
ПС. Никогда не пишите SELECT *. По разным причинам. Перечисляйте всегда через запятую нужные поля.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP. Поиск по пустым параметрам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]