0

テーブルに問い合わせて、条件がフルフィールドの場合に列のすべてのフィールドを取得する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を使用する方法の感覚を与えるために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 に答える