Подскажите,пожалуйста,вопрос такой:
есть конструкция, всем известная,
PHP |
switch(expression) { case value_1: // блок операторов; break; case value_2: // блок операторов; break; ... case value_n: // блок операторов; break; default: // блок операторов; } |
как сделать, чтобы значения value_i, i={1,2,....,n} выводились из базы
Мое решение - вывод циклом, но как? я пробовал так:
PHP |
<?php $result_country = mysql_query("SELECT * FROM country", $db); $myrow_country = mysql_fetch_array($result_country);
switch($_GET['country']) { do {case '$myrow_country['country_id']': $result_region = mysql_query('SELECT * FROM region WHERE country_id = $myrow_country['country_id']', $db); $myrow_region = mysql_fetch_array($result_region); do {print '[{value:"$myrow_region["region_id"]",text:"$myrow_region["name"]"},]'; } while ($myrow_region = mysql_fetch_array($result_region)); break; } while ($myrow_country = mysql_fetch_array($result_country)); default: print '[{value:"",text:"Выбрать автомобиль"}]'; break; } |
у меня здесь две таблицы - стран и регионов, при выборе страны $_GET['country'], у меня должен формироваться список ее регионов
{print '[{value:"$myrow_region["region_id"]",text:"$myrow_region["name"]"},]';},
который я тоже тяну из
базы.Но я понимаю, что
вложенность switch{do{case - это какое-то гониво. Это фрагмент задачи, если кто поможет решить, буду очень признателен.
Общая задача, которую я решаю - построить каскад раскрывающихся списков стран,регионов,городов, то есть при выборе страны раскрываются варианты выбора ее регионов, при выборе региона - его городов. Решение я нашел на
http://www.linkexchanger.su/2009/82.html,но там списки прописываются вручную, а мне надо их формировать из
базы.
Если кто укажет ссылку где это уже реализовывалось, буду сто раз признателен.
Заранее спасибо.
Спустя 20 минут, 16 секунд (30.05.2009 - 00:08) jetistyum написал(а):
я долго не мог понять, php это или нет ))
непривычный стиль .... к тому же, видимо и не рабочий код..
не осилил логику кода, но ща еще повтыкаю...
в общем виде это должно выглядеть так
1 этап..
из базы загружается список стран - отображается юзеру
юзер выбирает в селектбоксе страну.. нажимает кнопку - окей.. выбрал типа
на сервер прилетает id страны.
2 этап ты выбираешь все регионы страны с таким - то id- шником (который у тебя прилетел от юзера ) и ты создаешь второй селектбокс - со списком регионов
по-простому это можно сделать с помощью перегрузки страниц.. нажал кнопку, скрипт отработал, заполнилось ...
по-вебдванольному нужно делать без перегрузки страницы... ajax-иком.... отправляешь асинхронный запрос, вставляешь данные во второй селектбокс.
тут уже javascript нужно курить, новичку может быть немного сложно будет... а впринципе все просто.
Спустя 10 минут, 3 секунды (30.05.2009 - 00:18) jetistyum написал(а):
о блин, в коде просто ерунда какая-то... ты его не сам писал, а пытался чей-то переписать под себя????
page1.php
PHP |
<select name="country"> <?php $countrees = mysql_query('SELECT * FROM `countries`'); while($row = mysql_fetch_array()){ echo '<option value="'.$row['country_id'].'">'.$row['country_name'].'</option>'; } </select> |
Это если очень кратко и по-простому.
Спустя 9 часов, 22 минуты, 2 секунды (30.05.2009 - 09:40) Kuliev написал(а):
kylem
Код похож на ПОПОВСКИЙ, Вы случайно не по его урокам учились?
Спустя 1 день, 23 часа, 16 минут, 43 секунды (1.06.2009 - 08:57) glock18 написал(а):
Вот я тоже так подумал

.Кажется, уже узнавать его незабываемый подчерк начинаю)))
Спустя 1 час, 56 минут, 19 секунд (1.06.2009 - 10:53) sergeiss написал(а):
Вопрос автору темы.
Вот ты расписал сначала структуру свича. А теперь самостоятельно найди эту же структуру в приведенном тобой коде.
Заодно учти, что код
PHP |
'$myrow_country['country_id']' |
является абсолютно некорректным (в т.ч. при попытке сформировать SQL-запрос). Наружные апострофы не нужны!!!