0

如果条件是 fulfield,我有一个 php 函数可以查询表并获取列中的所有字段。所以该函数返回一个元素的集合。问题是我希望这个函数返回一个我可以解析和显示的数组。下面的代码:

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

4 回答 4

3

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

$pictures=array();
while($row=mysql_fetch_assoc($all))
{
    $pictures[]=$row['picture']; 
}
return $pictures;
于 2013-02-09T09:00:04.557 回答
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_* 函数正在折旧。尽量避免它们。

于 2013-02-09T09:03:34.677 回答
-1

为了多样性并让您了解如何使用PDO而不是 deprecated 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;
}

免责声明:为简洁起见,有意省略所有错误处理

于 2013-02-09T09:28:45.747 回答
-1

为了多样性并让您了解事情必须如何而不是不方便和冗长的 PDO,您的函数可能看起来像这样:

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

免责声明:所有错误处理都已启动并运行,但有意封装到私有方法中以实现不可见。

于 2013-02-09T09:41:09.610 回答