foreach里面虽然循环不起作用

时间:2013-06-28 15:18:34

标签: php mysql sql

我试图显示一系列规格的汽车:重量,长度,宽度 一切都会在一个foreach内部,但在一段时间内,但我无法正常运行......

我的桌子
汽车:
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

谢谢你,我希望我很清楚。

1 个答案:

答案 0 :(得分:2)

你为什么要这样做???

你需要的只是......

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

除非我完全误解你想做什么。?

另外......如果你想只为那辆车拉sspec ......那么while循环,你必须改变你的查询以接受来自第一个while循环的变量,如果你知道我的意思< / p>