JOIN查询仅返回第1行

时间:2011-07-30 20:51:08

标签: php mysql

我正在尝试从连接两个表中检索多行,其中store.itemid = item_list.id。

$query = "SELECT s.price, il.*  
    FROM store s LEFT JOIN item_list il ON s.itemid = il.id";

然后我有:

if($result = $conn->($query)) {
    $array = $result->fetch_array(MYSQLI_ASSOC); 
    }

使用我当前的代码,查询只检索“store”表中的第一行。我已经确定肯定会有多行返回。

print_r($ array)显示:

Array ( [price] => 400 [id] => 5 [name] => Computer ) 

2 个答案:

答案 0 :(得分:5)

那是因为你只运行一次fetch_array()。您可能需要在循环中运行它,例如:

if ($result = $conn->query($query)) {
    while ($array = $result->fetch_array(MYSQLI_ASSOC)) {
        // do something with $array
    }
}

答案 1 :(得分:0)

而不是:

$array = $result->fetch_array(MYSQLI_ASSOC); 

使用它:

while($row = $result->fetch_array(MYSQLI_ASSOC)){
 //put your code here!
}