php - if else 在 $_post isset 内

标签 php mysql if-statement

我有一份由体育教练填写的表格。教练可以执教多种运动项目,运动员也可以参加多种运动项目。因此,如果教练想要将一名球员添加到球队名单中,我需要检查该球员是否存在,如果存在,则只需将球员 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/

相关文章:

php - Propel ORM PHP LIKE * 语句

php - PHP 中存储过程的问题

php - OR 在 PHP IF 语句中

php - PHP和Xpath-从内部文本获取节点

php - 在 PHP 中将 CSV 文件解析到 MySQL DB

php - 字段列表中的列 'nid' 是 Drupal6 中的不明确查询

mysql - 优化 update sql 语句,包含 2 个内部选择

php - 在类似查询的地方使用 concat

c++ - 最优雅的方式来写一次 'if'

javascript - Regex.test(value) 在记录时返回 true,但在 if 语句中返回 false