2017-06-16 5 views
0

現在、学生管理ページで作業していますが、編集ページで学生データを表示するのに少し問題があります。学生IDを編集ページに渡す

私の編集ページクエリ

<?php 
    $user = $_GET["id"]; 
    $query = "SELECT * FROM kuala_lumpur UNION ALL 
       SELECT *FROM eastern UNION ALL 
        SELECT *FROM northern UNION ALL 
         SELECT * FROM sabah UNION ALL 
          SELECT * FROM sarawak 
         WHERE ID_NO = '$user'"; 
    $result = mysqli_query($conn,$query) or die ('query die'); 
    $userget =mysqli_fetch_assoc($result); 
    ?> 


<div class="thebox thebox-more"> 
<form method="post"> 
    <table class="table tablo center-hr " border="0"> 
    <tr><th colspan="6"><h3>Student Information</h3></th> 

    <tr class="text-right"> 
     <td><label>Name</label></td> 
     <td colspan="5"><input type="text" name="NAME" value="<?php echo $userget['NAME']; ?>"></td> 

    <tr class="text-right"> 
     <td><label>Student IC</label></td> 
     <td colspan="2"> <input type="text" name="IC_NO" value="<?php echo $userget['IC_NO']; ?>" ></td> 

     <td><label>Student ID</label></td> 
     <td colspan="2"> <input type="text" name="ID_NO" value="<?php echo $userget['ID_NO']; ?>"></td> 
    </tr></i> 

$th1 = 'Student ID'; 
    $th2 = 'Name'; 
    $th3 = 'Course'; 
    $th4 = 'Convocation Date'; 
    $th5 = 'Edit'; 

    $td1 = 'ID_NO'; 
    $td2 = 'NAME'; 
    $td3 = 'PROGRAM_CODE'; 
    $td4 = 'CONVO_DATE'; 
    $td5 = 'PROGRAM_DESC'; 

    <div class ="table tbody" > 
     <table class="table table-hover bg-brand" data-toggle="table" > 
     <?php 
      if (mysqli_num_rows($query) > 0) { 

    echo "<thead> 
     <tr> 
      <th class='text-center'>".$th1."</th> 
      <th class='text-center'>".$th2."</th> 
      <th class='text-center'>".$th3."</th> 
      <th class='text-center'>".$th5."</th> 
     </tr> 
    </thead>"; 
       while($row = mysqli_fetch_assoc($query)) { 
    echo "<tbody> 
     <tr> 
      <td class='text-center'>".$row[$td1]."</td> 
      <td>".$row[$td2]."</a><br> 
      <b style='padding-left:7px;'><i>".$row[$td5]."</i></b></td> 
      <td class='text-center'>".$row[$td4]."</td> 
      <td><center><a href=\"info.php?id={$row[$td1]}\">X</a></center></td></tr> 
     </tr> 
    </tbody>";  
      } 
     }?> 
</i> 

表示が後に変更されていないデータI、他の生徒が、私は気持ちを持ってUNION ALLに新しいイムクリックし、テーブル内の学生の私のリストクエリの問題ですが、何度も変更しようとしましたが、まだ幸運はありません...

答えて

0

私はどこc lauseはコード内の最後のクエリにのみ適用されます。また、ユーザーIDが整数であることを確認してSQLインジェクション攻撃を防止します。

 $user = intval($_GET["id"]); 
     $query = " 

         SELECT * 
         FROM kuala_lumpur 
         WHERE ID_NO = '$user' 
        UNION ALL 
         SELECT * 
         FROM eastern 
         WHERE ID_NO = '$user' 
        UNION ALL 
         SELECT * 
         FROM northern 
         WHERE ID_NO = '$user' 
        UNION ALL 
         SELECT * 
         FROM sabah 
         WHERE ID_NO = '$user' 
        UNION ALL 
         SELECT * 
         FROM sarawak 
         WHERE ID_NO = '$user'"; 
     $result = mysqli_query($conn,$query) or die ('query die'); 
     $userget =mysqli_fetch_assoc($result); 

あなたがHTML入力フィールドに、データベースからのデータが含まれている場合、それを脱出した方がよい:

<?php echo htmlspecialchars($userget['NAME'], ENT_QUOTES); ?> 

が対処する必要がある他の問題はありますか?

+0

omg haha​​はその単純なことを知らなかったが、これは数日間私を捜していたが、分でそれを解決する....私はアップデートユニオンを使う方法について別の質問がある?上記と同じですか?または少し異なる? –

+0

各地域ごとに別々のテーブルを持つデータベース設計はちょっと面倒です。この領域をデータに含めると便利です。たとえば、 'SELECT 'sarawak'を地域として、* FROM sarawak WHERE ID_NO = '$ user'として、後で更新を行う際に地域を使用することができます。 – Adder

関連する問題