私はPHPを初めて使用しています。私が書いたこのコードは、MySQLデータベーステーブルを示しています。私は、名前またはIdが与えられた値と一致する行を検索して表示したい。私が書いた本はmySQLは文字列ではなく数値を検索します
HTML-
<form action="" method="post" name="register">
<div class="mail-text">
Search by Name or ID:
</div>
<input name="search" type="text" size="70" onClick="border: 1px solid #30a8da;" id="mail"/>
<input name="search_button" type="submit" value="Search" onclick="return error()"/>
</form>
php-
$con = mysqli_connect('127.0.0.1' , 'root' , '' , 'erp');
if (!$con)
{
die("Connection failed : " . mysql_error());
}
$query ="SELECT * FROM product_info";
$result = mysqli_query($con,$query);
echo " <table border='1'>
<tr>
<th>ID</th>
<th>Name</th>
<th>Material Fees</th>
<th>Employee Fees</th>
<th>Production Per Day</th>
</tr>";
if (isset($_POST["search"]))
{
$search_word=$_POST['search'];
}
if(!empty($search_word))
{
$query ="SELECT * FROM product_info WHERE name= ".$search_word." or id=".$search_word;
$result = mysqli_query($con,$query);
}
while ($row = mysqli_fetch_assoc($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['material_fees'] . "</td>";
echo "<td>" . $row['worker_fees'] . "</td>";
echo "<td>" . $row['production_capacity'] . "</td>";
echo "</tr>";
}
問題は、与えられた検索語が番号(ID)がある場合、このコードは完璧に動作していることであるコード - しかし、もし文字列(名前)を指定すると、次のエラーが返されます。
警告:mysqli_fetch_assoc()は、パラメータ1がmysqli_result C中:行の\ xamppの\ htdocsに\ ERP \ PHP \のshow_product.php 114
これはwhile ($row = mysqli_fetch_assoc($result))
第114ライン - である誰かが間違ってここで行われているものを説明していただけますか?
最初に修正してください。 sqlキーワードの間にスペースを入れてください。$ query = "SELECT * FROM product_info"; – xFighter
2番目のクエリ$ query = "SELECT * FROM product_info WHERE name = '"。$ search_word。 "' OR id = '"。$ search_word。 "'"; – xFighter
クエリが何も返さず、配列にフェッチするものがない場合、何も返されず、パラメータが無効/設定されておらず、エラーを修正するために、クエリを確認する必要があるため正解で何かを返します。 – SteffenCH