[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как сase-ы в switch выводить из базы?
kylem
Подскажите,пожалуйста,вопрос такой:
есть конструкция, всем известная,
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 написал(а):
Вот я тоже так подумал biggrin.gif .Кажется, уже узнавать его незабываемый подчерк начинаю)))

Спустя 1 час, 56 минут, 19 секунд (1.06.2009 - 10:53) sergeiss написал(а):
Вопрос автору темы.

Вот ты расписал сначала структуру свича. А теперь самостоятельно найди эту же структуру в приведенном тобой коде.
Заодно учти, что код
PHP
'$myrow_country['country_id']'
является абсолютно некорректным (в т.ч. при попытке сформировать SQL-запрос). Наружные апострофы не нужны!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.