Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 18.04.2012
Сообщений: 75
1

Неправильно работает поиск [PHP/MySQL]

08.05.2015, 15:10. Показов 650. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

3 дня уже мучаюсь с этой функцией поиска..

Описание задачи: Есть таблица clients со столбцами id_client, second_name, name, patronymic, passport, date_of_birth, place_of_residence, location, telephone, inn_f.

Я хочу сделать так, чтобы на отдельной страничке располагались формы для каждого столбца. Т.е. чтобы я мог осуществлять поиск по любому столбцу по желанию, а результат выводился в таблицу.

Код страницы:

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
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Клиенты</title>
</head>
 
<body>
<link rel="stylesheet" type="text/css" href="style.css"/> 
 
<form method='post' action='srch_client.php'>
 
ID: <input type='text' size='30' name='id_client' /><br><br><br>
Фамилия: <input type='text' size='30' name='second_name' />&nbsp;&nbsp;&nbsp;
Имя: <input type='text' size='30' name='name' />&nbsp;&nbsp;&nbsp;
Отчество: <input type='text' size='30' name='patronymic' /><br><br><br>
Паспортные данные: <input type='text' size='30' name='passport' />&nbsp;&nbsp;&nbsp;
Дата рождения: <input type='text' size='30' name='date_of_birth' /><br><br><br>
Место прописки: <input type='text' size='30' name='place_of_residence' />&nbsp;&nbsp;&nbsp;
Место проживания: <input type='text' size='30' name='location' /><br><br><br>
Телефон: <input type='text' size='30' name='telephone' /><br><br><br>
ИНН: <input type='text' size='30' name='inn_f' /><br><br>
 
<input type='submit' value='Поиск клиентов' /></form>
 
</body>
</html>
А вот код самого скрипта srch_client.php:

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Клиенты</title>
</head>
 
<body>
<link rel="stylesheet" type="text/css" href="style.css"/> 
 
<?php
include ('connect.php');
 
$id_client = $_POST['id_client'];
$second_name = $_POST['second_name'];
$name = $_POST['name'];
$patronymic = $_POST['patronymic'];
$passport = $_POST['passport'];
$date_of_birth = $_POST['date_of_birth'];
$place_of_residence = $_POST['place_of_residence'];
$location = $_POST['location'];
$telephone = $_POST['telephone'];
$inn_f = $_POST['inn_f'];
 
$sql_result = "SELECT * FROM clients WHERE id_client='$search' or second_name='$search' or name='$search' or patronymic='$search' or passport='$search' or date_of_birth='$search' or place_of_residence='$search' or location='$search' or telephone='$search' ORDER BY id_client";
$result = mysql_query ($sql_result);
if ($myrow = mysql_fetch_array($result))
{
echo "<table border=1 align=center>\n";
echo "<tr><td>ID</td><td>Фамилия</td><td>Имя</td><td>Отчество</td><td>Паспорт</td><td>Дата рождения</td><td>Место прописки</td><td>Место проживания</td><td>Телефон</td><td>ИНН</td></tr>\n";
do
{
printf("
<tr>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
</tr>\n", $myrow["id_client"], $myrow["second_name"], $myrow["name"], $myrow["patronymic"], $myrow["passport"], $myrow["date_of_birth"], $myrow["place_of_residence"], $myrow["location"], $myrow["telephone"], $myrow["inn_f"]);
}
while ($myrow = mysql_fetch_array($result));
echo "</table>\n";
}
else
{
echo "Извините, данные не найдены!";
}
 
?>
 
</body>
</html>
В итоге поиск работает неправильно, а именно: если буду искать по ID, то всё может выводиться правильно. Допустим, ввёл цифру 4 - нашлась строка клиента с id=4. НО, если я хочу найти по фамилии, имени и т.п. (т.е. по текстовым полям) - кроме нужной строки скрипт почему-то выводит мне и другие строки из БД

Думаю, что ошибка где-то в SELECT * FROM clients WHERE .... , но не пойму где..

Кстати, если мой запрос будет выглядеть как SELECT * FROM clients WHERE id_client='$search' or second_name='$search' - то всё работает правильно. Но стоит добавить хотя бы ещё одно условие, так всё
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2015, 15:10
Ответы с готовыми решениями:

Поиск строки в таблице (MySQL + Php)
Всем привет. Я новичек в mysql, помогите сформировать query запрос. Есть БД/таблица/строки....

Индексный поиск в таблице MySQL на PHP
Прошу помощи, коллеги! Ситуация следующая: Есть таблица в БД MySQL. Для простоты пусть имя...

MySql 5.5 - полнотекстовый поиск по цифре не работает
Здравствуйте. Использую MySql 5.5 на живом сервере и MySql 5.6 на локальном. Тип таблицы - InnoDB....

Неправильно работает запрос
Всем привет! Вот такой запрос SELECT DISTINCT teacher.name AS 'teacher', autoschool.name AS...

1
0 / 0 / 0
Регистрация: 18.04.2012
Сообщений: 75
09.05.2015, 15:37  [ТС] 2
проблема решена..
0
09.05.2015, 15:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2015, 15:37
Помогаю со студенческими работами здесь

Неправильно работает Select
Имеется таблица(в ней несколько тысяч записей): CREATE TABLE IF NOT EXISTS `quotation_table` ( ...

Неправильно работает SELECT
Здравствуйте Есть таблица, в нем несколько полей описаны как varchar. Пока во всех записях эти...

Неправильно работает запрос
Всем привет. Вот такая проблема. Есть таблица users с полями (id (ключевое), name, department(FK),...

Почему неправильно работает выборка только с 1 значением?
Всем доброго времени суток Подскажите что не так с запросом на выборку: Если запрос выглядит так:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru