关闭数组获取PHP

时间:2018-06-23 15:38:31

标签: php sql

我有以下SQL表:

+----------------+----------------+------------------+
| country        | region         | city             | 
+----------------+----------------+------------------+
| South Africa   | KwaZulu-Natal  | Durban           | 
| South Africa   | Gauteng        | Johannesburg     |
| South Africa   | Gauteng        | Tshwane          |
| South Africa   | KwaZulu-Natal  | Pietermaritzburg | 
| United Kingdom | Greater London | City of London   |
| United Kingdom | Greater London | Wimbledon        |
+----------------+----------------+------------------+

我在PHP中的代码:

$result = $link -> query( "select * from city" );

$row = $result -> fetch_array();
echo $row['city'];
// Output: Durban

$row1 = $result -> fetch_array();
echo $row1['city'];
// Output: Johannesburg

当我尝试从一个结果中获取数组时,它将那些数组从其他变量中排除。这意味着如果我将1个表行提取到数组中并将其放入变量$ row中,则无法在代码中的其他任何地方使用它。很难解释,但出于循环目的我需要它。
所以我的问题是,是否有可能重置结果获取。这样上例中的两个输出都将是“ Durban”
预先感谢。

2 个答案:

答案 0 :(得分:1)

如果您需要在同一脚本中多次使用查询结果,请先将所有结果卸载到本地数组中,然后根据需要多次使用该数组。

$result = $link -> query( "select * from city" );
$cities = $result->fetch_all(MYSQLI_ASSOC);

现在$cities包含所有结果,您可以多次重复使用它。

echo $cities[0]['city'];  // = Durban

或循环

foreach ($cities as $city){
    echo $city['city'];
}

答案 1 :(得分:0)

使用mysqli_result::data_seek

$result->data_seek(0);