- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть две таблицы countries и cities нужно, чтобы на странице страны отображались города которые к ней относятся. Сейчас при создании страницы страны использую такую функцию
--------------------------------------------------------
Так подключаю
Но как сделать выборку из таблицы с городами не могу понять....
У обеих страниц общее поле iso
Очень нужна ваша помощь!
SELECT c.f1 AS f1, c.f2 AS f2, ci.f1 AS f1, ci.f2 AS f2
FROM countries AS c
LEFT JOIN cities AS ci ON c.iso=ci.iso
WHERE c.iso='$id'
где c.f1 AS f1, c.f2 AS f2, ci.f1 AS f1, ci.f2 AS f2 необходимые поля из соответствующих таблиц - как они там озаглавлены и какие нужны вам виднее
Сейчас при создании страницы страны использую такую функцию
хотя бы интвал делайте, а то взломают вас.
SELECT c.f1 AS f1, c.f2 AS f2, ci.f1 AS f1, ci.f2 AS f2
FROM countries AS c
LEFT JOIN cities AS ci ON c.iso=ci.iso
WHERE c.iso='$id'
где c.f1 AS f1, c.f2 AS f2, ci.f1 AS f1, ci.f2 AS f2 необходимые поля из соответствующих таблиц - как они там озаглавлены и какие нужны вам виднее
Сделал как вы написали
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.iso AS iso, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' ");
Но к сожалению выводит просто буквы(A и C) в списке вместо названий городов.
Для вывода использую
---------- Добавлено 31.12.2013 в 02:46 ----------
хотя бы интвал делайте, а то взломают вас.
Не могли бы вы написать, как обезопасить от взлома, где можно почитать про интвал
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.iso AS iso, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' "); - уберите второе iso,
т.е
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' ");//название результативных полей не повторять
если iso не нужно, можете в селекте вообще его исключить
при выводе в шаблоне, как я понимаю = $item['local_name'] - для страны, $item['name'] - для города
Делайте хотябы так для числовых значений
$id = (int)$_GET['id'];
хотя iso строковое, тогда использовать можно
if(strlen($_GET['id'])!=3 OR !preg_match("/^([a-z])+$/",$_GET['id']))
{
die('Убейтесь об стену');
}
где 3 - кол-во символов, или в ISO их 2?, [a-z] - только строковые, если нужны и заглавные, тогда[A-Za-z]
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.iso AS iso, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' "); - уберите второе iso,
т.е
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' ");//название результативных полей не повторять
если iso не нужно, можете в селекте вообще его исключить
при выводе в шаблоне, как я понимаю = $item['local_name'] - для страны, $item['name'] - для города
Делайте хотябы так для числовых значений
$id = (int)$_GET['id'];
---------- Добавлено 31.12.2013 в 03:18 ----------
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.iso AS iso, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' "); - уберите второе iso,
т.е
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' ");//название результативных полей не повторять
если iso не нужно, можете в селекте вообще его исключить
при выводе в шаблоне, как я понимаю = $item['local_name'] - для страны, $item['name'] - для города
Делайте хотябы так для числовых значений
$id = (int)$_GET['id'];
хотя iso строковое, тогда использовать можно
if(strlen($_GET['id'])!=3 OR !preg_match("/^([a-z])+$/",$_GET['id']))
{
die('Убейтесь об стену');
}
где 3 - кол-во символов, или в ISO их 2?, [a-z] - только строковые, если нужны и заглавные, тогда[A-Za-z]
Сделал, все как вы написали, но выводит только буквы B
хотя iso строковое, тогда использовать можно
if(strlen($_GET['id'])!=3 OR !preg_match("/^([a-z])+$/",$_GET['id']))
{
die('Убейтесь об стену');
}
где 3 - кол-во символов, или в ISO их 2?, [a-z] - только строковые, если нужны и заглавные, тогда[A-Za-z]
Жесть, а mysql_real_escape_string уже не прикольно? Или религия не позволяет?
Сделал, все как вы написали, но выводит только буквы B
нужно показывать как, а то не понятно, что написать :)
Жесть, а mysql_real_escape_string уже не прикольно? Или религия не позволяет?
Позволяет, но только в запросе.
Позволяет, но только в запросе.
хм, а мы сейчас про что говорим? :)
Сделал, все как вы написали, но выводит только буквы B
сделайте print_r($country). В массиве тоже буквы?
---------- Добавлено 31.12.2013 в 03:40 ----------
хм, а мы сейчас про что говорим? :)
Ну пусть будет только про запрос :)
сделайте print_r($country). В массиве тоже буквы?
Выводит вот такое
Array ( [0] => PT [iso] => PT [1] => Portugal [local_name] => Portugal [2] => [name] => )