-1

エラー:

警告: mysql_fetch_array(): 指定された引数は、E:\webareas\ie803\projectx\search.php の 306 行目の有効な MySQL 結果リソースではありません

私の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文です。変更を加えるたびにエラーが発生し続けます。

4

4 に答える 4

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);
于 2012-04-25T15:43:25.073 に答える
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());

編集 デバッグを支援するためにordieステートメントを入力しました。いつでも削除できます。個人的にはそれが簡単になると思います。

于 2012-04-25T15:44:43.347 に答える
0

mysql_query前に使用する必要がありますmysql-fetch-aarray。これを行う方法の例については、このページを参照してください

于 2012-04-25T15:44:54.900 に答える
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();
}
于 2012-04-25T16:36:41.020 に答える