根据mysql_fetch_array结果更改按钮?

时间:2013-11-24 14:17:02

标签: php mysql

我一直在我的网站控制面板上做一些我正在做的游戏。但我似乎无法得到“禁令!”按钮是“Unban!”如果结果$ row ['banned']为FALSE。我得到它输出TRUE:FALSE取决于它在表格中的内容。

任何有助于解决此问题的帮助将不胜感激。我已经挣扎了几天了,我觉得放弃一两次但是必须完成这项工作才能帮助我的游戏管理员更轻松地检查被禁帐户并控制选项。

p.s“connect.php”只有一些使用的变量和mysql连接字符串。

<?php 
require('connect.php');

if(isset($_POST['ban'])){
   $id = $_POST['ban_rec_id'];  
   $query = "UPDATE accounts SET banned=1 WHERE id=$id"; 
   $result = mysql_query($query);
}else if(isset($_POST['unban'])){
   $id = $_POST['unban_rec_id'];
   $query = "UPDATE accounts SET banned=0 WHERE id=$id";
   $result = mysql_query($query);
}

$query = "SELECT id, uuid, name, REPLACE(REPLACE(banned,'0','FALSE'),'1','TRUE') AS banned FROM accounts ORDER BY id ASC";
$result = mysql_query($query);
echo "<center>
    <table>
    <tr>
        <th>Acccount Id</th>
        <th>Username</th>
        <th>In-Game Name</th>
        <th>Banned</th>";
        if($ban === true){
            echo "<th>Ban</th>";
        }
echo "</tr>";
while ($row = mysql_fetch_array($result)) {
        $id = $row['id'];
    $username = $row['uuid'];
    $gamename = $row['name'];
    $banned = $row['banned'];

    echo "<tr>";
    echo "<td>" . $id . "</td>";
    echo "<td>" . $username . "</td>";
echo "<td>" . $gamename . "</td>";
    echo "<td>" . $banned . "</td>";
    if($ban === true){
        if($row['banned'] == FALSE){
            echo "<td>"?>
            <form id="ban" method="post" action="">
                <input type="hidden" name="ban_rec_id" value="<?php print $id; ?>"/>
                <input class="button-small" type="submit" name="ban" value="Ban!"/>
            </form>
            <?php "</td>";
        } else {
            echo "<td>"?>
            <form id="unban" method="post" action="">
                <input type="hidden" name="unban_rec_id" value="<?php print $id; ?>"/>
                <input class="button-small" type="submit" name="unban" value="Unban!"/>
            </form>
            <?php "</td>";
        }
    }
    echo "</tr>";
}
echo "</table></center>";
mysql_close($link);
?>

2 个答案:

答案 0 :(得分:1)

尝试使用字符串为FALSE,因为看起来您可能已经在容易出错的REPLACE(REPLACE(banned,'0','FALSE'),'1','TRUE')中为其分配了String而不是布尔值:

if($row['banned'] == 'FALSE')

答案 1 :(得分:0)

那究竟是什么问题呢?如果'banned'列中的值为false或true,则代码似乎没问题。 但是您应该在列中检查正确的值类型。如果是字符串(varchar,text等),则应该使用“FALSE”或“TRUE”      'FALSE'而不是FALSE