PHP:不获取结果

时间:2014-01-28 07:46:18

标签: php mysql

我从1个表中获得了一个id列表。我最近对表格进行了一些更改,我在其中为id激活添加了另一列(Active)。该表看起来像这样

ID | name | active
---|------|-------
01 | Jack | 1
02 | Ben  | 1

列表显示id是否有效,我使用黄色灯泡图标,如果没有激活,则显示灰色灯泡图标。我得到的问题是,如果我想更改id的激活状态,它不会获取结果(仅显示空白页)。

SQL

$sql = "SELECT * FROM jobseeker";
$res = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($res))

INDEX PHP

<td align="center"><?php if($row['active']) == '1'){ ?>
            <a href ="action.php?ID=<?php echo $row['ID']; ?>" onclick="return confirm ('You want to deactivate ?\n\nNo ID: <?php echo $row['ID']; ?>')"><img src="images/on.png" width="16" height="16" border="0" alt="Deactivate" style="cursor:pointer" align="absbottom" /></a>
            <?php } if($row['active'] == '0'){ ?>
            <a href ="action.php?ID=<?php echo $row['ID']; ?>" onclick="return confirm ('You want to activate ?\n\nNo ID: <?php echo $row['ID']; ?>')"><img src="images/off.png" width="16" height="16" border="0" alt="Activate" style="cursor:pointer" align="absbottom" /></a>
            <?php } ?></td>

行动PHP

<?php
session_start();

require_once "inc/db.php";
require_once "inc/tarikh.php";

if(isset($_GET['active'])){
    $status=$_GET['active'];
    $sql_status=mysql_query(" SELECT * FROM jobseeker WHERE id =".$status);
        while($row=mysql_fetch_object($sql_status)){
            $st=$row->active;

            if($st=='0'){
                $status2=1;
                }
                else{
                    $status2=0;
                    }

$update=mysql_query("UPDATE jobseeker SET active = ".$status2. WHERE ID = ".$status);
     if($update){
           header("Location: jobseeker_list.php");
           }
           else{
              echo mysql_error();
              }
     }
?>

我的代码有什么问题吗?请帮帮我

1 个答案:

答案 0 :(得分:1)

您仅向ID提供action.php作为参数。

<a href ="action.php?ID=<?php echo $row['ID']; ?>"

但您只是检查$_GET['active']

if(isset($_GET['active'])){

因此if子句中的代码永远不会执行。我想你想改用$_GET['ID']

这有语法错误(语法高亮应该很明显)

$update=mysql_query("UPDATE jobseeker SET active = ".$status2." WHERE ID = ".$status);
                                                              ^- missing quote

通常的建议:mysql_*函数已弃用,将在以后的PHP版本中删除。您的代码将停止工作。不要使用mysql_*函数编写新代码,使用mysqli_*或PDO对象instad。另外,请查看准备好的语句以防止SQL注入。