2016-11-19 83 views
0

我被困在一個可能非常簡單的事情......只是無法弄清楚。我有這個:echo "Pending Friends Are - " . $pending_friend_1 . "<br>";在我的循環中。我需要$pending_friend_1在輸出它的循環內,否則我不會得到完整的結果循環。我如何取出文本Pending Friends Are -,以便與列表拼成一個整體。我試圖做這樣的事情:設置php循環之外的文本

等待的朋友們 -

鮑勃

喬治

<div id="main"> 
<?php 
//Display pending friends 
    $friends_pending_sql = " 
     SELECT * 
     FROM friends 
     WHERE friend_two = ? 
     AND status = ? 
    "; 
    $pending_friend_count_stmt = $con->prepare($friends_pending_sql); 
    $pending_friend_count_stmt->execute(array($user_id, $status_one)); 
    $pending_friend_rows = $pending_friend_count_stmt->fetchAll(PDO::FETCH_ASSOC); 
    echo '<div id="pending-request_count">Total Pending Friends -' . $total_pending_count . '</div>'; 
    foreach ($pending_friend_rows as $pending_friend_row) { 
     $pending_friend_1   = $pending_friend_row['friend_one']; 
     $pending_friend_2   = $pending_friend_row['friend_two']; 
     $pending_friend_status  = $pending_friend_row['status']; 
     $pending_friend_status_date = $pending_friend_row['date']; 
     $total_pending_friends  = $pending_friend_1 . "<br>" . $pending_friend_2; 

     if ($pending_friend_2 == $user_id) { 

      echo "Pending Friends Are - " . $pending_friend_1 . "<br>"; 
     } 
     else if ($pending_friend_1 = $user_id) { 
      echo "Friend Requests waiting for approval - " . $total_requests_sent_count . "<br>"; 
     } 
    } 
    echo $friend_status_button; 
    echo $profile_viewer_message; 
?> 
+0

您可以將所有結果保存到數組中並將它們打印在所需的輸出中。 – Manikiran

+0

@Manikiran你能告訴我一個基本的概念,或者指向一個在線例子嗎? – Paul

+0

