2017-01-25 38 views
0

私はphpではなくむしろ素人です。スクリーンショットに示すように、編集ボタン&を削除したデータベーステーブルを作成しました。 (誰かがなぜ私のヘッダーとテーブルの本体との間に隙間があるのか​​を知ることができれば、これがなぜ上手くいかないのか分からない、それはCSSだと思われる)。HTML PHPデータベース - 編集/削除ボタン - 値を渡す

アイデアはちょうど削除ボタンをクリックし、データベースから行全体を削除するために 'AwbNo'をdelete.phpページに渡してから、自動的にページに戻って更新されたテーブルを見て、リダイレクションを避けることができれば、操作をよりスムーズにすることができます。どんな助けでも大歓迎です。下のコードが援助のために十分であることを願っています。

したがって、削除する行を選択して、削除>確認>行をdbから削除をクリックします。 「編集」または「削除」ボタンをクリックしたときにそれは私が以下

example database screenshot

<table class="table"> 
       <thead> 
        <tr> 
        <th>Awb Number</th> 
        <th>Vessel</th> 
        <th>Client</th> 
        <th>Pieces</th> 
        <th>Total Weight</th> 
        <th>Carrier</th> 
        <th>Sender</th> 
        <th>Status</th> 
        <th>Arrival Date</th> 
        <th>Action</th> 
        </tr> 
       </thead> 
       <tbody> 
        <?php    //BEGINNING OF PHP 
        include("login/dbinfo.inc.php"); 
        [email protected]_connect(localhost,$username,$password); 
        [email protected]_select_db($database) or die("Unable to select database"); 

        $sql="SELECT AwbNo, VesselName, ClientCode, Pieces, Weight, Carrier, Sender, Status, DATE_FORMAT(ArrivalDate, '%d-%m-%yyyy') FROM tbl_import"; 
        $result = mysql_query($sql) or die("SELECT Error: ".mysql_error()); 
        $num_rows = mysql_num_rows($result); 
        echo "<p>There are $num_rows records in the Customer table.</p>"; 
        echo "<table class=\"table\">\n"; 
        while ($get_info = mysql_fetch_array($result)) 
        { 
         echo ("<tr>\n"); 
         echo ("<td>".$get_info["AwbNo"]."</td>"); 
         echo ("<td>".$get_info["VesselName"]."</td>"); 
         echo ("<td>".$get_info["ClientCode"]."</td>"); 
         echo ("<td>".$get_info["Pieces"]."</td>"); 
         echo ("<td>".$get_info["Weight"]."</td>"); 
         echo ("<td>".$get_info["Carrier"]."</td>"); 
         echo ("<td>".$get_info["Sender"]."</td>"); 
         echo ("<td>".$get_info["Status"]."</td>"); 
         echo ("<td>".$get_info["ArrivalDate"]."</td>"); 
         ?> 
          <td> 
          <div id="outer"> 
           <div class="inner"><button type="submit" class="msgBtn" onClick="goToURL()" > Edit </button></div> 
           <div class="inner"><button type="submit" class="msgBtn2" onClick="goToURL1()"> Delete </button></div> 
           </div> 
          </td> 
         <?php 
         echo ("</tr>\n"); 
        } 
        echo "</table>\n"; 
        mysql_close(); 
        ?>     <!--END OF PHP--> 
       </tbody> 
       </table> 

を達成することを目指していますプロセスでは、ユーザーのページにリダイレクトするjsのスクリプトです。

<script> 
function goToURL() { 
window.open('php/edit.php'); 
} 
function goToURL1() { 
    window.open('php/delete.php'); 
} 
</script> 

、以下ライブサーバー上のDBからレコードを削除するには想定「delete.php」のページで、これは一例に過ぎず、それが正しいかどうかを正確にわからないイム。

<?php 
     include("dbinfo.inc.php"); 
     [email protected]_connect(localhost,$username,$password); 
     [email protected]_select_db($database) or die("Unable to select database"); 
     $AwbNo=$_POST['AwbNo']; 
     $sql="DELETE FROM tbl_import where AwbNo=$AwbNo"; 
     mysql_query($sql)or die("Delete Error: ".mysql_error()); 
     mysql_close(); 
     echo "Record was successfully deleted.\n"; 
     ?> 
+0

あなたは、フォームのコードを投稿することができます:

<script> function delete_user(uid) { if (confirm('Are You Sure to Delete this Record?')) { window.location.href = 'delete.php?id=' + uid; } } </script> 

delete.phpはただ、このコードを持つことができますか? –

+0

こんにちはキリスト教、歓迎StackOverflow!あなたの質問には明確な問題の声明はありません。何が起きているのか、問題がどこにあるのか、あなたが試したことを説明してください。 –

+3

*** [mysql_ *関数の使用をやめる](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)*** [これらの拡張機能](http://php.net/manual/en/migration70.removed-exts-sapis.php)がPHP 7で削除されました。[prepared](http://en.wikipedia.org/wiki/Prepared_statement)について学んでください。 )[PDO](http://php.net/manual/en/pdo.prepared-statements.php)と[MySQLi](http://php.net/manual/en/mysqli.quickstart.prepared- statements.php)、PDOの使用を検討してください。[これは本当に簡単です](http://jayblanchard.net/demystifying_php_pdo.html)。 –

答えて

1

ようこそStackOverflow!

あなたがの場合にはprimary keyを[編集/削除]リンクと共に渡す必要があるため、正しいレコードがDBから選択されるため問題があります。これはあなたのケースでは起こっていません。

&リンクを編集するには、次のようなコードが必要です。

echo '<td><a href="edit.php?id='.$get_info['AwbNo']. '">&nbspEdit&nbsp</a></td>'; 
echo '<td><a href="javascript:delete_user('.$get_info['AwbNo']. ')">&nbspDelete&nbsp</a></td>' 

このスクリプトを同じページに追加してください。

<?php 

     include("dbinfo.inc.php"); 
     [email protected]_connect(localhost,$username,$password); 
     [email protected]_select_db($database) or die("Unable to select database"); 
     $id = $_GET['id']; // $id is now defined 
     mysqli_query($conn,"DELETE FROM tbl_import where AwbNo='".$id."'"); 
     mysqli_close($conn); 
     header("Location: index.php"); //redirect to relevant page 

    ?> 
+0

正しい方向に私を指してくれてありがとうNeha、私は上記を理解し、主キーがどのように渡されているか見ることができます。確認ページなどは動作しますが、レコードを削除するために「OK」をクリックすると、エラー404にリダイレクトされます:ファイルまたはディレクトリが見つかりません。私はdelete.phpのページがIDをピックアップしていないと仮定?またはそれはURLです "delete.php?id = 159847263" – sanitizer

+0

'id'が正しく渡されています。ここではリダイレクトページをpintする必要があります: 'header(" Location:index.php "); //関連するページにリダイレクトする '。私はあなたのリダイレクトページが何であるかわからなかったので、私は 'index.php'を指し示しました。 –

+0

問題が見つかりました。スクリプトのリダイレクトを変更しなければなりませんでした。完全に実行されますが、私のデータベースには影響がありません。レコードは削除されます。 – sanitizer

関連する問題