Php 而循环仅检索一个结果
更新:似乎还没弄明白。如果有人能伸出援手,我将不胜感激 我遇到了一个问题,我不确定我的代码在哪里崩溃了。我有一个“跟踪”功能,您可以跟踪不同的注册用户。您跟踪的用户ID存储在一个数组(follower_数组)中。它从数组中检索每个成员,但在随后的每个成员中,它只显示每个成员的1个最新成员,而不是显示所有内容Php 而循环仅检索一个结果,php,mysql,while-loop,Php,Mysql,While Loop,更新:似乎还没弄明白。如果有人能伸出援手,我将不胜感激 我遇到了一个问题,我不确定我的代码在哪里崩溃了。我有一个“跟踪”功能,您可以跟踪不同的注册用户。您跟踪的用户ID存储在一个数组(follower_数组)中。它从数组中检索每个成员,但在随后的每个成员中,它只显示每个成员的1个最新成员,而不是显示所有内容 $broadcastList= ""; if ( $follower_array != "" ) { $followArray = explode(",", $follower_ar
$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> • $when_bc • Via: $dev <b>$bc</b></td></tr>";
}
broadcastList .= "</table>";
}
}
$broadcastList=”“;
如果($follower\u数组!=“”){
$followArray=分解(“,”,$followArray);
$followCount=计数($followArray);
$i=0;
$broadcastList.=“”;
foreach($followArray作为$key=>$value){
$i++;
$sqlName=mysql\u查询(“
选择用户名、全名
来自成员
其中id=“$value”
限制1
)或死亡(“错误!”);
while($row=mysql\u fetch\u数组($sqlName)){
$friendUserName=substr($row[“username”],0,12);
}
$sqlBroadcast=mysql\u查询(“
选择mem_id、bc、bc_日期、设备
从广播
其中mem_id=“$value”
按bc\U日期ASC订购
限制50
)或死亡(“错误!”);
而($bc\u row=mysql\u fetch\u数组($sqlBroadcast)){
$mem_id=$bc_行['mem_id'];
$bc=$bc_行['bc'];
$dev=$bc_行['device'];
$bc_日期=$bc_行['bc_日期];
$broadcastList.=“&bull;$when_bc&bull;Via:$dev$bc”;
}
广播列表=“”;
}
}
因此,它将检索所有成员,但不超过他们的单个最新“广播”。任何洞察都将不胜感激。。谢谢大家! 发生的事情如下:
while( $row = some_next_result_function() ){
$result = $row["thing"];
}
每次都将覆盖$result
,因此您只能得到最后一个结果
你需要做一个列表,然后添加到列表中。我要在黑暗中拍摄:
$broadcastList .= "<td><a href='member.php?id=' .$value. ''>
$friendUserName</a> • $when_bc • Via: $dev <b>$bc</b></td></tr>";
$broadcastList.=“&bull;$when\u bc&bull;Via:$dev$bc”;
这一行几乎遗漏了起始“tr”元素。您确定内容不会仅仅因为错误的html标记而显示吗
此外:
broadcastList.=”;
您丢失了那里的美元;)
我不知道这是否能解决问题,甚至对你有帮助;但我确实希望如此:)。或者;您还可以检查HTML源代码,看看条目是否真的不存在(请参见第一句话)。编程不是一场竞赛,看您可以在每行中塞进多少内容。将代码块缩进新行(特别是如果您要麻烦使用
{}
),并保持代码正确缩进…对于其他所有有不同想法的人,还有perl-golf。。没有竞争?我以为我会得到一个stackoverflow徽章,用于最长的线路!:)。很抱歉,代码被编辑得更友好了。@Matthew:无意冒犯,但这并没有多大改进。@x3ro:再次编辑。现在这就是它的样子,我…我有一种下沉的感觉,就是这么简单。非常感谢。不幸的是,我更改了$row结果,但仍然只返回1个结果。您故意检索1个friendUserName。您确定该用户有多个广播吗?是的,我为每个用户输入了10个广播的虚拟数据。
broadcastList .= "</table>";