我从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();
}
}
?>
我的代码有什么问题吗?请帮帮我
答案 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注入。