PHP虽然是Foreach的MySQL密钥

时间:2015-06-09 05:54:32

标签: php mysql foreach while-loop

远距离搜索,无法找到答案,所以我觉得是时候发帖了。我目前有一个供应商表。我想使用' skuid'来遍历每个供应商。每个值都是唯一的,然后回显该行的其他信息。这是我到目前为止所拥有的。

$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if ($mysqli->connect_errno) {
    echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>";
    exit();
}

$vendorQuery = "SELECT skuid FROM vendors";
$vendorResult = mysqli_query($mysqli, $vendorQuery);

while($row = mysqli_fetch_assoc($vendorResult)) {
    foreach($row['skuid'] as $vendorid) {
        echo $row['skuid'];
    }
} ?>

1 个答案:

答案 0 :(得分:4)

你不需要那个foreach,你的外循环就足够了

while($row = mysqli_fetch_assoc($vendorResult)) {
        echo $row['skuid'];
}

并且单个mysql查询不会返回嵌套的数据级别,因此在这种情况下,嵌套循环不能成为任何好的用例。

当此循环运行时,每行始终只有1 skuid。那里没有其他嵌套循环。

现在,如果你想从这个查询创建一个供应商数组,然后循环它,这是一个很好的用例。例如

while($row = mysqli_fetch_assoc($vendorResult)) {
        $skuid=$row['skuid'];
        $name=$row['name'];
        $vendors[$skuid]=array('name'=>$name); // and other fields
}
foreach($vendors as $vendor){
        echo $vendor['name'];
}