Select语句不工作
我已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语句。每次更改后,我都会继续发生错误。
非常感谢你
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);
它说解析错误:语法错误,在E:\ webareas \ ie803 \ projectx \ search.php行301意外',' – user1356652 2012-04-25 15:44:57
我改变了一下,我有一个不必要的')'在那里试试编辑 – squarephoenix 2012-04-25 15:45:53
现在它说警告:mysql_fetch_array():提供的参数不是有效的MySQL结果资源在E:\ webareas \ ie803 \ projectx \ search.php行309 – user1356652 2012-04-25 15:47:01
你不”吨有请求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());
我希望帮助
编辑 我放在或死语句帮助调试,你可以随时删除它,你希望。我个人认为它更容易。
它说:错误:你的SQL语法错误;检查与您的MySQL服务器版本对应的手册,在第1行的'Model ='gt supersport',Type ='coupe',Color ='black',Year ='2000',Price'附近使用正确的语法 – user1356652 2012-04-25 15:47:34
这就是因为该SQL语法是错误的,请参阅我的答案。 – freshnode 2012-04-25 16:37:26
tomhallam是正确的,你的sytax是错误的,改变,为和应该让你启动和运行。 – Ryan 2012-04-25 16:46:22
我不认为你的查询甚至被执行。我以前从未见过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();
}
您没有执行查询。你必须调用'mysql_query()'。 – 2012-04-25 15:44:01
投票结束。有关如何使用(过时的)mysql扩展的例子很多。 – 2012-04-25 15:47:11