Как использовать автозаполнение поиска по двум таблицам - PullRequest
1 голос
/ 18 марта 2011

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

Таблицы:

States
======
id
state

Cities
======
id
city

Вот какЯ перебираю результат ...

while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {

    $row_array['id'] = $row['stateid'];
    $row_array['value'] = $row['state'];

    array_push($return_arr,$row_array);
}

1 Ответ

3 голосов
/ 18 марта 2011

Когда вы подключаетесь к MySQL, вместо того, чтобы использовать запрос к одной таблице, используйте это

select 'state' as type, id, state
from states
union all
select 'city', id, city
from cities

Результирующий столбец с именем «State» содержит штаты, а также названия городов.Возможно, вы также захотите использовать столбец «type», чтобы определить, является ли выбранное имя (из массива) штатом или городом.

Может быть проще обернуть его вокруг, так что выможет фильтровать по комбинированному результату:

SELECT type, id, state
FROM
(
    select 'state' as type, id, state
    from states
    union all
    select 'city', id, city
    from cities
) X
WHERE ...  # you can put a where clause here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...