【问题标题】:SELECT array from mysql table and print从 mysql 表中选择数组并打印
【发布时间】:2015-02-17 17:56:18
【问题描述】:

我的表中有一个包含如下数组的列:

1,4,2,8,4,5,7

如何选择这些数字并分别打印?

Item: 1
Item: 4
Item: 2
Item: 8
Item: 4
Item: 5
Item: 7

我尝试过的:

$result = mysql_query('SELECT * FROM test');

$arr = array();

while(($row = mysql_fetch_array($result))) {
    $arr = array_merge($arr , explode(',', $row['item']));
    echo "Item: " . $arr . "<br>";
}

结果:

Item: Array
Item: Array
Item: Array
Item: Array
Item: Array
Item: Array
Item: Array

谁能帮帮我?

【问题讨论】:

  • 你基本上是在回显一个数组($arr = array() ===&gt; echo $arr),所以也许重新开始?
  • 不要使用 mysql 函数,使用 mysqliPDO 进行数据库查询。 Here is a good link why.

标签: php mysql sql arrays select


【解决方案1】:

您最大的问题是尝试一次回显整个数组,而不是一次回显数组的索引。

除非您打算在 while 循环之后再次使用所有行,否则您不需要 array_merge,所以把它去掉。您需要在 while 循环中使用 foreach 来循环通过 explode 创建的数组。

while(($row = mysql_fetch_array($result))) 
{
    $arr = explode(',', $row['item']);
    foreach ($arr as $key => $value)
    {
       echo "Item [$key]: " . $value . "<br>";
    }
}

(而且你真的应该关闭 mysql_ 到 PDO 或 mysqli_,因为 mysql_ 已被弃用。)

【讨论】:

    【解决方案2】:

    尝试:

    $arr = explode(',', $row['item']);
    foreach($arr as $single){
      echo "item: $single";
    }
    

    【讨论】:

      【解决方案3】:

      你快到了。我希望这会产生您期望的结果。在您的问题中,尚不清楚数据的存储方式。

      如果所有数据都在一行中,则会这样做:

      $result = mysql_query('SELECT item  FROM test');
      $arr = array(); 
      $row = mysql_fetch_array($result);
      $arr = explode(',', $row['item']);
      foreach ($arr as $item) {
          echo "Item: " . $item . "<br>";
      }
      

      【讨论】:

        猜你喜欢
        • 2012-12-23
        • 2021-01-24
        • 1970-01-01
        • 2013-11-08
        • 1970-01-01
        • 1970-01-01
        • 2014-07-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多