【发布时间】:2013-02-28 05:17:37
【问题描述】:
我一直在开发一个社交网络,我有一个粉丝页面表,用户可以为他们最喜欢的乐队或名人创建个人资料,还有一个名为朋友的表,他们可以订阅粉丝页面。然后,我希望请求出现在粉丝页面管理员的通知中,以除外。 在第一个 sql 查询之后,它返回具有多个值的粉丝页面,但是如果我回显下一个 $sql 查询,它表明它只选择一个结果来查询而不是全部。
所以基本上我需要查询用户登录的所有粉丝页面($log_username)的粉丝页面表,然后我需要获取这些粉丝页面并查询朋友表以了解是否有人请求订阅用户的粉丝页面??
感谢您的帮助迈克尔
<?php
$fanpage_requests = '';
$fansql = "SELECT created_by, fanpage_name FROM `fanpages` WHERE created_by = '$log_username' ";
$fanquery = mysqli_query($db_conx, $fansql);
$fannumrows = mysqli_num_rows($fanquery);
if($fannumrows < 1){
$fanpage_requests = 'No friend requests';
} else {
while($row = mysqli_fetch_array($fanquery, MYSQLI_ASSOC)) {
$fanpage_name = $row["fanpage_name"];
$created_by = $row["created_by"];
$fansubSql = "SELECT * FROM friends WHERE user2='$fanpage_name' AND accepted='0' ORDER BY datemade ASC";
$fansubQuery = mysqli_query($db_conx, $fansubSql);
$fansubNumrows = mysqli_num_rows($fansubQuery);
//print_r ($fansubNumrows);
if($fansubNumrows < 1){
$fanpage_requests = "blah blah";
}
print_r ($fansubNumrows);
while ($fansubRow = mysqli_fetch_array($fansubQuery, MYSQLI_ASSOC)) {
$fansubreqID = $fansubRow["id"];
$fansubuser1 = $fansubRow["user1"];
$fansubdatemade = $fansubRow["datemade"];
$fansubdatemade = strftime("%B %d", strtotime($fansubdatemade));
$fansubthumbquery = mysqli_query($db_conx, "SELECT avatar FROM users WHERE username='$fansubuser1' LIMIT 1");
$fansubthumbrow = mysqli_fetch_row($fansubthumbquery);
$fansubuser1avatar = $fansubthumbrow[0];
$fansubuser1pic = '<img src="user/'.$fansubuser1.'/'.$fansubuser1avatar.'" alt="'.$fansubuser1.'" class="user_pic">';
if($fansubuser1avatar == NULL){
$fansubuser1pic = '<img src="images/avatardefault.jpg" alt="'.$fansubuser1.'" class="user_pic">';
}
$fanpage_requests .= '<div id="friendreq_'.$fansubreqID.'" class="friendrequests">';
$fanpage_requests .= '<a href="user.php?u='.$fansubuser1.'">'.$fansubuser1pic.'</a>';
$fanpage_requests .= '<div class="user_info" id="user_info_'.$fansubreqID.'">'.$fansubdatemade.' <a href="user.php?u='.$fansubuser1.'">'.$fansubuser1.'</a> requests friendship<br /><br />';
$fanpage_requests .= '<button onclick="fanReqHandler(\'accept\',\''.$fansubreqID.'\',\''.$fansubuser1.'\',\'user_info_'.$fansubreqID.'\')">accept</button> or ';
$fanpage_requests .= '<button onclick="fanReqHandler(\'reject\',\''.$fansubreqID.'\',\''.$fansubuser1.'\',\'user_info_'.$fansubreqID.'\')">reject</button>';
$fanpage_requests .= '</div>';
$fanpage_requests .= '</div>';
}
}
}
?>
print_r 输出现在是 001110,我得到 blah blah
【问题讨论】:
-
您的第一个循环设置为
$fanpage_name,但您在执行任何其他操作之前将其关闭,因此所有其他操作都发生在该循环之外,只需使用$fanpage_name的最后一个值。您需要稍后关闭循环。 -
我认为也是如此,但我将 end } 移到代码的末尾,我仍然只得到 1 个结果(这是一个不同的结果,它不是一个订阅的结果请求)基本上第一个查询返回(fan1,fan2,fan3,fan4)由登录用户创建的所有页面,它返回由创建并具有订阅请求的fan4,但将}移动到代码末尾给了我fan1是创建的由登录用户但没有订阅请求?
-
迈克尔,你能附上你得到的输出吗?
-
我得到了,SELECT * FROM friends WHERE user2='fan4' AND accepted='0' ORDER BY datemade ASC from the $fanpage_requests = "$friendsSql";代码行
-
那么你只得到这一行输出吗?如果是这样,那么第一个查询(来自
fanpages)只返回一行,所以我想说只有fanpage_name'fan4' 满足第一个查询条件。$log_username创建了多少粉丝页面?