if else条件不在函数中工作

时间:2013-06-03 23:56:02

标签: php

我正在创建一个函数,其中我以逗号分隔的单词形式从mysql表中获取结果。我通过使用explode将它们分开,然后尝试在for循环的if和else语句中进行条件检查。但条件检查不起作用我试图回应来自数据库的结果,结果是V并且我的函数中有V的条件检查但是它在这里不起作用是我的代码

    function partner_diet($page,$user_id)
    {
        $getrow=mysql_query("SELECT * from partner_prefrences where uid='$user_id'");
        $results=mysql_fetch_array($getrow);
        $string=$results['diet'];
        $string = preg_replace('/\.$/', '', $string); //Remove dot at end if exists                                                       
        $array = explode(',', $string); //split string into array seperated by ', '
         //loop over values

        ?>
        <select name="mipdiet" class="mipdiet" multiple="multiple"> 
        <option  <?php foreach($array as $value) { if($value=='V') {?> checked <?php } } ?> name="pdiet" value="V"> Vegetarian </option>
        <option  <?php foreach($array as $value) { if($value=='N') {?> checked <?php } } ?> name="pdiet" value="N"> Non Vegetarian </option>
        <option  <?php foreach($array as $value) { if($value=='J') {?> checked <?php } } ?> name="pdiet" value="J"> Jain </option>
        <option  <?php foreach($array as $value) { if($value=='E') {?> checked <?php } } ?> name="pdiet" value="E"> Eggetarian </option>
        </select>
        <?php
    }

2 个答案:

答案 0 :(得分:3)

一些提示。

  • 请勿在查询中使用*,尤其是在您打算使用一个字段时。在select语句中指定字段。
  • 我建议您使用mysql_fetch_assoc()
  • 你将数组循环四(4)次。有一个函数可以搜索数组中的元素。使用in_array()
  • 调试时,无论类型如何,都可以使用var_dump()查看每个变量的内容。我建议你从上到下。

Goodluck,希望这会有所帮助。干杯!

答案 1 :(得分:1)

我不是php的专家,但$ string是数据库中列的数组 你不需要循环吗???因为你知道你有一个数组,你尝试删除数组末尾的点。

另外在您的html上你的选择我不记得该选项的属性检查更像是选择=选择。