繁体   English   中英

如果其他条件不起作用

[英]if else condition not working in a function

我正在做一个函数,我从mysql表中得到以逗号分隔的单词形式的结果。 我使用explode分离了它们,然后尝试将条件检查放入循环的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
    }

几个技巧。

  • 不要在查询中使用* ,特别是如果您只想使用一个字段时。 在选择语句中指定字段。
  • 我建议您使用mysql_fetch_assoc()
  • 您要遍历一个数组四(4)次。 有一个函数可以搜索数组中的元素。 使用in_array()
  • 调试时,可以使用var_dump()来查看每个变量的内容,而不管类型如何。 我建议您自上而下。

祝你好运,希望这会有帮助。 干杯!

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

同样在您的html上,您的选择我不记得该选项的属性检查更多,如selected = selected。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM