如果主键存在于不同的表中,php mysql尝试使用empty在表中仅添加新记录

如果主键存在于不同的表中,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 =

我试图只允许在使用empty的表中存在party_id时通过表单提交,这是我目前的代码,即使没有party_id,它仍然允许所有内容通过表单提交。 任何帮助都会很好

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非常感谢您的帮助:-不客气。如果答案有助于提高投票率。如果它回答了你的问题,接受答案是正常的