Mysql结果为数组

时间:2013-02-09 08:55:05

标签: php mysql arrays

我有一个php函数,可以在表格为fulfield的情况下与表格进行交互并获取列中的所有字段。因此该函数返回一组元素。 问题是我希望这个函数返回一个我可以解析和显示的数组。 以下代码:

function get_approved_pictures(){
    $con = mysql_connect("localhost","valentinesapp","fBsKAd8RXrfQvBcn");
    if (!$con)
    { 
      echo 'eroare de conexiune';
      die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("mynameisbrand_valentineapp", $con);

    $all = (mysql_query("SELECT picture FROM users WHERE approved = 1")); 

    $row=mysql_fetch_assoc($all);
     //  mysql_close($con);

    return $row['picture']; 
  }

我哪里错了?

4 个答案:

答案 0 :(得分:3)

您需要使用循环遍历查询提取的所有数据:

$pictures=array();
while($row=mysql_fetch_assoc($all))
{
    $pictures[]=$row['picture']; 
}
return $pictures;

答案 1 :(得分:0)

这样做

$all = mysql_query("SELECT picture FROM users WHERE approved = 1"); 
$arr = array(); // Array to hold the datas
while($row = mysql_fetch_array($all)) {
  $data = $row['picture'];
  array_push($arr,$data);
}
return $arr;

您现在可以将其插入到函数中并返回值。

注意:正在折旧mysql_ *函数。尽量避免它们。

答案 2 :(得分:-1)

为了多样性并让您了解如何使用PDO而不是弃用mysql_*,这就是您的功能可能如下所示:

function get_approved_pictures(){
    $db = new PDO('mysql:host=localhost;dbname=mynameisbrand_valentineapp;charset=UTF-8',
                  'valentinesapp', 'password');
    $query = $db->prepare("SELECT picture FROM users WHERE approved = 1");
    $query->execute();
    $pictures = $query->fetchAll(PDO::FETCH_ASSOC);
    $db = null;
    return $pictures;
}

免责声明:为简洁而故意省略所有错误处理

答案 3 :(得分:-1)

为了多样性并让你对事物的方式有所了解而不是不方便和冗长的PDO,这就是你的功能可能如下:

function get_approved_pictures(){
    global $db;
    return $db->getCol("SELECT picture FROM users WHERE approved = 1");
}

免责声明:所有错误处理都已启动并正在运行,但故意将其封装到隐私的私有方法中。