2010-03-19 70 views
0

我有一个while循环中的表格视图,用户可以在其中查看图书信息。PHP IF语句不考虑变量!

例如,本书的ISBN,书名,读取状态...

基本上,当用户将他们的“readstatus”到“完成”我想要那个特定的表行变成灰色!其中的逻辑是非常简单的,但是我不能让我的IF语句认识到这一点:

if ($readstatus == 'complete') { 
         echo '<tr class="completed">'; 
       } 

        else if ($readstatus != 'complete') { 
         echo '<tr class="reading">'; 
       } 

我明明在这里做得不对,表的内容改变,如果“readstatus” =“的值完成”,如果没有,那么输出是默认

+0

这不是回答这个问题,但是你同样在做'if(a){...} else {...}',没有测试显然会返回true。 – xtofl 2010-03-19 12:54:10

+0

你是否在循环中有if语句,或者如上所述,在'$ readstatus = $ _GET ['readstatus'];'之下? – 2010-03-19 12:54:43

+0

'if'语句应该至少输入其中一个条款;哪一个进入? – xtofl 2010-03-19 12:55:49

回答

1

?这些信息是来自HTML表单还是URL等等?

我怀疑你的意思是把$readstatus = $_GET['readstatus'];更改为$readstatus = $row['readstatus'];

$_GET是来自query string的GET参数的一部分。

$row$row是数据库中的一行,所以如果信息在数据库中 - 我猜想它是 - 您想要使用$row而不是$_GET

+0

感谢您:D – Jess 2010-03-19 12:59:11

1

试试你为什么要使用$_GET改变$readstatus = $_GET['readstatus'];$readstatus = $row['readstatus'];

+0

感谢您的帮助:D – Jess 2010-03-19 12:58:46

0

$ _GET函数依赖于包含在URL的查询字符串中的值,它与数据库无关。我有一个预感,你试图从数据库中获取价值,并且你使用错误的函数来完成它。

+0

' $ _GET'虽然不是一个函数;) – 2010-03-19 12:57:52

0

$_GET['readstatus']表示该值来自浏览器。 $row['readstatus']表示该值来自数据库。

您需要决定哪个应该优先 - 可能是$ _GET ['readstatus']`因为这是用户想要更改。如果是这种情况,则需要在为数据集重新查询数据库之前使用新的readstatus更新数据库。