【问题标题】:PHP MYSQL if field equals checked echoPHP MYSQL 如果字段等于检查回显
【发布时间】:2014-05-19 17:21:41
【问题描述】:

数据库中的每个用户都被分配了一个级别,他们是一个级别表,每个级别都有权限,例如登录时的“view-clients”用户的级别被设置为 $_SESSION['level'] 我需要创建一个如果用户的级别“view-clients”被“选中”,则 if 语句将回显代码。

这是有的代码,但即使检查它也不会回显。

<?php
$level = mysql_real_escape_string($_SESSION['level']);
include("include/config.php");
$con=mysql_connect($db_host,$db_uname,$db_pwd,$db_name);
mysql_select_db($db_name);
$query = "SELECT * FROM levels WHERE name='$level'";

            $result=mysql_query($query);
            while($rows = mysql_fetch_array($result)){
                $a1=$rows['0'];
                $a2=$rows['1'];
                $a3=$rows['2'];
                $a4=$rows['3'];
                $a5=$rows['4'];
                $a6=$rows['5'];
                $a7=$rows['6'];
                $a8=$rows['7'];


if ($a5=="checked") { 

echo "Clients"; 

     }

 }

?>

我尝试了一些方法,例如不使用变量作为会话。 感谢您的帮助。

【问题讨论】:

  • 所以namelevels 中是唯一的吗?你有没有在循环中尝试var_dump($row[5]);,看看你是否得到了什么?
  • 我想这是我出错的地方,它没有输出任何东西。我对所有内容都进行了三次检查,并且拼写正确?

标签: php mysql session if-statement echo


【解决方案1】:

我猜你忘记开始会话了。

试试看

  <?php
  session_start();
  $level = mysql_real_escape_string($_SESSION['level']);
  ....

$level 未定义时,您的查询将找不到并产生结果。

也改变这个

 mysql_fetch_array

mysql_fetch_row

看看here fetch row 和 fetch array 和 fetch assoc 的区别

【讨论】:

  • 它没有显示任何内容
  • 尝试在页面顶部ini_set('display_errors',1); 或在您的php.ini 中定位并执行此操作display_errors = on
  • 如果什么也没发生,那么您必须检查您是否真的提交了具有 $_SESSION['level'] 的值,如果不是,则检查您是否也在定义此变量的文件中创建了 session_start()。
  • 已添加,仍然没有显示,它曾经显示错误,但后来我发现了错误并修复了它们。
  • 正如我所说,检查您定义 session['level'] 的另一个文件并检查您是否有 session_start()。
猜你喜欢
  • 2016-01-05
  • 1970-01-01
  • 2012-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多