2014-01-20 2 views
0

У меня есть 2 таблицыпоиска данных из нескольких таблицы

Таблица-1 - user

user(ID.Name,Class) 

Таблица-2 - Category

Category(ID,user_id,cat_id) 

, если Пользовательский ввод данных из текстовое поле, как искать данные из обеих таблиц

+0

Я не уверен, что вы просите. Вы можете уточнить, какие поля вы ищете, а также показать, что вы уже пробовали? – jameslafferty

+0

Что вы хотите найти и на каком поле –

ответ

0

Просто запрос обе таблицы и использовать оператор в «OR» для столбцов, которые вы хотите искать в

SELECT * from user, category WHERE user.id=[text field] or category.user_id=[text field] or category.cat_id=[text field] 

PHP Пример: (если вы используете базу данных MySQL - вам также необходимо MySQLi включен в вашем php.ini файл)

$mysqli = mysqli_connect(HOSTNAME, USERNAME, PASSWORD, DATABASE); 
if (mysqli_connect_errno($mysqli)) {throw new exception("Failed to connect to MySQL: " . mysqli_connect_error());} 


$sql = " SELECT * from user, category WHERE user.id='".$text_field."' or category.user_id='".$text_field."' or category.cat_id='".$text_field."'"; 
$rows = $result->fetch_array(MYSQLI_ASSOC); 
foreach($rows as $row){ 

    print_r($row); 
} 

Это должно получить записи и показать ответ от массива.

+0

, пожалуйста, дайте мне полный запрос в php –

0

Я надеюсь, что вы добавили первичные ключи & к этим таблицам, чтобы захватить данные из обеих таблиц, у вас есть два пути: либо умножать обе таблицы, либо использовать все данные, используя РЕГИСТРИРУЙТЕСЬ, что делает то же самое в эффективном способе

Надеясь иметь свою схему таблицы, как USER [таблица], имеющего идентификатор, имя пользователь, имя, пароль КАТЕГОРИИ [таблица], имеющий идентификатор, имя, описание, user_id

так запрос станет

SELECT U.*, C.id as cat_id, C.name as cat_name, C.description as cat_desc 
FROM USER U 
JOIN CATEGORY C ON C.user_id = U.id 

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

WHERE C.name LIKE '%{INPUT FIELD CONTENT HERE}%' 

Я использовал LIKE пункта выше, чтобы позволить нам делать ЧАСТИЧНЫЙ поиск

Надеются, что это помогает вам

Смежные вопросы