2014-08-29 98 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