私はダミーのオンラインストアを作成して、実際の機能を説明しています。そのうちの1つは、Webサイトでアイテムを検索することです。
このシナリオに対処するために PHP コードを作成しましたが、正しく動作しません。結果と結果の数は一致しますが、もちろん表示されません。
GOOGLE で回答を探していましたが、対応する解決策や問題のヒントが見つかりませんでした。
ここに私が使用しているコードをリストします:
PHP コード (search.php):
<?php
session_start();
include('connect_mysql.php');
$product_name = 'product_name';
$product_qua = 'product_qua';
$product_price = 'product_price';
$product_image = 'product_image';
$product_des = 'product_des';
if (isset($_POST['keyword']))
{
$search = $_POST['keyword'];
if (!empty($search))
{
$query = "SELECT product_name FROM products WHERE product_name='$search'";
$query_search = mysql_query($query);
echo mysql_num_rows($query_search);
if (mysql_num_rows($query_search) >=1)
{
echo 'Results found: <br>';
while ($query_row = mysql_fetch_row($query_search))
{
echo $query_row['product_name'];
}
while($rows = mysql_fetch_array($query_search))
{ ?>
<table id='display'>
<tr><td><?php echo "<img src=$rows[$product_image] class='grow'>" ?></td></tr>
<tr>
<th></th>
<th><strong>Avalible</strong></th>
<th><strong>Price</strong></th>
<th><strong>Description</strong></th>
</tr>
<tr>
<td width='290px'><?php echo "$rows[$product_name]" ?></td>
<td width='290px'><?php echo "$rows[$product_qua]" ?></td>
<td width='290px'><?php echo "£ $rows[$product_price]" ?></td>
<td width='290px'><?php echo "$rows[$product_des]" ?></td>
</tr>
<tr>
<td><p>Please Login To purchase this item </p><br /><a href="login.php">Login</a></td>
</tr>
</table>
<?php
}
} else {
echo 'NO results found.';
}
}
}
?>
HTML コード (index.php):
<form action="search.php" method="post">
<input type="text" name="keyword" size="20" placeholder="Search for products...."/>
<input type="submit" value="Search >>" />
</form>
現在の結果の印刷画面:
お気づきのように、3 つの結果が見つかったと表示されています。これは、私の製品の一般名である検索を行ったことを考えると正しいですが、2 つのテーブルしか表示されず、それらは空です。
ウェブサイトの URL: http://studentnet.kingston.ac.uk/~k1024026/index.php
最後に、私の製品テーブルは以下で構成されています: product_id product_name product_qua product_price product_image product_des product_type 属性/列
誰でも私がこれで間違っているかもしれない場所を見つけることができます....?