php
  • mysql
  • 2012-11-01 81 views 0 likes 
    0

    我有一個MySQL查詢是檢查三個字段。如果它們中的任何一個是1,我希望它顯示我所關注的文本。我遇到的問題是,它只顯示第一次設置變量,它不會輸出其他行。我的代碼是PHP雖然循環與mysql不添加到變量

    while ($row =mysql_fetch_array($cust_check)){ 
        if ($row['emailmatch'] == "1"){ 
         $output_error = 'Your email is in our database<br />'; 
        } 
        if ($row['phonematch'] == "1"){ 
         $output_error .= 'Your phone number is in our database<br />'; 
        } 
        if ($row['addressmatch'] == "1"){ 
         $output_error .= 'Your address is in our database<br />'; 
        } 
    } 
    

    然後,我只想$ output_error顯示所有值爲1。有人可以幫助嗎?謝謝

    +2

    使用'mysql_ *避免'如果你能 –

    +0

    變化emailmatch也追加,如果$ output_error phonematch等於1,會發生什麼,addressmatch等於1,然後最後emailmatch等於1? $ output_error只會包含emailmatch的一個錯誤消息? –

    +0

    其實,你爲什麼不改變你的SQL語句,只選擇等於1的那個,然後只顯示它們而不是使用你的(可能)許多if語句呢? –

    回答

    4

    如果您的電子郵件匹配,您正在重置您的$ output_error變量。

    $output_error = ''; 
    while ($row =db_fetch_array($cust_check)){ 
        if ($row['emailmatch'] == "1"){ 
         $output_error .= 'Your email is in our database<br />'; 
        } 
        if ($row['phonematch'] == "1"){ 
         $output_error .= 'Your phone number is in our database<br />'; 
        } 
        if ($row['addressmatch'] == "1"){ 
         $output_error .= 'Your address is in our database<br />'; 
        } 
    } 
    
    +0

    謝謝!那工作 – Trey

    相關問題