开发者

While loop only retrieving one result

开发者 https://www.devze.com 2023-03-16 09:15 出处:网络
UPDATE: Still can\'t seem to figure it out. If anyone can lend a hand, it would be appreciated ^^. I am having a problem and I\'m not sure where my code is breaking down. I have a \'follow\' functio

UPDATE: Still can't seem to figure it out. If anyone can lend a hand, it would be appreciated ^^.

I am having a problem and I'm not sure where my code is breaking down. I have a 'follow' function where you can follow different registered users. Their userID's of who you followed are stored in an array (follower_array). It's retrieving each member from the array, but of each member that's followed instead of displaying all the content, it's only displaying the 1 latest one from each member.

$broadcastList= "";

if ( $follower_array != "" ) {

  $followArray = explode(",", $follower_array);
  $followCount = count($followArray);   
  $i = 0;
  $broadcastList .= "<table>";

  foreach( $followArray as $key => $value ) {

    $i++;
    $sqlName = mysql_query("
        SELECT username, fullname 
          FROM members 
         WHERE id='$value' 
         LIMIT 1
    ") or die ("error!");

    while ( $row = mysql_fetch_array($sqlName) ) {
      $friendUserName = substr($row["username"],0,12);
    }

    $sqlBroadcast = mysql_query("
        SELECT mem_id, bc, bc_date, device 
          FROM broadcast 
         WHERE mem_id='$value' 
      ORDER BY bc_date ASC 
         LIMIT 50
    ") or die ("error!");

    while ( $bc_row = mysql_fetch_array($sqlBroadcast) ) {
      $mem_id  = $bc_row['mem_id'];
      $bc      = $bc_row['bc'];
      $dev     = $bc_row开发者_高级运维['device'];
      $bc_date = $bc_row['bc_date'];
      $broadcastList .= "<td><a href='member.php?id=' .$value. ''>
      $friendUserName</a> &bull; $when_bc &bull; Via: $dev <b>$bc</b></td></tr>";
    }
    broadcastList .= "</table>";
  }
}

So, it's retrieving the members entirely, but not more than their single latest "broadcast." Any insight would be appreciated.. thank you!


Here's what's happening:

while( $row = some_next_result_function() ){
    $result = $row["thing"];
}

Is going to overwrite $result every time, so you'll only end up with the last result.

You need to make a list and append to it instead.


I'm gonna take a shot in the dark:

$broadcastList .= "<td><a href='member.php?id=' .$value. ''>
  $friendUserName</a> &bull; $when_bc &bull; Via: $dev <b>$bc</b></td></tr>";

That line pretty much misses a starting "tr" element. Are you sure the content isn't shown simply because of the faulty html markup?

Also:

broadcastList .= "</table>";

You're missing the $ there ;).

I don't know if this fixes it or even helps you; but I sure hope so :). Alternatively; you can also check the HTML source to see if the entries really aren't there (see first remark).

0

精彩评论

暂无评论...
验证码 换一张
取 消