【问题标题】:How to get one column of mysql_query results into an array?如何将一列 mysql_query 结果放入数组中?
【发布时间】:2012-01-12 14:35:41
【问题描述】:

我正在使用mysql_query() 从 MySQL 表中选择一个列。是否已经有将结果放入数组的函数,还是我必须使用 mysql_fetch_array() 之类的东西遍历所有结果?

【问题讨论】:

  • mysql_fetch_array() 返回一个数组本身。您可以将数组设置为关联或数字。 array mysql_fetch_array ( resource $result [, int $result_type = MYSQL_BOTH ] )
  • @UdaySawant 我想要一列,而不是一行。

标签: php mysql


【解决方案1】:

你必须迭代。

如果您进入 21 世纪并使用 mysqli,则有一个 mysqli_fetch_all() 函数....您将能够使用准备好的语句

【讨论】:

  • 现在如果你进入 22 世纪并使用 PDO... ;o)
  • @deceze - 我编辑了它......最初我说的是 20 世纪,对 PDO 有评论......但决定一次迈出一步可能对 OP 的理智更友好
【解决方案2】:

你可以用 mysqli_fetch_all 和 array_column 做到这一点

$r = mysqli_query($c,"SELECT bug_name FROM bugs WHERE color='red'");
$bug_names = array_column(mysqli_fetch_all($r,MYSQLI_ASSOC),"bug_name");

【讨论】:

    【解决方案3】:

    没有类似的内置功能,您需要手动执行此操作。

    【讨论】:

      【解决方案4】:

      可以使用mysql_result函数还是需要做一些编码

      mysql_result($result,$row_num,$fieldname) ;
      

      检索 $row_num 'th 列 $field_name 字段。

      以下sn-p可以作为例子

      $con =mysql_connect($host,$uname,$passwd);
      mysql_select_db($dbname,$con);
      $result = mysql_query($query,$con);
      $arr = array();
      $numrows = mysql_num_rows($result);
      for($i=0;$i<$numrows;$i++) {
          $arr[] = mysql_result($result,$i,$fieldname);
      }
      

      这会将列 $fieldname 的每个元素存储到 数组 $arr

      【讨论】:

      • 不过,我想避免这种迭代。
      猜你喜欢
      • 1970-01-01
      • 2020-07-25
      • 2018-12-03
      • 1970-01-01
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多