2013-10-08 56 views
0

希望这个问题很有意义! 我有具有<select SELECTED> IF语句中的IF语句

<option><select> 

一部分

<select> 

选项本身是从数据库编辑页面,因此他们在循环中有值的显示位ID和友好名称。见下文。

// Start loop to display products 
        $i=0; 
        while ($i < $num2) { 

         $catid=mysql_result($result2,$i,"id"); 
         $catname=mysql_result($result2,$i,"category"); 



       //Write each product 
       echo '<option value="'; 
       echo "$catid"; 
       echo '"'; 
       if ('$catid'=='$f_cat_id') 
       { 
        echo ' selected '; 
       } 
       echo $f_cat_id; 
       echo '>'; 
       echo "$catname"; 
       echo '</option>'; 


       // Repeat loop until finished 
         $i++; 
        } 

你可以看到,因为这是一个编辑的网页我有以前在一个名为$ f_cat_id变量选择的值。现在我想默认它选择IF $ f_cat_id匹配循环中的值。

似乎但是,这种

$f_cat_id=$row['product_category_id']; 

似乎我的变量被设置这样的...不可用在IF语句中循环使用,而?

确定这是一个简单的问题!期待你的帮助! 非常感谢提前。

+0

'如果('$ catid'=='$ f_cat_id')'把它们放在引号中,你比较字符串而不是变量的值。 – 2013-10-08 20:13:23

+0

'$ catid'=='$ f_cat_id'绝对不会匹配:) – RafH

+1

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql) 。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 –

回答

1
if ('$catid'=='$f_cat_id') 

这就是问题的原因。 PHP变量在插入单引号时不会插入。 if条件将始终评估为FALSE并且if块内的代码将不会执行。

为了证明这一点,考虑下面的表达式:

$catid = 1; 
$f_cat_id = 1; 
var_dump('$catid' == '$f_cat_id'); 

output将是:

bool(false) 

所以,你的代码更改为:

if ($catid == $f_cat_id) { 
    # code ... 
} 
+0

感谢您的确认!这是正确的。我没有足够的评级来确认这是正确的后“投票”,我实际上发布这不是我的'总体'问题,而是我没有从数据库中正确拉取数据,因此它不会返回真正!非常感谢! –

+0

不客气:) –