你可以做這樣的事情。 $ pending_friends = array(); foreach($ desired_array爲$ key => $ value){ $ pending_friends [] = $ value。 '
'; } print_r($ pending_friends); – Amir

回答

1

插入到一個數組

$friends_pending_arr[]=$pending_friend_1; 

然後顯示循環

echo "Pending Friends Are - <br>"; 
    echo implode("<br>",$friends_pending_arr); 

全碼

<div id="main"> 
<?php 
//Display pending friends 
    $friends_pending_sql = " 
     SELECT * 
     FROM friends 
     WHERE friend_two = ? 
     AND status = ? 
    "; 
    $pending_friend_count_stmt = $con->prepare($friends_pending_sql); 
    $pending_friend_count_stmt->execute(array($user_id, $status_one)); 
    $pending_friend_rows = $pending_friend_count_stmt->fetchAll(PDO::FETCH_ASSOC); 
    echo '<div id="pending-request_count">Total Pending Friends -' . $total_pending_count . '</div>'; 
    foreach ($pending_friend_rows as $pending_friend_row) { 
     $pending_friend_1   = $pending_friend_row['friend_one']; 
     $pending_friend_2   = $pending_friend_row['friend_two']; 
     $pending_friend_status  = $pending_friend_row['status']; 
     $pending_friend_status_date = $pending_friend_row['date']; 
     $total_pending_friends  = $pending_friend_1 . "<br>" . $pending_friend_2; 

     if ($pending_friend_2 == $user_id) { 

      $friends_pending_arr[]=$pending_friend_1; 
     } 
     else if ($pending_friend_1 == $user_id) { 
      echo "Friend Requests waiting for approval - " . $total_requests_sent_count . "<br>"; 
     } 
    } 

    echo "Pending Friends Are - <br>"; 
    echo implode("<br>",$friends_pending_arr); 

    echo $friend_status_button; 
    echo $profile_viewer_message; 
?> 
+0

是爆炸一個更好的方法來使用,而不是另一個foreach? – Paul

1

你可以試試這個:

$friends_pending_arr=array(); 
$friends_pending_sql = " 
    SELECT * 
    FROM friends 
    WHERE friend_two = ? 
    AND status = ? 
"; 
$pending_friend_count_stmt = $con->prepare($friends_pending_sql); 
$pending_friend_count_stmt->execute(array($user_id, $status_one)); 
$pending_friend_rows = $pending_friend_count_stmt->fetchAll(PDO::FETCH_ASSOC); 
echo '<div id="pending-request_count">Total Pending Friends -' . $total_pending_count . '</div>'; 
foreach ($pending_friend_rows as $pending_friend_row) { 
    $pending_friend_1   = $pending_friend_row['friend_one']; 
    $pending_friend_2   = $pending_friend_row['friend_two']; 
    $pending_friend_status  = $pending_friend_row['status']; 
    $pending_friend_status_date = $pending_friend_row['date']; 
    $total_pending_friends  = $pending_friend_1 . "<br>" . $pending_friend_2; 

    if ($pending_friend_2 == $user_id) { 
     $friends_pending_arr[]=$pending_friend_1; 
    } 
    else if ($pending_friend_1 == $user_id) { 
     echo "Friend Requests waiting for approval - " . $total_requests_sent_count . "<br>"; 
    } 
} 
echo "Pending Friends Are - "; 
foreach($friends_pending_arr as $friend){echo $friend . "<br>";} 
+0

我得到undefined $的朋友,它拋出和你添加的foreach的錯誤。 – Paul

+0

@Manikiran,你可能還想修正else中不正確的比較if($ pending_friend_1 = $ user_id){:)似乎每個人都錯過了。 – TimBrownlaw

1

似乎有要麼是故意的代碼或的else分支存在的潛在問題外您的代碼,在foreach循環內。 else if ($pending_friend_1 = $user_id) {比檢查平等更重要。也許下面的代碼 - 基本上是你的代碼:只需稍作調整 - 可能會有所幫助。

<?php 
    // OBSERVE THAT THE GLOBAL PART OF YOUR PHP WAS MOVED OUT 
    // FROM THE DIV... YOU DON'T NEED IT WITHIN A HTML DIV 

    // CREATE A STRING TO HOLD PENDING FRIENDS. 
    $strPendingFriends   = ""; 
    $friends_pending_sql  = " 
     SELECT * 
     FROM friends 
     WHERE friend_two = ? 
     AND status = ? 
    "; 
    $pending_friend_count_stmt = $con->prepare($friends_pending_sql); 
    $pending_friend_count_stmt->execute(array($user_id, $status_one)); 
    $pending_friend_rows  = $pending_friend_count_stmt->fetchAll(PDO::FETCH_ASSOC); 
?> 

<div id="main"> 
    <?php if($total_pending_count){ ?> 
    <!-- Display pending friends --> 
    <div id="pending-request_count">Total Pending Friends - <?php echo $total_pending_count; ?></div> 
    <?php } ?> 
    <?php 
     foreach ($pending_friend_rows as $pending_friend_row) { 
      $pending_friend_1   = $pending_friend_row['friend_one']; 
      $pending_friend_2   = $pending_friend_row['friend_two']; 
      $pending_friend_status  = $pending_friend_row['status']; 
      $pending_friend_status_date = $pending_friend_row['date']; 
      $total_pending_friends  = $pending_friend_1 . "<br>" . $pending_friend_2; 

      if ($pending_friend_2 == $user_id) { 
       $strPendingFriends  .= "Pending Friends Are - " . $pending_friend_1 . "<br>"; 
      }else if ($pending_friend_1 == $user_id) { //<== USED '==' THAN '='    
       $strPendingFriends  .= "Friend Requests waiting for approval - " . $total_requests_sent_count . "<br>"; 
      } 
      echo $strPendingFriends; 

     } 
     echo $friend_status_button; 
     echo $profile_viewer_message; 
    ?> 
</div>