[英]How to check if select query returned values or empty with PHP and SQLite 3
[英]executing a SELECT query and check if any row is returned and if empty resultset do an INSERT
一直遵循我在網上找到的這個php / mysql教程,現在我無法使該查詢正常工作。 我認為選擇查詢返回空結果集后使用插入查詢的問題。
$new_start_no = isset($_POST['start_no']) ? $_POST['start_no'] : '';
$new_end_no = isset($_POST['end_no']) ? $_POST['end_no'] : '';
$new_job_no = isset($_POST['job_no']) ? $_POST['job_no'] : '';
$query = "SELECT COUNT (*)";
$query .= "FROM jobs";
$query .= "WHERE job_no=$new_job_no";
$query .= "AND start_no <= $new_end_no";
$query .= "AND end_no >= $new_start_no";
$result = mysqli_query($connection, $query);
$num_rows = mysqli_num_rows($result);
if (is_null) {
$query = "INSERT INTO jobs (";
$query .= " user_id, start_no, end_no, start_date, client_name, card_type, job_no, job_quantity, end_date, shred_option";
$query .= ") VALUES (";
$query .= " '{$user_id}', '{$start_no}', '{$end_no}', '{$start_date}', '{$client_name}', '{$card_type}', '{$job_no}', '{$job_quantity}', '{$end_date}', '{$shred_option}'";
$query .= ")";
$result = mysqli_query($connection, $query);
if ($result) {
// success
$_SESSION["message"] = "job created.";
redirect_to("manage_job.php");
} else {
// failure
$_SESSION["message"] = "job creation failed.";
redirect_to("new_job.php");
}
}
您的查詢始終返回准確的1行,因為它使用COUNT(*)
對匹配的行進行計數。 您需要檢索該行並從中獲取計數。 您應該為計數分配一個別名,以便可以檢索它。 然后,您需要測試計數,而不是is_null
。
$query = "SELECT COUNT (*) AS ct";
$query .= "FROM jobs";
$query .= "WHERE job_no=$new_job_no";
$query .= "AND start_no <= $new_end_no";
$query .= "AND end_no >= $new_start_no";
$result = mysqli_query($connection, $query);
$row = mysqli_fetch_assoc($result);
$num_rows = $row['ct'];
if ($num_rows == 0) {
// INSERT code
} else {
$_session["message"] = "job no is not available";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.