2013-06-28 3 views
0

Im пытается отобразить список автомобилей со спецификациями: вес, длина, ширина.
Все было бы внутри Еогеасп и внутри какое-то время, но я не могу запустить его правильно ...foreach внутри while loop не работает

Мои столы
автомобилей:
idcar: 1/ширина: 30/длина: 10/Вес: 300
idcar: 2/ширина: 20/длина: 12/вес: 210
idcar: 3/ширина: 20/длина: 21/вес: 230
idcar: 4/ширина: 40/длина: 11/вес: 210

и спецификации таблица:
idspec: 1 спецификация: ширина
idspec: 2 спецификации: вес
idspec: 3 спецификации: длина

И мой код

    $idcar = $_GET['idcar']; 
    $resultcarfirst = mysqli_query($connecDB,"select * from products order by (case idcar when $idcar then 0 else idcar end), $idcar asc"); 
    $resultspec = mysqli_query($connecDB, "SELECT * FROM specs ORDER BY idspec"); 
    
    while($rowspec = mysqli_fetch_array($resultspec)){ 
         echo '<div><h1>'.$rowspec["spec"].'</h1><br/>'; 
    
         $arraycars = array(); 
         while($rowcar = mysqli_fetch_array($resultcarfirst)) 
         $arraycars[] = $rowcar; 
         foreach($arraycars as $rowcar){ 
          echo '<p>idcar:'.$rowcar['idcar'].' '.$rowspec['spec'].': '.$rowcar[$rowspec['spec']].'</p>'; 
         } 
    
         echo '</div><br/>'; 
        } 
    

    Выходной сигнал будет:
    Ширина
    idcar: 1 ширина: 30
    idcar : 2 ширина: 20
    idcar: 3 ширина: 20
    idcar: 4 ширина: 40

    Вес
    idcar: 1 вес: 300
    idcar: 2 вес: 210
    idcar: 3 вес: 230
    idcar: 4 Вес: 210

    Длина
    idcar: 1 Длина: 10
    idcar: 2 длина: 12
    idcar: 3 длина: 21
    idcar: 4 длина: 11

    Спасибо и я надеюсь, что было ясно.

    +0

    Вы указываете, какой результат вы хотите, но что вы на самом деле получаете как вывод? – fvu

    +0

    ваш код не хватает нескольких фигурных скобок для того, чтобы делать то, что вы хотите сделать, я думаю. – Aralicia

    +0

    @fvy im sorry, В моем выпуске я не могу показать все спецификации с каждой из машин. Только первая спецификация с автомобилями, потом все пусто. Я чист? Спасибо. – santyas

    ответ

    2

    ПОЧЕМУ вы бы это сделали .. ??

    Все, что вам нужно ...

    $arraycars = array(); 
        while($rowcar = mysql_fetch_array($resultcarfirst)){ 
        echo '<p>idcar:'.$rowcar['idcar'].' '.$rowspec['name'].': '.$rowcar[$rowspec['spec']].'</p>'; 
        $arraycars[] = $rowcar;} 
    

    Если Im совершенно не недоразумение, что вы хотите сделать.?

    Также ... если вы хотите вытащить sspecs только для этого автомобиля .... с этим циклом while, тогда вам нужно изменить свой запрос, чтобы принять переменную из первого цикла while, если вы знаете, что я имею в виду

    +0

    Мне жаль, я не понимаю – santyas

    +0

    Мне нужно повторить, в первую очередь, множество spec в моем db. В зависимости от этого, второй шаг показывает все автомобили в каждой спецификации. т.е.: если он широкий: все автомобили с шириной, если они высоки: все автомобили с высокой стоимостью. – santyas

    +0

    Тогда вам нужно либо выполнить соединение в mysql, либо по мере того, как вы выполняете цикл запроса ..... в любом случае – KyleK