-1

mysql から製品情報を取得する ajax を使用してライブ検索を作成しようとしています。検索テキスト フィールドに ajax コードを配置した index.php を参照してください。

<html>
<head>
<script>
function showHint(str)
{
if (str.length==0)
  { 
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","product.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>

<p><b>Start typing a name in the input field below:</b></p>
<form> 
First name: <input type="text" onkeyup="showHint(this.value)">
</form>
<p>Suggestions: <span id="txtHint"></span></p>

</body>
</html>

データベースに正しいコードを書いたかどうかわかりません。エラーが表示されていることがわかるので、コードの下部を参照してください。

警告: mysqli_fetch_array() は、パラメーター 1 が mysqli_result であると想定します。

また、それは言った

未定義の変数: a in C ........... この行で for($i=0; $i

<?php
$q = intval($_GET['q']);

$con = mysqli_connect('localhost','root','password','table');
if (!$con)
  {
  die('Could not connect: ' . mysqli_error($con));
  }

mysqli_select_db($con,"ajax_demo");
$sql="SELECT * FROM product WHERE id = '".$q."'";

$result = mysqli_query($con,$sql);

echo "<table border='1'>
<tr>
<th>product name</th>
<th>product retail price</th>
<th>product price</th>
<th>product id</th>
<th>product category</th>
</tr>";

while($row = mysqli_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['product_name'] . "</td>";
  echo "<td>" . $row['product_retail_price'] . "</td>";
  echo "<td>" . $row['product_price'] . "</td>";
  echo "<td>" . $row['product_id'] . "</td>";
  echo "<td>" . $row['product_category'] . "</td>";
  echo "</tr>";
  }
echo "</table>";





//lookup all hints from array if length of q>0
if (strlen($q) > 0)
  {
  $hint="";
  for($i=0; $i<count($a); $i++)
    {
    if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
      {
      if ($hint=="")
        {
        $hint=$a[$i];
        }
      else
        {
        $hint=$hint." , ".$a[$i];
        }
      }
    }
  }

// Set output to "no suggestion" if no hint were found
// or to the correct values
if ($hint == "")
  {
  $response="no suggestion";
  }
else
  {
  $response=$hint;
  }

//output the response
echo $response;

mysqli_close($con);
?>

何がうまくいかなかったのか、どんな考えでも!そしてそれを修正する方法!

午前

4

1 に答える 1

0

あなたが言及した警告は通常、MySQL クエリの実行中にエラーが発生した場合に発生します。それで、

それ以外の

$result = mysqli_query($con,$sql);

使用する

$result = mysqli_query($con,$sql) or die(mysqli_error($con));

これは、MySQL で発生したエラーを見つけるのに役立ちます。

または、phpMyAdmin > db_name > sql でクエリのレプリカを直接実行することもできます

おそらく、テーブル名が間違っている可能性があります。

于 2013-11-15T09:03:03.100 に答える