函数无法调用WHERE id = $ id

时间:2015-10-05 02:44:29

标签: php sql

我试图进行多重编辑功能,代码通过但数据库没有更新。我认为问题在于,在WHERE id = $ id时,没有值被调出,因为如果我将$ id替换为实际的id,例如id = 001,条目001得到更新。

此页面选择要编辑的条目

<?php
if (!mysqli_connect_errno($con)) {
    $queryStr = "SELECT * " . "FROM crewlist";
}
$result = mysqli_query($con, $queryStr);
while ($row = mysqli_fetch_array($result)) {
    if (date("Y-m-d") > $row['start_date'] && date("Y-m-d") < $row['end_date']) {
       echo "<tr><th>" . "<input type = 'checkbox' name = 'checkbox2[]' value='" . $row['crew_name']. "' >" . "</th>";
       echo "<th>" . "<a href=\"viewcrew.php?id=" . $row['crew_id'] . "\">" . $row["crew_name"] . "</a>";
       echo "<th>" . $row["crew_rank"] . "</th>";
       echo "<th>" . $row["start_date"] . "</th>";
       echo "<th>" . $row["end_date"] . "</th>";
       echo "<th>" . $row["watchkeeping"] . "</th>";
       echo "<th>" . $row["active"] . "</th>";
    } else {        
        }
}
?>

这是编辑页面

<?php include 'header.php'; ?>

<div id="container4"><?php
require ("dbfunction.php");
$con = getDbConnect();


$checkbox2 = $_POST['checkbox2'];

if (!mysqli_connect_errno($con)) {
    $str = implode($checkbox2);

    $queryStr = "SELECT * " .
            "FROM crewlist WHERE  ($str) && crew_id";
}

$result = mysqli_query($con, $queryStr);
?><form action="handlemultiedit.php" method="post"><?php
if ($_POST['submit']) {
    $checkbox2 = $_POST['checkbox2'];

    foreach ($checkbox2 as $crewname) {

        ?> 
            <input type="hidden" name="crew_id" value="<?php $id = isset($_GET['id']) ? $_GET['id'] : ''; ?>" />
        <?php echo "<tr><th>" . $crewname . ":</th><br>";
        echo "                    <tr>
                    <td>Shift 1:</td>
                    <td><input type=\"time\" name=\"start_hour\" value=\"start_hour\" id=\"start_hour\" step=\"1800\" required> to <input type=\"time\" name=\"end_hour\" value=\"end_hour\" id=\"end_hour\" step=\"1800\" required>
                    </td>       
                </tr>
                <tr>
                    <td>Shift 2:</td>
                    <td><input type=\"time\" name=\"start_hour2\" value=\"start_hour2\" id=\"start_hour2\" step=\"1800\" required> to <input type=\"time\" name=\"end_hour2\" value=\"end_hour2\" id=\"end_hour2\" step=\"1800\" required>
                    </td>       
                </tr><br><br>";
        ?><?php
    }?><td><input type="submit" value="Submit" ></td></form><?php
}
?>

    

print_r($_POST);
require 'dbfunction.php';
$con = getDbConnect();
$crew_id = $_POST["crew_id"];
$start_hour = $_POST["start_hour"];
$end_hour = $_POST["end_hour"];
$start_hour2 = $_POST["start_hour2"];
$end_hour2 = $_POST["end_hour2"];


if (!mysqli_connect_errno($con)) {
$sqlQueryStr = "UPDATE crewlist SET start_hour = '$start_hour',end_hour = '$end_hour', start_hour2 = '$start_hour2',end_hour2 = '$end_hour2' WHERE crew_id = $crew_id";
mysqli_query($con, $sqlQueryStr);
 }

//header('Location: crewlisting.php');
mysqli_close($con);
?>

1 个答案:

答案 0 :(得分:0)

尝试在语句中的最后一个变量周围放置单引号(即's),就像你已经完成所有其他变量一样,即将其更改为“WHERE crew_id ='$ crew_id'”;