我有一个拥有用户ID的数组。我想爆炸该数组并通过该用户ID从数据库中获取所有内容。它每个用户只获取一个条目,而不是该用户的每个条目。我错过了什么吗?谢谢!
编辑:很抱歉这么稀疏,这是一个漫长的挫折之夜,我会详细说明。
if ( $follower_array != "" )
{
$followArray = explode(",", $follower_array);
$followCount = count($followArray);
$i = 0;
$display .= "<table>";
foreach( $followArray as $key => $value )
{
$i++;
$sql = mysql_query(" SELECT * FROM database WHERE mem_id='$value'
ORDER BY bc_date ASC
LIMIT 50
") or die ("error!");
while ( $row = mysql_fetch_assoc($sql) )
{
$mem_id = $row['mem_id'];
$content = $row['content'];
$display .= "<td>' .$content. '</td></tr>";
}
display .= "</table>";
}
数据库表如下:
members|content
---------------
id |id
follower_array |mem_id
|content
follwer数组看起来像“4,5,6,7”等。
我在虚拟数据中设置了四个成员ID。它检索$ followArray
中的那些输出
然后停下来。当每个用户有更多内容时,它仅为每个成员检索一个内容。谢谢,我希望我把它清理干净。
答案 0 :(得分:1)
这是因为foreach
只增加$i
一次,尝试使用$key
,因为每次foreach
循环运行时它会自动增加,因为它是数组中每个项目的索引。
答案 1 :(得分:0)
尝试将mysql_fetch_array更改为mysql_fetch_assoc
此外,请确保数据库中有多个符合条件的行。您应该尝试使用navicat或mysql工作台等程序直接查询数据库...
那应该有帮助...
更新
输出是否会因为缺少开头的tr标签而倾斜?此外,你有单引号终止以双引号开头的字符串....修复它。
if ( $follower_array != "" ) {
$followArray = explode(",", $follower_array);
$followCount = count($followArray);
$i = 0;
$display .= "<table>";
foreach( $followArray as $key => $value ) {
$i++;
$sql = mysql_query("
SELECT *
FROM database
WHERE mem_id='$value'
ORDER BY bc_date ASC
LIMIT 50
") or die ("error!");
while ( $row = mysql_fetch_assoc($sql) ) {
$mem_id = $row['mem_id'];
$content = $row['content'];
$display .= "<td><tr>" .$content. "</td></tr>";
}
display .= "</table>";
}
答案 2 :(得分:0)
可能您在错误的列上使用WHERE条件。 $ sql说SELECT ALL FROM DATABASE WHERE ENTRY ID = $ VALUE, 您的查询中使用的ID是条目ID,您必须将id更改为user_id = $ value
SELECT * FROM database WHERE user_id='$value' LIMIT 50
答案 3 :(得分:0)
$searchSQL = "select * from database where id=$value'";
$result = mysql_query($searchSQL);
while ($row = mysql_fetch_array($result))
{
$id= $row['id'];
$name=$row['name'];
$phn=$row['phn'];
$sal=$row['sal'];
}
这将获取您的数据,您可以回显您想要显示的位置