2013-10-23 72 views
-1

我想從MySQL數據庫中檢索列「v162」和「v164」的值。它連接得很好,但不會從兩列中檢索信息。PHP不檢索MySQL結果

我想檢索(即標題相匹配的)如下兩個TINYINT(1)值的列的行:

V162 = 1

V164 = 0

下面的代碼我目前:

$mysqli = mysqli_connect($host, $user, $pass, $database); 

$query = "SELECT * FROM search WHERE title = '$title'"; 

if ($result = $mysqli->query($query)) { 
    $i = 0; 
    while ($row = $result->fetch_row()) { 
     if ($row["v162"] == '1') { 
      echo '<div id="162link' . $i . '">1.6.2</div>'; 
     } 
     if ($row["v164"] == '1') { 
      echo '<div id="164link' . $i . '">1.6.4</div>'; 
     } 
     $i++; 
    } 

    $result->free(); 
} 

$mysqli->close(); 

我以前要求的代碼,其中有一些更嚴重的錯誤,現在我只是需要的數據實際上是修正成功檢索。

+1

第一個調試步驟:在循環中使用'var_dump($ row);'來查看您的實際值是否符合您的期望值。 – mario

+0

你在哪裏設置'$ title'的值? – kaizenCoder

+0

@mario將'SELECT *'更改爲'SELECT v162,v164',並返回「NULL array(2){[0] => string(1)」1「[1] => string(1) }「所以」v162「部分應該正確回顯,而不是」v164「,這正是我想要的。 – swiftsly

回答

1

如果您的查詢由於錯誤而失敗,您的腳本將不會執行任何操作,但您不會看到錯誤。如果它找不到匹配,那麼你的腳本將不會執行任何操作。添加一些代碼來檢查查詢的返回值。

嘗試

$result = $mysqli->query($query) or die($mysqli->error()); // Quit with error if query fails. 

if ($result->num_rows == 0) { // Display something informative if nothing is found. 
    echo '<div>No matches found</div>'; 
} else { 
    $i = 0; 
    while ($row = $result->fetch_row()) { 
     if ($row["v162"] == '1') { 
      echo '<div id="162link' . $i . '">1.6.2</div>'; 
     } 
     if ($row["v164"] == '1') { 
      echo '<div id="164link' . $i . '">1.6.4</div>'; 
     } 
     $i++; 
    } 

    $result->free(); 
} 
0

如果你在做什麼不爲你工作,然後看看文檔。

Here's一個如何初始化連接的例子。

  • 不要緊,如果你說它的工作,你必須是110%肯定。

Here's一個如何使用mysqli選擇數據的例子。

  • 你這樣做是從文檔不同的方式;暗示你可能做錯了
  • 你根本不檢查是否有任何東西被取出;使用手頭的信息來幫助你。

如果你這樣做完全一樣的文檔聲明,仍然您有任何問題(你可親眼纏連接的異常處理程序),然後回來給我們。