我有一份由体育教练填写的表格。教练可以执教多种运动项目,运动员也可以参加多种运动项目。因此,如果教练想要将一名球员添加到球队名单中,我需要检查该球员是否存在,如果存在,则只需将球员 ID 添加到名单表中,而不是再次将球员添加到球员表中。以下是我想要实现的目标的最佳表示。
if (isset($_POST['submit'])) {
$email = mysqli_real_escape_string($con2, $_POST['email']);
$sql1 = "SELECT id, email FROM users WHERE email='$email'";
$result = $con2->query($sql1);
if ($result->num_rows > 0) {
//here is where I want to just add specific information
} //I have tried if $result == 0 and else if $result == 0
//here is where I would add the user if the email doesn't exist.
} <-- //I feel like the issue is the if (isset($_POST['submit'])) which end just before this line.
因此,根据 (isset($_POST['submit'])) 结尾的位置,我得到了混合结果。我试图弄清楚如何保留设置的 $_POST 但不执行 in 中的所有内容。我对此很了解,所以如果我的问题看起来很基本,请原谅我。感谢您花时间查看我的问题。
其他信息 所以我在获取行数时没有问题。问题是,即使电子邮件存在,用户也会在用户表中重复,但在其余表中用户不会重复。基本上 (isset($_POST['submit'])) 内部的所有内容都会运行,这是有意义的,因为当提交表单时,它的计算结果为 true。
本质上,我想在 (isset($_POST['submit'])) 内部运行 if else ,如果有意义的话,两者都不会被执行。
最佳答案
您应该按照@tadman的建议使用参数化查询。
但是,我不会批评您的代码,而是建议尝试该功能:
mysqli_num_rows($result)
这应该返回结果集中的行数。请告诉我们这是否是您想要的。
关于php - if else 在 $_post isset 内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37929651/