Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP搜索表_Php_Mysql - Fatal编程技术网

使用PHP搜索表

使用PHP搜索表,php,mysql,Php,Mysql,我在我的网站上有一个表单,用于将信息发送到MySQL表,然后我有一个名为read.PHP的PHP文件,它从MySQL表中检索信息并将其显示在页面上。这工作完全好,我没有任何问题。不过,我现在想添加一个搜索功能,以便可以通过诸如名字、姓氏、电子邮件等内容搜索该表 这是我的read.php文件: <html> <head> <title>messages</title> </head> <body> <h1>Mess

我在我的网站上有一个表单,用于将信息发送到MySQL表,然后我有一个名为read.PHP的PHP文件,它从MySQL表中检索信息并将其显示在页面上。这工作完全好,我没有任何问题。不过,我现在想添加一个搜索功能,以便可以通过诸如名字、姓氏、电子邮件等内容搜索该表

这是我的read.php文件:

<html>
<head>
<title>messages</title>
</head>
<body>
<h1>Message Center</h1>

<?php

$con = mysqli_connect('localhost', 'removed', 'removed', 'removed');
$result = mysqli_query($con,"SELECT*FROM specialisttable");

echo"<table border='1'>
Specialist Table
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Phone</th>
<th>Email</th>
<th>Website</th>
<th>Speciality</th>
<th>Street Name</th>
<th>Suburb</th>
<th>City</th>
<th>Post Code</th>
<th>Comments</th>
</tr>";

while($row = mysqli_fetch_array($result))
{

{
  echo "<tr>";
  echo "<td>" . $row['firstname'] . "</td>";
  echo "<td>" . $row['lastname'] . "</td>";
  echo "<td>" . $row['phone'] . "</td>";
  echo "<td>" . $row['email'] . "</td>";
  echo "<td>" . $row['website'] . "</td>";
  echo "<td>" . $row['speciality'] . "</td>";
  echo "<td>" . $row['streetname'] . "</td>";
  echo "<td>" . $row['suburb'] . "</td>";
  echo "<td>" . $row['city'] . "</td>";
  echo "<td>" . $row['postcode'] . "</td>";
  echo "<td>" . $row['comments'] . "</td>";
  echo "</tr>";
}

}
echo"</table>";
mysqli_close($con);

?>
<br>
<br>
<a href="index.html">Click to return to homepage</a>
</body>
</html>
我可以为姓氏和任何其他字段做同样的事情,但这会使代码非常混乱,我认为这不是最有效的方法

如果有人能告诉我如何有效地使用搜索功能,我将不胜感激


非常感谢。

您应该使用搜索变量来构建MySQL语句,而不是事后。从specialisttable中选择*,其中firstname='$firstnamesearchvariable'。等等。如果您不想在搜索中保持精确,请使用LIKE和%通配符。选择*FROM specialistable,其中firstname(如“%$firstnamesearchvariable%”)将返回任何包含$firstnamesearchvariable的firstname。选择*FROM:在其中留出一些空间。感谢您的帮助,Andrew,但是我不完全确定如何在代码中使用LIKE和通配符。请您具体一点。无论如何,谢谢你的帮助。
while($row = mysqli_fetch_array($result))
{
if($search=="")
{
  echo "<tr>";
  echo "<td>" . $row['firstname'] . "</td>";
  echo "<td>" . $row['lastname'] . "</td>";
  echo "<td>" . $row['phone'] . "</td>";
  echo "<td>" . $row['email'] . "</td>";
  echo "<td>" . $row['website'] . "</td>";
  echo "<td>" . $row['speciality'] . "</td>";
  echo "<td>" . $row['streetname'] . "</td>";
  echo "<td>" . $row['suburb'] . "</td>";
  echo "<td>" . $row['city'] . "</td>";
  echo "<td>" . $row['postcode'] . "</td>";
  echo "<td>" . $row['comments'] . "</td>";
  echo "</tr>";
}
else if($row['firstname']==$search)
{
echo "<tr>";
  echo "<td>" . $row['firstname'] . "</td>";
  echo "<td>" . $row['lastname'] . "</td>";
  echo "<td>" . $row['phone'] . "</td>";
  echo "<td>" . $row['email'] . "</td>";
  echo "<td>" . $row['website'] . "</td>";
  echo "<td>" . $row['speciality'] . "</td>";
  echo "<td>" . $row['streetname'] . "</td>";
  echo "<td>" . $row['suburb'] . "</td>";
  echo "<td>" . $row['city'] . "</td>";
  echo "<td>" . $row['postcode'] . "</td>";
  echo "<td>" . $row['comments'] . "</td>";
  echo "</tr>";
}