【问题标题】:How can I update a table that is only a LEFT JOIN in my query?如何更新查询中仅是 LEFT JOIN 的表?
【发布时间】:2016-10-17 15:19:08
【问题描述】:

我只想更新表中 CHARGES 的值。我有一个错误:

注意:未定义索引:第 4 行 C:\xampp\htdocs\VCCDMStry\pages\save_receipt.php 中的 id

注意:未定义索引:C:\xampp\htdocs\VCCDMStry\pages\save_receipt.php 第 5 行收费

致命错误:未捕获异常 'PDOException' 并带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在 C:\xampp\htdocs\VCCDMStry\pages\save_receipt.php:8 堆栈跟踪:#0 C 中的第 1 行的“WHERE id = NULL”附近使用正确的语法:\xampp\htdocs\VCCDMStry\pages\save_receipt.php(8): PDOStatement->execute(Array) #1 {main} 在第 8 行的 C:\xampp\htdocs\VCCDMStry\pages\save_receipt.php 中抛出

这是我的获取代码:

<?php
    $sql = "SELECT * FROM tenant 
            LEFT JOIN stall ON stall.stall_id = tenant.stall_id
            LEFT JOIN rent ON rent.tenant_id = tenant.tenant_id
            LEFT JOIN receipt ON receipt.tenant_id = tenant.tenant_id
            LEFT JOIN rate ON rate.rate_id = tenant.rate_id
            WHERE rent.rent_status = ? AND rate.rate_id = ?
    ";
    $query = $conn->prepare($sql);
    $query->execute(array(1,1));
    $fetch = $query->fetchAll();

    foreach ($fetch as $key => $value) { ?>                         
    <tr>
        <td>
            <?=$value['tenant_fname']." ".$value['tenant_mname']." ".$value['tenant_lname'];?>
        </td>
        <td>
            <?=$value['stall_number'];?>
        </td>
        <td>
            <?=$value['charges'];?>
        </td>
        <td class = "center" style = "text-align:center;">
            <a href = "#receipt<?php echo $value['tenant_id'];?>" data-toggle="modal" class="btn btn-outline btn-xs btn-primary"> Make Receipt
            </a>
        </td>
    </tr>   
    <?php include 'receipt_modal.php';?>              
<?php }?>

这是我的更新代码:

<?php    
    include 'dbcon.php';

    $receipt_id = $_POST['id'];
    $charges = $_POST['charges'];

    $query = $conn->prepare("UPDATE receipt SET charges = ? , WHERE id = ? ");
    $query->execute(array($charges,$receipt_id));

    header ('location:elecbills.php');
?>  

以及Modal的代码:

<div class="form-group">
    <input type = "hidden" class="form-control" name= "id"  value = "<?php echo $value['tenant_id'];?>">
    <label class="col-sm-4 control-label">PRESENT </label>: <input class = "custom-input" id="charges" name="charges"></input> 
</div>

【问题讨论】:

  • $_POST 中不存在这些值。你没有显示你的表单标签,所以我们不知道你的方法是 GET 还是 POST。您可以尝试改用$_REQUEST,或仔细检查您的方法。
  • @aynber 这是我的表单
  • @aynber 我已经尝试了 $_REQUEST 但它仍然无法正常工作,并且错误是一样的,
  • 但是您在发布的表单中有idcharges 输入字段
  • 我会说Modal 需要&lt;form&gt;....&lt;/form&gt;

标签: php html css


【解决方案1】:

出现致命错误,因为您在 'WHERE' 之前有逗号

UPDATE receipt SET charges = ? , WHERE id = ?

【讨论】:

    猜你喜欢
    • 2015-05-25
    • 2016-04-02
    • 2015-01-10
    • 1970-01-01
    • 2019-11-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多