如果主键存在于不同的表中,php mysql尝试使用empty在表中仅添加新记录
我试图只允许在使用empty的表中存在party_id时通过表单提交,这是我目前的代码,即使没有party_id,它仍然允许所有内容通过表单提交。 任何帮助都会很好如果主键存在于不同的表中,php mysql尝试使用empty在表中仅添加新记录,php,mysql,sql,forms,xampp,Php,Mysql,Sql,Forms,Xampp,我试图只允许在使用empty的表中存在party_id时通过表单提交,这是我目前的代码,即使没有party_id,它仍然允许所有内容通过表单提交。 任何帮助都会很好 if($_SERVER["REQUEST_METHOD"]== "POST") { $party_id = (int)$_POST["partyid"]; $name = $_POST["name"]; $date = $_POST["date"]; $length =
if($_SERVER["REQUEST_METHOD"]== "POST") {
$party_id = (int)$_POST["partyid"];
$name = $_POST["name"];
$date = $_POST["date"];
$length = (int)$_POST["length"];
$sql = "SELECT * FROM `party` WHERE `party_id`='" . $party_id . "'";
$res = mysqli_query($link, $sql);
if(empty($party_id)) { #Were any records found?
print '<p>No Parties with that ID found! please press the back button to select another party</p>';
} else {
$record = mysqli_fetch_assoc($res);
$party_name = $record["party_name"];
$price = $record["price"];
$cost = $price * $length;
$bookable = true;
$sql2 = "SELECT * FROM `reservations`" or die("Unable to connect to database");
一种更简单的方法可能是检查查询是否返回了类似这样的结果
if($_SERVER["REQUEST_METHOD"]== "POST") {
$party_id = (int)$_POST["partyid"];
$name = $_POST["name"];
$date = $_POST["date"];
$length = (int)$_POST["length"];
$sql = "SELECT * FROM `party` WHERE `party_id`='$party_id'";
$res = mysqli_query($link, $sql);
if ( mysqli_num_rows($res ) == 0 ) {
print '<p>No Parties with that ID found! please press the back button to select another party</p>';
} else {
$record = mysqli_fetch_assoc($res);
$party_name = $record["party_name"];
$price = $record["price"];
$cost = $price * $length;
$bookable = true;
$sql2 = "SELECT * FROM `reservations`" or die("Unable to connect to database");
你知道你的$party\u id没有保存SELECT查询的结果吗?它保存了$party POST[partyid]的值。我有点新手对不起,$res是否保存了结果?我尝试过使用$res,但它仍然允许所有内容通过,是因为我正在查询所有列吗?它不认为它是空的吗?没有$res持有mysqli_query生成的结果集的句柄,如果所有其他操作都失败了,这是当然的最后手段。对于这个Riggs,我一直得到这些错误吗?警告:mysqli_num_rows期望参数1是mysqli_result,对象在第23行的E:\xampp\htdocs\Party\reservations4.php中给定找不到具有该ID的参与方!请按“上一步”按钮选择另一方,无论它是否有身份证,都不会让任何东西通过?呜呜,我的答案有点输入错误。我修好了。应该是mysqli_num_rows$res非常感谢您的帮助:-不客气。如果答案有助于提高投票率。如果它回答了你的问题,接受答案是正常的