0

程序员们早上好,我有一个包含新闻控制面板的小代码,我在那里创建了一个提交按钮来激活或不激活新闻行,所以如果我点击这个按钮,它应该会改变,如果它是活动的,它将是非活动的,它工作但有当我单击第一个项目时出现问题,它会更新桌子上的最后一个而不是应该做的第一个。这是我使用的代码

<?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 回答