2012-05-11 52 views
1

我是MySQL和PHP的新手,並且無法使用此代碼。請你告訴我,我錯了:PHP MySQL選擇語句錯誤

下面的代碼:

<?php 

include('connection.php'); 

$num1 = '1'; 
$num2 = '2'; 

// Get all the data from the table 

$sql = mysql_query("SELECT * FROM table1 WHERE num1 = '$num1' AND num2 = '$num2'"); 

$row = mysql_fetch_assoc($sql) or die("No rows returned by query"); 

while ($row = mysql_fetch_assoc($sql)) { 
echo $row["num1"]; 
echo '</br>'; 
echo $row["num2"]; 
echo '</br>'; 
} 

?> 

如果我改變

$sql = mysql_query("SELECT * FROM table1 WHERE num1 = '$num1' AND num2 = '$num2'"); 

$sql = mysql_query("SELECT * FROM table1 WHERE num1 > '$num1' AND num2 > '$num2'"); 

它的工作原理。它不適用於等號,儘管應該打印出記錄。

謝謝你的時間。

+0

請顯示'table1'表的模式和(相關)內容。 – eggyal

+0

是否有錯誤或者沒有結果?如果出現錯誤,請告訴我們錯誤消息 – Tobias

+0

如果更改查詢,返回的行的值是什麼? – DKSan

回答

1

你的問題是你在獲取結果的兩倍,所以 去掉while循環**($行= mysql_fetch_assoc($ SQL外fetch語句)或死亡(「沒有行通過查詢返回」); )**,它應該工作。 請更新,如果這個工程。

+0

謝謝!這工作。 – Theron

1

再次

SELECT * FROM table1 WHERE num1 = $num1 AND num2 = $num2 
+0

引用'INT'類型在任何數據庫中仍然可以工作 – LeonardChallis

+0

?或者我需要打開一些選項? –

+0

@ Tiago這不起作用。我仍然得到一個空白屏幕。 – Theron

1

嘗試既然你比較數字,請嘗試使用它們不帶引號。

SELECT * FROM table1 WHERE num1=$num1 AND num2=$num2 
+0

該表的設計如下: serial |鍵入:int |長度 - 4 |小數點0 |主鍵|自動增量 num1 |鍵入:int |長度 - 4 |小數點0 |允許爲空 num2 |鍵入:int |長度 - 4 |小數點0 |允許爲空 num3 |鍵入:int |長度 - 4 |小數點0 |允許爲空 – Theron

+0

@ Rajeev S /不起作用。我仍然得到一個空白屏幕。 – Theron