2014-08-29 101 views
0

本质上,数据应如下所示,但是作为包含其信息的每个用户的一个数组。在完成循环之后,它应该被打包为JSON。在使用PHP循环后将数组附加到输出到JSON

前言

配合使用的print_r我得到它应该是什么样子用一些幽默的样本数据前标签:

 
User 1 is following: 

Array 
(
    [0] => Array 
     (
      [first] => Hugh 
      [last] => Janus 
      [bg] => /resources/bg/2/b.png 
      [prof_pic] => /resources/profilepics/2/b.jpg 
      [bio] => 50% proctologist, 50% baker. 
     ) 

) 
Array 
(
    [0] => Array 
     (
      [first] => Andrew 
      [last] => Dickens 
      [bg] => /resources/bg/3.c.jpg 
      [prof_pic] => /resources/profilepics/3/c.jpeg 
      [bio] => Therapists are pretty cool. 
     ) 

) 
Array 
(
    [0] => Array 
     (
      [first] => Anita 
      [last] => Dickson 
      [bg] => /resources/bg/4/d.jpg 
      [prof_pic] => /resources/profilepics/4/d.JPG 
      [bio] => Just another barista. 
     ) 

) 

从本质上讲,一切都需要回来作为一个JSON项目,有人可以使用提供的信息用于任何目的。在下面的代码

此代码从表中选择所有用户ID

背景“追随者”,其中谁是下一个人的人等于FB和谁拥有友谊的人是为fA。在这种情况下,用户标识1正在试图查看他们关注的每个人的页面,包括他们的个人资料照片,背景图片,名字,姓氏和生物。 JSON输出的数据将被格式化为另一个文件,但这只是用来管理原始数据。

$ dbh是PDO数据库连接,代码使用准备好的语句来提高安全性。

代码

$flingJSON = 0; 
$userid = "1"; 
$result = $dbh->prepare('SELECT fA 
    FROM followers 
    WHERE fB=:userid'); 
$result->bindParam(':userid', $userid); 
$result->execute(); 
$rawData = $result->fetchAll(PDO::FETCH_ASSOC); 
foreach($rawData as $following) { 
    $followingID = $following['fA']; 
    $getInfoFling = $dbh->prepare('SELECT first, last, bg, prof_pic, bio 
     FROM users 
     WHERE id=:flingID 
     '); 
    $getInfoFling->bindParam(':flingID', $followingID); 
    $getInfoFling->execute(); 
    $flingJSON = $getInfoFling->fetchAll(PDO::FETCH_ASSOC); 
    echo "<pre>"; 
    print_r($flingJSON); 
    echo "</pre>"; 
} 

你的帮助是提前极大的赞赏和感谢一个你会得到的文档中呼喊出此文件。

回答

1

这应该返回一个数组与用户的所有信息:

//Create empty data array 
$flingData = array(); 
$userid = "1"; 
$result = $dbh->prepare('SELECT fA 
    FROM followers 
    WHERE fB=:userid'); 
$result->bindParam(':userid', $userid); 
$result->execute(); 
$rawData = $result->fetchAll(PDO::FETCH_ASSOC); 
foreach($rawData as $following) { 
    $followingID = $following['fA']; 
    $getInfoFling = $dbh->prepare('SELECT first, last, bg, prof_pic, bio 
     FROM users 
     WHERE id=:flingID 
     '); 
    $getInfoFling->bindParam(':flingID', $followingID); 
    $getInfoFling->execute(); 
    //Append user info to data array 
    $flingData[] = $getInfoFling->fetch(PDO::FETCH_ASSOC); 
} 

//Create JSON string 
$flingJSON = json_encode($flingData); 

echo "<pre>"; 
print_r($flingJSON); 
echo "</pre>"; 
+0

这似乎这样的伎俩。我一定会在文档中感谢您的帮助。 – montelc0 2014-08-29 23:38:12