Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Конфигуратор, помогите разобраться в foreach
 
 автор: Serenity   (07.01.2008 в 00:16)   письмо автору
 
 

Прошу о помощи, и как не могу разобраться с этой проблемой. Help!
Пишу конфигуратор, он берет категории из базы и вставляет названия в html-код. Обходит он таблицу foreach, а дальше скрипт должен брать модели для этой категории и писать их после каждого названия категории, что-то типа этого:
Категория 1
модель1.1
модель1.2
Категория 2
модель 2.1
модель2.2 и так далее..
С категориями все отлично, берет их из базы и вставляет в код, но функция по обработке foreach моделей в функция категорий вставлять не дает. А если писать после нее, получается что сначала все категории и в последнюю категорию все модели. Как сделать, чтобы он после каждой написаной категории, писал модели относящиеся к нему?

function display_categories($cat_array)
{
  foreach ($cat_array as $row)  // print name and id categories
  {
        echo "<td>".($row["catname"]),"</td>";
        echo "<td>".($row["catid"]),"</td>;
  }
}
function display_gelezo($gel_array) //display model gelezo
    {
      foreach ($gel_array as $row)
      {
          echo "<option  value=\"".($row["gelid"]), "\">".($row["gelmodel"]),"</option>";                                       
      }
    }
    

Функции совершенно однотиптые, но я записала обе.
Функции, которые берут данные из базы работают, но вот и они, чтобы легче было разобраться, как это исправить.

function get_categories()
{
   // query database for a list of categories
   $conn = db_connect();
   $query = "select catid, catname
             from categories"; 
   $result = @mysql_query($query);
   if (!$result)
     return false;
   $num_cats = @mysql_num_rows($result);
   if ($num_cats ==0)
      return false;  
   $result = db_result_to_array($result);
   return $result; 
}

function get_category_name($catid)
{
   // query database for the name for a category id
   $conn = db_connect();
   $query = "select catname
             from categories 
             where catid = $catid"; 
   $result = @mysql_query($query);
   if (!$result)
     return false;
   $num_cats = @mysql_num_rows($result);
   if ($num_cats ==0)
      return false;  
   $result = mysql_result($result, 0, "catname");
   return $result; 
}

Вот как это выглядит в html

   
 
 автор: mihdan   (07.01.2008 в 00:43)   письмо автору
 
   для: Serenity   (07.01.2008 в 00:16)
 

Ужас-при каждом вызове функции - коннект к базе??? db_connect();

   
 
 автор: Serenity   (07.01.2008 в 05:52)   письмо автору
 
   для: mihdan   (07.01.2008 в 00:43)
 

Да, там не постоянное соединение с базой.

   
 
 автор: Serenity   (07.01.2008 в 05:45)   письмо автору
 
   для: Serenity   (07.01.2008 в 00:16)
 

Я изменила код, теперь он выдает модели, сразу за одной любой категорией. Но появилась другая проблема, он выбирает все модели, а не только относящиеся к определенной категории. Подскажите, как правильно написать условие.
Теперь код выглядит так:

function display_configurator($config_array)  


  foreach ($config_array as $row)  // print name and id categories 
  { 
        echo "<td>".($row["catname"]),"</td>"; 
        echo "<td>".($row["catid"]),"</td>"; 
         
    foreach ($config_array as $row) 
      { 
      if (($row["gelezo.catid"])== ($row["categories.catid"])) 
      {     
      echo "<option  value=\"".($row["gelid"]), "\">".($row["gelmodel"]),"</option>"; 
      } 
      } 
  }

   
 
 автор: mihdan   (07.01.2008 в 14:52)   письмо автору
 
   для: Serenity   (07.01.2008 в 05:45)
 

sql-запрос исправьте

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования