mysqli fetch 数组只显示第一行 [英] mysqli fetch array displays only the first row

查看:29
本文介绍了mysqli fetch 数组只显示第一行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我写了这段代码:


I have written this code:

require("config.php");

$rows = array();

$query = "SELECT accountname, bill_city, bill_code, bill_country,  bill_street, latitude, longitude, setype FROM vtiger_accountbillads, vtiger_account, vtiger_geocoding WHERE accountaddressid = accountid AND accountid = crmid";

$result = mysqli_query($connection, $query);

$rows_number = $result->num_rows;
echo $rows_number . "<br/><br/>";

$row = mysqli_fetch_array($result);

if($result->num_rows > 0){
    for($i=0; $i < $rows_number; $i++) {
            $rows[] = array("name" => $row[0],
                        "city" => $row[1],
                        "code" => $row[2],
                        "country" => $row[3],
                        "street" => $row[4],
                        "latitude" => $row[5],
                        "longitude" => $row[6],
                        "type" => $row[7]);
    }
}

$json = json_encode($rows);
print $json;

mysqli_free_result($row);
mysqli_close($connection);

我正在尝试使用上面代码中编写的查询来获取多个数据,但它显示了第一行 47 次.为什么?我究竟做错了什么?谢谢!

I'm trying to fetch several data using the query written in the code above, but it displays the first row 47 times. Why? What am I doing wrong? Thanks!

推荐答案

需要遍历 MySQL 返回的结果集.这意味着为该结果集的每一行调用 mysqli_fetch_array().你可以使用 while 循环来做到这一点:

You need to iterate through the result set returned by MySQL. That means calling mysqli_fetch_array() for each row of that result set. You can do that using a while loop:

while($row = mysqli_fetch_assoc($result)) {
    $rows[] = array("name"      => $row['name'],
                    "city"      => $row['bill_city'],
                    "code"      => $row['bill_code'],
                    "country"   => $row['bill_country'],
                    "street"    => $row['bill_street'],
                    "latitude"  => $row['latitude'],
                    "longitude" => $row['longitude'],
                    "type"      => $row['setype']);
    }
}

这篇关于mysqli fetch 数组只显示第一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