php
  • mysql
  • sql
  • 2014-11-21 62 views 0 likes 
    0

    我手上有一個相當奇怪的錯誤,我無法弄清楚。我已經嘗試通過將$ username的值更改爲實際值來進行調試,並且它顯示結果正常,我已經回顯了SQL查詢以查看正在傳遞哪些值,並且它們都是正確的,但是沒有顯示任何結果。奇怪的SQL錯誤 - 沒有打印出

    任何想法?謝謝

    $sql = mysql_query("SELECT username1, username2 FROM friends WHERE username1 = '$username' OR username2 = '$username' AND friends >= 2") or die (mysql_error()); 
    while ($row = mysql_fetch_assoc($sql)) { 
         echo "<p>".$row['username1']."</p>"; 
    } 
    
    +2

    可以像'或(USERNAME2 =「$用戶名」和朋友> = 2)' – 2014-11-21 16:21:34

    +2

    在mysql中有傾倒的SQL字符串並運行它,看看你得到預期的結果? – 2014-11-21 16:22:29

    +0

    在你的where條件和「like」運算符中使用括號 – 2014-11-21 16:22:59

    回答

    2

    你沒有照顧AND優先在OR。你需要添加括號。

    $sql = mysql_query("SELECT username1, username2 " . 
            "FROM friends " . 
            "WHERE (username1 = '$username' OR username2 = '$username') AND friends >= 2") or die (mysql_error()); 
    while ($row = mysql_fetch_assoc($sql)) { 
         echo "<p>".$row['username1']."</p>"; 
    } 
    
    +0

    完美,它的工作!謝謝! – 2014-11-21 16:27:46

    +1

    使用'where'$ username'IN(username2,username2)AND(friends> = 2)'也會起作用。儘管如果增加更多條款仍然會受到同樣的問題。 – 2014-11-21 16:37:33

    相關問題