2017-10-30 9 views
-1

これはtodolistプロジェクトです。このプロジェクトはlogin-> addtask-> submitとデータベースに保存して保存するようになりましたが、今は編集タスクに関する問題があります私はdatabse mysqliを更新できませんPHP

私のデータベースのデータが更新されないのをなぜ助けてくれますか?

データベースを接続して、選択が機能しています。

これは編集HTML

ある

これは、htmlのホームページです

home.php

<?php 
 
session_start(); 
 
require ('dbms.php'); 
 

 
if(!isset($_SESSION['login'])){ 
 
\t header('Location: index.php?login=noLOGIN'); 
 
\t exit(); 
 
} 
 

 
?> 
 
    
 
<h2>Hello <?php echo $_SESSION['username']; ?> </h2> 
 
<h2>Add Todolist</h2> 
 
<form action="conadd.php" method="post"> 
 

 
    <label>header: </label> <br> 
 
    <input type="text" name="header" > <br> 
 
\t <label>detail: </label> <br> 
 

 
\t <textarea type="text" name="detail" ></textarea> <br> 
 
\t <label>priority:</label><br> 
 
\t <input type="text" name="type" ><br> 
 

 
\t <input type="date" name ="time" ><br> 
 

 
\t <button type="submit" name="addtask"> submit</button> 
 
</form> 
 
<hr> 
 

 
    <?php 
 
$sql_incom = "SELECT * FROM tb_note WHERE user_id = '".$_SESSION['id']."' "; 
 
$result_incom = mysqli_query($conn,$sql_incom); 
 

 
if($result_incom->num_rows >0){ 
 

 
    while($row = mysqli_fetch_assoc($result_incom)){ 
 

 
      echo "<li>"; 
 
      echo '<input type="checkbox"><label>'.$row["header"].'</label><input type="text">'; 
 
      echo $row["detail"]; 
 
      echo $row["type"]; 
 
      echo $row["time"]; 
 
      ?> 
 
      <a href="editpage.php?note_id=<?php echo $row["id"]; ?>"> Edit</a> 
 
      <?php 
 
      echo "</li>"; 
 
      } 
 
     } 
 
      ?> 
 
    <a href="logout.php">Logout </a>

をありがとう

editpage.php

<?php 
 
session_start(); 
 
require ('dbms.php'); 
 

 
if(!isset($_SESSION['login'])){ 
 
\t header('Location: index.php?login=noLOGIN'); 
 
\t exit(); 
 
} 
 
?> 
 
<h2>Hello <?php echo $_SESSION['username']; ?> </h2> 
 
<h2>Edit Todolist</h2> 
 

 
<?php 
 
$sql_incom = "SELECT * FROM tb_note WHERE user_id = '".$_SESSION['id']."' AND id = '".$_GET['note_id']."' "; 
 
$result_incom = mysqli_query($conn,$sql_incom); 
 
if($result_incom->num_rows >0){ 
 
    while($row = mysqli_fetch_assoc($result_incom)){  \t 
 
var_dump($row); 
 
    \t echo '<form action="conedit.php" method="post">'; 
 
\t echo '<label>header: </label> <br>'; 
 
\t echo '<input type="text" name="header" value="'.$row["header"].'"> <br>'; 
 
\t echo '<label>detail: </label> <br>'; 
 
\t echo '<textarea type="text" name="detail" cols="66" rows="10">'.$row["detail"].'</textarea> <br>' ; 
 
\t echo '<label>priority:</label><br>'; 
 
\t echo '<input type="text" name="type" value="'.$row["type"].'"><br>'; 
 
\t echo '<input type="date" name ="time" value="'.$row["time"].'"><br>'; 
 
\t echo '<input type="hidden" name="note_id" value="'.$row["id"].'">'; 
 

 
\t echo '<button type="edit" name="editbtn"> submit</button>'; 
 
echo '</form> '; 
 

 
      } 
 
     } 
 
?>
これは conedit.php
<?php 
 
session_start(); 
 
include ('dbms.php'); 
 

 
if(isset($_POST['editbtn'])){ 
 

 
    $id = $_POST['note_id']; 
 
    $header =$_POST['header']; 
 
    $detail =$_POST['detail']; 
 
    $time = $_POST['time']; 
 
    $type = $_POST['type']; 
 
\t \t 
 
    if($header =="" || $detail == "" || $type ==""){ 
 
     header('Location: home.php?note=failtime'); 
 

 
\t \t \t exit(); 
 
\t \t } 
 
\t \t //$user_id = $_SESSION['id']; 
 
\t \t $sql_comm = 
 
\t \t "UPDATE tb_note 
 
\t \t SET header = '$header', 
 
\t \t detail ='$detail', 
 
\t \t time = '$time', 
 
\t \t type = '$type', 
 
\t \t WHERE id = '$id';"; 
 

 
\t if ($conn->query($sql_comm) === TRUE) { 
 
    
 
    \t header('location: home.php?add=true'); 
 
    \t \t exit(); 
 
\t } 
 
\t else { 
 
    \t echo "Error ".$sql_comm ; 
 
\t \t } 
 
\t } 
 
?>

が、これはエラーコードですが、私は、SQLが正しいと思い更新SQLです。

Connected successfullyError UPDATE tb_note SET header = 'test3', detail ='go bkk', time = '2017-10-20', type = '1', WHERE id = '8';

+2

エラーが発生していますか? – GYaN

+3

どのようなエラーメッセージが表示され、コードのどの段階にありますか?コード全体を提供するのではなく、可能な限り具体的にすることが最善です。 – TidyDev

答えて

0

、エラーがそれだupdate querywhere,を削除言うように。

+0

それはyayyy !!!!!!!どうもありがとうございます –

-1

あなたの更新要求に自分のパラメータを連結していなかった、私はあなたが最初にこれを変更すべきだと思います。また、 "準備"についてチェックする必要があります。なぜなら、SQLインジェクションに自分自身を公開するからです。リンクhere。私の視点で

$sql_comm = 
    "UPDATE tb_note 
    SET header = :header, 
    detail = :detail, 
    time = :time, 
    type = :type, 
     WHERE id = :id;"; 

    $conn->prepare($sql_comm, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)) 
    $conn->execute(
     array(
      ':header' => $header, 
      ':detail' => $detail, 
      ':time' => $time, 
      ':type' => $type, 
      ':id' => $id 
     ) 
    ); 
関連する問題