如何使用多个执行参数设置多个if / elseif条件

时间:2018-01-21 05:56:13

标签: php pdo

我有这个代码,这是给我们的一个任务,真的给了我一个艰难的时间,我想要实现的很简单,如果用户输入已经收到的电子邮件或日期,那么程序将无法继续并将回应一个错误。但我也希望我们输出"日期已经开始了!"如果用户尝试插入的日期已经在数据库中,并且“#34;电子邮件已经被占用!"如果收到电子邮件并且“对不起,则会收到电子邮件和日期!" ..

我想说的是这样的:

-INPUT#1 -

输入日期:示例日期//假设已经采用日期。

输入电子邮件:john@example.com

-OUTPUT#1 -

抱歉!日期已经开始了!

-INPUT#2 -

输入日期:示例日期

输入电子邮件:john@example.com //假设已经收到电子邮件。

-OUTPUT#2- 抱歉!已经收到电子邮件!

-INPUT#3 -

输入日期:示例日期//假设已经采用日期。

输入电子邮件:john@example.com //假设还发送了电子邮件。

-OUTPUT#3 -

抱歉,电子邮件和日期都已被拍摄!

$emailadd = $_POST['eadd'];
$rdate = $_POST['date'];

try {
    $stmt = $conn->prepare("SELECT tblclient.ClientID,
                                   tblreservation.ReservationID,
                                   tblclient.EmailAdd,
                                   tblreservation.Date
                            FROM   tblclient
                            INNER JOIN tblreservation
                            ON     tblclient.ClientID = tblreservation.ReservationID
                            WHERE EmailAdd = ?
                            OR    Date = ? ");
    $result = $stmt->execute([$emailadd, $rdate]);
    if ($stmt->execute([$emailadd, $rdate]) > 0 ) {
        echo "Email already exist!";
    }
        try {
            $sql = "INSERT INTO tblclient(
                    Fname,
                    Lname,
                    MI,
                    Address,
                    ContactNo,
                    EmailAdd)
            VALUES (
                    '" . urldecode(trim($_POST['fname'])) . "',
                    '" . urldecode(trim($_POST['lname'])) . "',
                    '" . urldecode(trim($_POST['mname'])) . "',
                    '" . urldecode(trim($_POST['add'])) . "',
                    '" . urldecode(trim($_POST['telno'])) . "',
                    '" . urldecode(trim($_POST['eadd'])) . "')";
            $conn->exec($sql);
                try {
                    $sql = "INSERT INTO tblreservation(
                        ReservationPrice,
                        ReservationDate,
                        ReservationTime,
                        ReservationStatus)
                VALUES (
                        '" . urldecode(trim($_POST['price'])) . "',
                        '" . urldecode(trim($_POST['date'])) . "',
                        '" . urldecode(trim($_POST['time'])) . "',
                        '" . urldecode(trim($_POST['status'])) . "')";
                $conn->exec($sql);                  
                } catch (PDOException $e) {
                    echo $e;
                }
        } catch (PDOException $e) {
            echo $e;
        }
} catch (PDOException $e) {
    echo $e;
}

我也尝试过使用

if ($stmt->execute([$emailadd]) > 0 ) {
            echo "Email already exist!";
        } elseif ($stmt->execute([$rdate]) > 0 ) {
            echo "Date already exist!";
        }

也没有运气:(任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

我想以这种方式提出建议

double

通过这种方式,您将能够显示多个错误。