0

おはようプログラマー、私はニュースコントロールパネルをコンテンツとするこの小さなコードを持っていて、そこにニュース行をアクティブまたは非アクティブにする送信ボタンを作成したので、このボタンをクリックすると、アクティブか非アクティブかが変わるはずです。アイテム1をクリックすると、テーブルの最初ではなく最後のアイテムが更新されます。ここに私が使用するコードがあります

<?php
$getNewsData="select * from news";
    $QgetNewsData=$db->query($getNewsData)or die($db->error);
    $count=mysqli_num_rows($QgetNewsData);
while($newsRow = mysqli_fetch_array($QgetNewsData)) {
$getActivityStatus=$newsRow['news_activity']; 
    switch($getActivityStatus){
    case 1: echo"<input style='color:red; font-weight:bold; background:none; border:0;' name='inactive' type='submit' value='تعطيل' /><input name='inActive' type='hidden' value='".$newsRow['news_id']."'/>"; 
    break; 
    case 0: echo"<input style='color:green; font-weight:bold; background:none; border:0;' name='active' type='submit' value='تفعيل' /><input name='Active' type='hidden' value='".$newsRow['news_id']."'/>"; break;}
    }
if(isset($_POST['inactive'])){
            $inActive=$_POST['inActive'];
            echo $inActive;
        $updateStatus="UPDATE news SET news_activity=0 WHERE news_id='".$inActive."' ";
        $QupdateStatus=$db->query($updateStatus)or die($db->error);
        if($QupdateStatus){ 
            }
        }

        if(isset($_POST['active'])){
            $Active=$_POST['Active'];
            echo $Active;
        $updateStatus="UPDATE news SET news_activity=1 WHERE news_id='".$Active."' ";
        $QupdateStatus=$db->query($updateStatus)or die($db->error);
        if($QupdateStatus){
        header("Location:CpanelHome.php?id=7"); 
            }
        }
    ?>

この問題を解決するためのアイデアをお願いします。ありがとうございます。それでは、お元気で

4

1 に答える 1

1

多くのフィールドを作成し<input name='inActive'ます<input name='Active'いずれかの送信ボタンをクリックすると、すべてが送信されることに注意してください。私が考えることができる最も簡単な解決策は、送信ボタンと非表示の入力の各ペアを別々の に配置することです。<form>

ノート

あなたのコードはかなり悪いです。いくつかの改善を検討する必要があります。手始めに:

  • コードを正しくフォーマットするか、それを行うエディターを見つけてください。
  • クエリで使用する前に、POST データを検証してください。
  • 文字列からクエリを貼り付けないでください。代わりに、準備されたステートメントを使用してください
于 2012-09-24T09:36:30.493 に答える