2017-01-29 6 views
0

私はシンプルなCRUDを持っていますが、更新を除いて既にすべてが動作していますので、私のhrefから$ updateを私のupdate.phpページに渡しているようです。どんなアイデアが間違っているの?

更新、削除のhrefの

<td><a href="update.php?updateid=<?php echo $row['stud_id'];?>">Edit</a></td> 
<td><a href="index.php?deleteid=<?php echo $row['stud_id'];?>">Delete</a></td> 

update.phpを

<?php 
    include 'db.php'; 


    if(isset($_GET['updateid'])){ 
     $id = $_GET['updateid']; 
    } 

    $select = "SELECT * FROM student WHERE stud_id='".$id."'"; 
    $user = selectStud($select); 

    if(isset($_POST['up-submit'])){ 
     $upfname = $_POST['up-fname']; 
     $upmname = $_POST['up-mname']; 
     $uplname = $_POST['up-lname']; 
     $upcourse = $_POST['up-course']; 

     $query = "UPDATE student SET stud_fname='".$upfname."',stud_mname='".$upmname. 
     "',stud_lname='".$uplname."',stud_course='".$upcourse."' WHERE stud_id='".$id."'"; 

     $update = updateStud($query); 

     if($update){ 
      echo "<script>alert('Update Success!'); window.location('index.php');</script>"; 
     }else{ 
      echo "<script>alert('Update Failed :('); window.location('index.php');</script>"; 
     } 
    } 


?> 

<form method="POST" action="update.php"> 
    <input type="text" name="up-fname" placeholder="First Name" autocomplete="off"><br /> 
    <input type="text" name="up-mname" placeholder="Middle Name" autocomplete="off"><br /> 
    <input type="text" name="up-lname" placeholder="Last Name" autocomplete="off"><br /> 
    <label for="course">Course: </label> 
    <select name="up-course"> 
     <option name="up-course" value="BSIT">BSIT</option> 
     <option name="up-course" value="BSHM">BSHM</option> 
     <option name="up-course" value="BSED">BSED</option> 
     <option name="up-course" value="BSMT">BSMT</option> 
    </select><br /> 

    <input type="submit" name="up-submit" value="Save Changes"> 
</form> 

をdb.phpあなたが送信したときに(URL)パラメータGETアクセスすることはできませんので

<?php 

    function getConnection(){ 

     $conn = new PDO("mysql:host=localhost;dbname=preskilltest","root", ""); 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     return $conn; 
    } 

    function selectStud($query){ 
      $pdo = getConnection(); 

      $stmt = $pdo->query($query); 
      return $stmt->fetchAll(); 
    } 

    function insertStud($query){ 
     $pdo = getConnection(); 

     $stmt = $pdo->query($query); 
     return $stmt; 

    } 

    function updateStud($query){ 
     $pdo = getConnection(); 

     $stmt = $pdo->prepare($query); 
     return $stmt->execute(); 
    } 


?> 

答えて

0

POST要求(フォーム)には、GETパラメータをフォームに埋め込む必要があります。

ので、フォームに次の行を追加します。

<input type="hidden" name="updateid" value="<?php echo $id; ?>> 

とサーバー側のコードに次のようにあります

if(isset($_POST['up-submit'])){ 
     $id = $_POST['updateid']; //add this. 
+0

ねえ、それは助けていましたか? –

関連する問題