2013-02-09 65 views
0

我有一个php函数,它可以间接一个表并获取列中的所有字段,如果条件是fulfield。所以这个函数返回一组元素。 问题是,我想这个函数返回一个数组,我可以解析和显示。 下面的代码:作为数组的Mysql结果

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']; 
    } 

我在哪里错了?

+0

不推荐使用'mysql_'扩展名。使用'mysqli_'或PDO – 2013-02-09 09:00:13

+0

不要连接每个功能的内部。在你的代码开始时只连接一次,然后使用已建立的连接一直到 – 2013-02-09 09:58:46

回答

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_ *函数正在折旧。尽量避免它们。

+0

我不确定为什么这是被投票... :( – Roger 2013-02-09 10:09:32

+0

感谢您的接受 – Roger 2013-02-09 12:34:18

3

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

$pictures=array(); 
while($row=mysql_fetch_assoc($all)) 
{ 
    $pictures[]=$row['picture']; 
} 
return $pictures; 
-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; 
} 

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

-1

为求多样性和给你的东西怎么也得是不是不方便和罗嗦PDO某种意义上说,这是你的函数可能看起来怎么样:

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

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