2012-04-25 94 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(); 
}