Ajay Singh Ответов: 1

Сравните со значениями базы данных и найдите результат поиска в PHP


передача двух значений в url treatment и city from home.php

и в show.php

Я хочу отобразить данные в соответствии с этими двумя значениями, если они будут найдены

в базе данных столбец город идет как Дели(одно значение) , но столбец лечение идет как prp, лихорадка, инфекция(несколько значений в одной ячейке)

моя проблема заключается в том, как выбрать и отобразить, если url состоит из treatment = prp и city = mumbai
затем отобразите данные не найдены, потому что город имеет Дели

Что я уже пробовал:

$sql = "SELECT * FROM add_doctor WHERE city='".$city."' AND treatment ='".$treatment."'";

Richard Deeming

Итак, ваша проблема заключается в том, что в базе данных нет соответствующих записей, и вы не знаете, почему она не находит никаких данных для отображения?

Кроме того, хранение нескольких значений в одном поле-это очень плохая конструкция базы данных. Вы должны нормализовать свою базу данных и иметь несколько значений лечения в отдельной таблице со ссылкой внешнего ключа на таблицу врачей.

1 Ответов

Рейтинг:
0

W∴ Balboos, GHB

Нужно внести два изменения.

1) Поскольку вы используете .php, вы можете избавить себя от некоторых проблем при использовании "в качестве оболочки строки".

$sql = "SELECT * FROM add_doctor WHERE city='".$city."' AND treatment ='".$treatment."'";
Could be written: 
$sql = "SELECT * FROM add_doctor WHERE city='$city' AND treatment ='$treatment'";

PHP-парсер заменит переменную $ во время выполнения.

Теперь перейдем к вашему вопросу. Перепишите что-то вроде:
$sql = "SELECT * FROM add_doctor WHERE city='$city' AND treatment LIKE '%$treatment%'";
С дикими картами"%", обертывающими ваши болезни. Это будет соответствовать любой строке, содержащей значение в $treatment, независимо от того, что ее окружает.

Как отмечалось в первом комментарии, дизайн поля болезни очень плох.