2013-08-07 2 views
0

У меня есть форма с полями Имя, Email и города. Город - это поле автозаполнения, которое вызывает 3 отдельных таблицы (Города, Регионы, Страны).Получение массива с MySQL

city field

То, что я хотел бы сделать это, чтобы они взрываются в массив, так что город, регион, и страна все определенные значения. Это мой запрос прямо сейчас для поля автозаполнения:

SELECT c.City, concat(r.Region, ', ', co.Country) 
    FROM Cities c, Regions r, Countries co 
    WHERE c.RegionID = r.RegionID and c.CountryID = co.CountryID and c.City like CONCAT(inCity, '%') 
    ORDER BY City; 

Как вы можете видеть, введенное значение (Incity) только по сравнению с колонкой City в таблице городов.

Причина, по которой мне необходимо определить город, регион и страну, потому что мне нужно ввести их идентификаторы в другой таблице с именем События. Это мой запрос, чтобы вставить CityId в мои События стола:

INSERT INTO Events (Events.CityID) 
    VALUES ((SELECT CityID FROM Cities WHERE City = inCity LIMIT 1)); 

Это также не работает, потому что иногда есть несколько городов с таким же именем.

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

+0

Не можете просто удалить CONCAT? Например: SELECT c.City, r.Region, co.Country –

+0

@JoelLewiw - Я мог бы, но у меня это было так, чтобы все они отображались как одна строка в форме автозаполнения. И даже если я удалю concat, я до сих пор не знаю, как назвать Region & Country в моем запросе INSERT. –

ответ

0

Вещи намного понятнее, когда вы храните ваши JOIN условия из вашей статьи WHERE:

SELECT concat(c.City, ', ', r.Region, ', ', co.Country) 
FROM Cities c 
    INNER JOIN Regions r ON c.RegionID = r.RegioID 
    INNER JOIN Countries co ON c.CountryID = co.CountryID 
WHERE c.City like CONCAT(inCity, '%') 
ORDER BY City; 
+0

Спасибо, исправил. Я все еще смущен тем, как получить Region & Country в моем запросе INSERT. –

+0

Если этот ответ был исправлен, можете ли вы пометить его как принято, пожалуйста? Если нет, вы должны добавить свой собственный ответ для дальнейшего использования. – Dancrumb

+0

Извините, я имел в виду, что я поменял свой запрос на то, что вы предоставили, чтобы сделать все более ясным, но у меня все еще есть одна и та же проблема (не могу получить вызов Region & Country в моем запросе INSERT) –

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