簡體   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