【问题标题】:Add friend system failure添加好友系统失败
【发布时间】:2014-05-11 17:34:33
【问题描述】:

我正在创建一个添加朋友系统,以便人们可以通过他们的个人资料相互关注。我还没有做造型,这是纯粹的功能。我的问题如下:“发送邀请”按钮一直显示,即使邀请已经发送。老实说,我不知道为什么。我在 phpmyadmin 中测试了查询,它工作正常。有 2 个用户的条目。

以下是查询:

$user_id = $_SESSION['user_id'];
//SEARCH THE USERNAME OF THE LOGGED IN USER
$stmt = $mysqli->prepare("SELECT username, email FROM members WHERE user_id = ? ");
$stmt->bind_param('s', $user_id); 
$stmt->execute();  
$stmt->store_result();
$stmt->bind_result($my_username, $my_email);
$stmt->fetch();
$stmt->close();

$username = safe($mysqli,$_GET["username"]);
//LOOK UP THE DETAILS OF THE USERNAME
$stmt = $mysqli->prepare("SELECT user_id, email FROM members WHERE username = ? ");
$stmt->bind_param('s', $username); 
$stmt->execute();  
$stmt->store_result();
$stmt->bind_result($userid, $email);
$stmt->fetch();
$stmt->close();

//Sent invite <---IT KEEPS SAYING THIS EVENTHOUGH THERE'S AN ACTIVE ENTRY
$friendQuery1 = mysqli_query($myqsli,"SELECT * FROM friends WHERE friend_one = '$my_username' AND friend_two = '$username' AND invite_sent = 0 ");

//Invite sent, awaiting acceptance
$friendQuery2 = mysqli_query($myqsli,"SELECT * FROM friends WHERE friend_one = '$my_username' AND friend_two = '$username' AND invite_sent = 1 ");

//Invite accepted. User is friends.
$friendQuery3 = mysqli_query($myqsli,"SELECT * FROM friends WHERE friend_one = '$my_username' AND friend_two = '$username' AND invite_accepted = 1 ");

这是html部分

<body>
DEBUG:
This is the profile page from <b><?php echo $username ?></b><br />
Emailadres: <b><?php echo $email ?></b><br />
<br />

<?php if (login_check($mysqli) == true) : ?> 

<?php if  (mysqli_num_rows($friendQuery1) == 0) {
    echo '<div style="width: 150px; text-align:center; border:1px solid #cecece;">Add friend</div>';
}

if (mysqli_num_rows($friendQuery2) == 1) {
    echo '<div style="width: 200px; text-align:center; border:1px solid #cecece;">Invite sent</div>';
}

if (mysqli_num_rows($friendQuery3) == 1) {
    echo '<div style="width: 200px; text-align:center; border:1px solid #cecece;">Already Friends</div>';
}
?>

<br>
<br>
<br>
<b>CURRENT LOGGED IN USER: <?php echo $user_id ?> AKA USERNAME: <?php echo $my_username ?></b>

<?php endif; ?>

Bye.

</body>

所以基本上“添加朋友”按钮会一直显示,尽管有一个条目将邀请发送设置为“1”。这意味着它应该显示第二个查询,即“INVITE SENT”按钮。

我无法弄清楚这里有什么问题:')

编辑 #1 - SAFE() 函数

function safe($mysqli,$value) { 
   return mysqli_real_escape_string($mysqli,$value); 
}

【问题讨论】:

  • 你的safe()方法是做什么的?
  • 我已经编辑了关于这个的帖子:)
  • 尝试在您的 HTML 中将 '==' 替换为 '===' 以捕获任何返回 false 而不是零行的失败查询。
  • 无关:如果您使用语句(很好!),请使用正确的类型。 user_id 好像是一个int,所以不要用's',用'i'
  • @Rudie 谢谢你的提示!我从昨天开始使用它们,所以我对它还很陌生!再次感谢您的反馈!

标签: php mysqli


【解决方案1】:

我自己解决了。我阅读了代码的每一小部分,发现我使用了 $myqsli 而不是 $mysqli。因此,它没有显示任何内容。

【讨论】:

  • 开启你的错误报告!在 php.ini 中,查找 display_errorserror_reporting
猜你喜欢
  • 2020-09-01
  • 2020-09-01
  • 1970-01-01
  • 2011-04-29
  • 2011-08-16
  • 2011-10-31
  • 2015-07-25
  • 2017-03-24
  • 1970-01-01
相关资源
最近更新 更多