bugfix> php > 投稿

データを更新できませんが、保存ボタンをクリックすると、データを正常に更新すると表示されます データベースをチェックしたとき、何も変わっていませんでした。 誰かが間違ったコードがどこにあるか教えてもらえますか

これは私のコード全体

<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
    {
header('location:index.php');
}
else{
if(isset($_POST['submit']))
  {
$nama_paket=$_POST['nama_paket'];
$nama_kategori=$_POST['nama_kategori'];
$paket_overview=$_POST['paket_overview'];
$harga=$_POST['harga'];
$id=intval($_GET['id']);
$sql="update tblpaket set nama_paket=:nama_paket,kategori_paket=:nama_kategori,paket_overview=:paket_overview,harga=:harga, where id=:id ";
$query = $dbh->prepare($sql);
$query->bindParam(':nama_paket',$nama_paket,PDO::PARAM_STR);
$query->bindParam(':nama_kategori',$nama_kategori,PDO::PARAM_STR);
$query->bindParam(':paket_overview',$paket_overview,PDO::PARAM_STR);
$query->bindParam(':harga',$harga,PDO::PARAM_STR);
$query->bindParam(':id',$id,PDO::PARAM_STR);
$query->execute();
$msg=" Data Berhasil Diupdate";
}
    ?>
<!doctype html>
<html lang="en" class="no-js">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
    <meta name="theme-color" content="#3e454c">
    <title>Ratu Hotel And Resort | Admin Edit Paket Info</title>
    <!-- Font awesome -->
    <link rel="stylesheet" href="css/font-awesome.min.css">
    <!-- Sandstone Bootstrap CSS -->
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <!-- Bootstrap Datatables -->
    <link rel="stylesheet" href="css/dataTables.bootstrap.min.css">
    <!-- Bootstrap social button library -->
    <link rel="stylesheet" href="css/bootstrap-social.css">
    <!-- Bootstrap select -->
    <link rel="stylesheet" href="css/bootstrap-select.css">
    <!-- Bootstrap file input -->
    <link rel="stylesheet" href="css/fileinput.min.css">
    <!-- Awesome Bootstrap checkbox -->
    <link rel="stylesheet" href="css/awesome-bootstrap-checkbox.css">
    <!-- Admin Stye -->
    <link rel="stylesheet" href="css/style.css">
    <style>
        .errorWrap {
    padding: 10px;
    margin: 0 0 20px 0;
    background: #fff;
    border-left: 4px solid #dd3d36;
    -webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
    box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{
    padding: 10px;
    margin: 0 0 20px 0;
    background: #fff;
    border-left: 4px solid #5cb85c;
    -webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
    box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
        </style>
</head>
<body>
    <?php include('includes/header.php');?>
    <div class="ts-main-content">
    <?php include('includes/leftbar.php');?>
        <div class="content-wrapper">
            <div class="container-fluid">
                <div class="row">
                    <div class="col-md-12">
                        <h2 class="page-title">Edit Paket</h2>
                        <div class="row">
                            <div class="col-md-12">
                                <div class="panel panel-default">
                                    <div class="panel-heading">Basic Info</div>
                                    <div class="panel-body">
<?php if($msg){?><div class="succWrap"><strong>SUCCESS</strong>:<?php echo htmlentities($msg); ?> </div><?php } ?>
<?php
$id=intval($_GET['id']);
$sql ="SELECT tblpaket.*,tblkategori.nama_kategori,tblkategori.id as bid from tblpaket join tblkategori on tblkategori.id=tblpaket.kategori_paket where tblpaket.id=:id";
$query = $dbh -> prepare($sql);
$query-> bindParam(':id', $id, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{   ?>
<form method="post" class="form-horizontal" enctype="multipart/form-data">
<div class="form-group">
<label class="col-sm-2 control-label">Nama Paket<span style="color:red">*</span></label>
<div class="col-sm-4">
<input type="text" name="nama_paket" class="form-control" value="<?php echo htmlentities($result->nama_paket)?>" required>
</div>
<label class="col-sm-2 control-label">Select Kategori<span style="color:red">*</span></label>
<div class="col-sm-4">
<select class="selectpicker" name="nama_kategori" required>
<option value="<?php echo htmlentities($result->bid);?>"><?php echo htmlentities($nama_kategori=$result->nama_kategori); ?> </option>
<?php $ret="select id,nama_kategori from tblkategori";
$query= $dbh -> prepare($ret);
//$query->bindParam(':id',$id, PDO::PARAM_STR);
$query-> execute();
$resultss = $query -> fetchAll(PDO::FETCH_OBJ);
if($query -> rowCount() > 0)
{
foreach($resultss as $results)
{
if($results->nama_kategori==$nama_kategori)
{
continue;
} else{
?>
<option value="<?php echo htmlentities($results->id);?>"><?php echo htmlentities($results->nama_kategori);?></option>
<?php }}} ?>
</select>
</div>
</div>
<div class="hr-dashed"></div>
<div class="form-group">
<label class="col-sm-2 control-label">Paket Overview<span style="color:red">*</span></label>
<div class="col-sm-10">
<textarea class="form-control" name="paket_overview" rows="3" required><?php echo htmlentities($result->paket_overview);?></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Harga(Dalam Rp)<span style="color:red">*</span></label>
<div class="col-sm-4">
<input type="text" name="harga" class="form-control" value="<?php echo htmlentities($result->harga);?>" required>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<h4><b>Vehicle Images</b></h4>
</div>
</div>
<div class="form-group">
<div class="col-sm-4">
Image 1 <img src="img/gambarpaket/<?php echo htmlentities($result->gambar_1);?>" width="300" height="200" style="border:solid 1px #000">
<a href="ganti-gambar1.php?gambar_1id=<?php echo htmlentities($result->id)?>">ganti gambar 1</a>
</div>
<div class="col-sm-4">
Image 2<img src="img/gambarpaket/<?php echo htmlentities($result->gambar_2);?>" width="300" height="200" style="border:solid 1px #000">
<a href="ganti-gambar2.php?gambar_2id=<?php echo htmlentities($result->id)?>">ganti gambar 2</a>
</div>
<div class="col-sm-4">
Image 3<img src="img/gambarpaket/<?php echo htmlentities($result->gambar_3);?>" width="300" height="200" style="border:solid 1px #000">
<a href="ganti-gambar3.php?gambar_3id=<?php echo htmlentities($result->id)?>">ganti gambar 3</a>
</div>
</div>
<?php }} ?>
                                            <div class="form-group">
                                                <div class="col-sm-8 col-sm-offset-2" >
                                                    <button class="btn btn-primary" name="submit" type="submit" style="margin-top:4%">Save changes</button>
                                                </div>
                                            </div>
                                        </form>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- Loading Scripts -->
    <script src="js/jquery.min.js"></script>
    <script src="js/bootstrap-select.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/jquery.dataTables.min.js"></script>
    <script src="js/dataTables.bootstrap.min.js"></script>
    <script src="js/Chart.min.js"></script>
    <script src="js/fileinput.js"></script>
    <script src="js/chartData.js"></script>
    <script src="js/main.js"></script>
</body>
</html>
<?php } ?>

申し訳ありませんが私のコードはとても長いです 詳細を入力する方法がわかりません。常に「投稿はほとんどコードのようです。詳細を追加してください」と表示されるとは限りません。 すみません、私はこれをしなければなりませんでした。

回答 3 件
  • 前のコンマを削除します where 。それが動作します。最後の列の後にコンマを入れないでください。

  • あなたはの結果をチェックしていません $query->execute(); そのため、エラーメッセージはすべて飲み込まれます。これを修正する方法については、この質問を参照してください。

    問題はおそらく、SQLステートメントのwhere句の前のコンマです。

    交換

    $sql="update tblpaket set nama_paket=:nama_paket,kategori_paket=:nama_kategori,paket_overview=:paket_overview,harga=:harga, where id=:id ";
    $query = $dbh->prepare($sql);
    
    

    $sql="update tblpaket set nama_paket=:nama_paket,kategori_paket=:nama_kategori,paket_overview=:paket_overview,harga=:harga where id=:id ";
    $query = $dbh->prepare($sql);
    
    

  • これを交換してみてください、そしてあなたが使用しているならそれはより良いでしょう mysqli_error() エラーをチェックする機能

    $sql="update tblpaket set nama_paket=:nama_paket,kategori_paket=:nama_kategori,paket_overview=:paket_overview,harga=:harga where id=:id ";
    $query = $dbh->prepare($sql);
    
    

あなたの答え