строительный массив внутри 2 петли

0

Кто-нибудь может мне помочь? потому что я не могу понять это.

скажем, у меня есть база данных с двумя таблицами, одна из которых является категорией, а другая - продуктом

category table
cat_id         category_name
1          animals
2          fruits
3          vegetables


product table
pro_id       category_id    product_name
1            2             mango
2            3             beans
3            2             apple
4            1             cat

Я попытался выбрать cat id order by cat_id в таблице категорий, в то время как таблица cat зацикливается.... {Я попытался выбрать продукт в таблице продуктов, используя cat_id, в то время как таблица продуктов зацикливается.. {Я просто хочу поместить его в массив в хорошем формате}

}

пример результата

        Array
        (
            [fruits] => Array
                (
from cat_id -->  [2] => Array
                        (
                            [pro_id] => 1
                            [name] => mango
                        )           
from cat_id -->  [2] => Array
                         (  [id] => 3
                            [name] => apple
                        )
                ),
            [vegetables] => Array
                (
from cat_id -->  [3] => Array
                        (
                            [pro_id] => 2
                            [name] => beans
                        )           

                ),
            [animals] => Array
                (
from cat_id -->  [1] => Array
                        (
                            [pro_id] => 4
                            [name] => cat
                        )           
                )       
         )
  • 0
    Как вы получаете эти данные из базы данных?
  • 0
    Я использую while ($ row_cat = mysql_fetch_array ($ result_cat) {затем вызываю product с помощью while и создаю массив.}
Теги:
arrays
loops

1 ответ

0
Лучший ответ

Сначала я должен получить категории и пропустить их, а затем получить продукты для каждой категории. Что-то вроде:

$result = Array();
$sql = "SELECT * FROM category ORDER BY category_name";
// db query here (however you are doing that)
foreach ($categories as $category)
    {
    $result[$category['category_name']] = Array();
    $sql = "SELECT * FROM product WHERE category_id = $category[cat_id] ORDER BY product_name";
    // db query here (however you are doing that)
    foreach ($products as $product)
        $result[$category['category_name']][$product['pro_id']] = $product['product_name'];
    }

Это даст вам выход:

Array(
    'fruits' => Array(
        1 => 'mango',
        3 => 'apple',
        )
     etc.

При необходимости отрегулируйте его, если вам нужно сохранить идентификатор категории и т.д.

  • 0
    Вы хотите получить идентификатор категории, в то время как ($ row_cat = mysql_fetch_array ($ result_cat)) {сначала нужно создать массив? Для идентификатора кошки? Тогда используйте цикл?}
  • 0
    Нет необходимости в цикле while - просто получите список категорий, используя этот первый запрос, а затем выполните цикл по каждой категории с помощью цикла foreach. Затем вы видите, что я использую второй запрос, чтобы получить продукты для этого идентификатора категории, и перебираю те, которые используют другой цикл foreach.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню