2012-04-25 62 views
-1

我已EDITTED具有以下新的錯誤Select語句不工作

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\webareas\ie803\projectx\search.php on line 306 

我的PHP代碼如下這篇文章:

<?php 

$car = mysql_real_escape_string($_REQUEST['car']); 
$model = mysql_real_escape_string($_REQUEST['model']); 
$type = mysql_real_escape_string($_REQUEST['type']); 
$colour = mysql_real_escape_string($_REQUEST['colour']); 
$year = mysql_real_escape_string($_REQUEST['year']); 
$price = mysql_real_escape_string($_REQUEST['price']); 


$con = mysql_connect("--","---","---"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db('-----', $con); 

$sql = "SELECT * FROM Cars WHERE Make ='$car', Model ='$model', Type ='$type', Colour = '$colour', Year = '$year', Price = '$price'"; 
$result=mysql_query($sql, $con); 


{ 
    while($info = mysql_fetch_array($result)){ 
     echo "<tr>"; 
     echo "<td>" . $info['Make']. "</td>"; 
     echo "<td>" . $info['Model']. "</td>"; 
     echo "<td>" . $info['Type']. "</td>"; 
     echo "<td>" . $info['Colour']. "</td>"; 
     echo "<td>" . $info['Year']. "</td>"; 
     echo "<td>" . $info['Price']. "</td>"; 


     echo "<br/><br/><td>" . '<hr>' . "</td>"; 


} 
} 
echo "</tr>"; 
echo "</table>"; 
?> 

線306是while語句。每次更改後,我都會繼續發生錯誤。

非常感謝你

+0

您沒有執行查詢。你必須調用'mysql_query()'。 – 2012-04-25 15:44:01

+1

投票結束。有關如何使用(過時的)mysql擴展的例子很多。 – 2012-04-25 15:47:11

回答

2

SELECT語句只是一個字符串,你必須通過的mysql_query給它來獲得結果集,它是典型的做法如下:

$sql = "SELECT * FROM Cars WHERE Make ='$car', Model ='$model', Type ='$type', Colour = '$colour', Year = '$year', Price = '$price'"; 
$result=mysql_query($sql, $con); 
+0

它說解析錯誤:語法錯誤,在E:\ webareas \ ie803 \ projectx \ search.php行301意外',' – user1356652 2012-04-25 15:44:57

+0

我改變了一下,我有一個不必要的')'在那裏試試編輯 – squarephoenix 2012-04-25 15:45:53

+0

現在它說警告:mysql_fetch_array():提供的參數不是有效的MySQL結果資源在E:\ webareas \ ie803 \ projectx \ search.php行309 – user1356652 2012-04-25 15:47:01

0

你不」噸有請求mysql_query(),嘗試

$sql = "SELECT * FROM Cars WHERE Make ='$car', Model ='$model', Type ='$type', Colour = '$colour', Year = '$year', Price = '$price'"; 
$result = mysql_query($sql) or die("ERROR: ".mysql_error()); 

我希望幫助

編輯 我放在或死語句幫助調試,你可以隨時刪除它,你希望。我個人認爲它更容易。

+0

它說:錯誤:你的SQL語法錯誤;檢查與您的MySQL服務器版本對應的手冊,在第1行的'Model ='gt supersport',Type ='coupe',Color ='black',Year ='2000',Price'附近使用正確的語法 – user1356652 2012-04-25 15:47:34

+0

這就是因爲該SQL語法是錯誤的,請參閱我的答案。 – freshnode 2012-04-25 16:37:26

+0

tomhallam是正確的,你的sytax是錯誤的,改變,爲和應該讓你啓動和運行。 – Ryan 2012-04-25 16:46:22

0

您需要在mysql-fetch-aarray之前使用mysql_query。看到這個page例如如何做到這一點

0

我不認爲你的查詢甚至被執行。我以前從未見過WHERE [column], [column], [column]的語法。

嘗試:

SELECT * FROM Cars WHERE Make ='$car' AND Model ='$model' AND Type ='$type' AND Colour = '$colour' AND Year = '$year' AND Price = '$price' 

我已經添加了一些錯誤檢查,這樣你可以看到你得到什麼mysql的錯誤,如果語法是正確的。

$sql = "SELECT * FROM Cars WHERE Make ='$car', Model ='$model', Type ='$type', Colour = '$colour', Year = '$year', Price = '$price'"; 
$result=mysql_query($sql, $con); 
if($result)  
{ 
    while($info = mysql_fetch_array($result)){ 
     echo "<tr>"; 
     echo "<td>" . $info['Make']. "</td>"; 
     echo "<td>" . $info['Model']. "</td>"; 
     echo "<td>" . $info['Type']. "</td>"; 
     echo "<td>" . $info['Colour']. "</td>"; 
     echo "<td>" . $info['Year']. "</td>"; 
     echo "<td>" . $info['Price']. "</td>"; 


     echo "<br/><br/><td>" . '<hr>' . "</td>"; 


} 
else { 
    die(mysql_error(); 
}