【问题标题】:Closing array fetching php关闭数组获取php
【发布时间】:2018-06-23 15:38:31
【问题描述】:

我有以下 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 我不能在代码中的其他任何地方使用它和其他变量。很难解释,但我需要它用于循环目的。
所以我的问题是是否有可能重置结果获取。所以上面示例中的两个输出都是“德班”
提前致谢。

【问题讨论】:

  • 为什么你总是想要相同的结果???

标签: php sql


【解决方案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'];
}

【讨论】:

    【解决方案2】:

    使用mysqli_result::data_seek:

    $result->data_seek(0);
    

    【讨论】:

      猜你喜欢
      • 2020-12-30
      • 1970-01-01
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多