如何借助PHP在MySQL数据库中执行搜索操作?
我有一个数据库表,其中包含字段Name、EmailAddress、Qualification我想使用Name、EmailAddress、Qualification执行搜索,并需要在我的网页中显示用户详细信息。有人能告诉我怎么做吗如何借助PHP在MySQL数据库中执行搜索操作?,php,mysql,Php,Mysql,我有一个数据库表,其中包含字段Name、EmailAddress、Qualification我想使用Name、EmailAddress、Qualification执行搜索,并需要在我的网页中显示用户详细信息。有人能告诉我怎么做吗 <?php $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "myDB"; // Create connection $conn = new mysqli(
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//$name=$_POST['name'];
//$email=$_POST['email'];
//$qualification=$_POST['qualify'];
$sql = "SELECT * FROM form WHERE Name ='kumar' OR EmailAddress = 'kumar@gmail.com' OR Qualification = 'BE' ";
$result=$conn->query($sql);
while($row = $result->fetch_assoc())
{
echo 'Name: '.$row['Name'];
echo '<br /> EmailAddress: ' .$row['EmailAddress'];
echo '<br /> Qualification: '.$row['Qualification'];
echo '<br /> DOB: '.$row['DOB'];
}
mysql_close($con);
$con=mysql\u connect(“本地主机”、“根目录”、“根目录”);
mysql_select_db(“myDB”,$con);
如果(!$con){die(“无法连接:”.mysql_error());}
$sql=mysql\u query(“从搜索中选择*,其中名称为“%arun%”或电子邮件地址为“%arun%”,或限定条件为“%arun%”);
$con->query($sql);
如果(计数($sql)>0 | |$sql!=NULL){
而($row=mysql\u fetch\u数组($sql,mysql\u ASSOC))
{
echo“Name:”.$row['Name'];
回显“
电子邮件:”.$row['Email'];
回显“
地址:”.$row['Address'];
}
}
否则{
回应“你的错误在这里”;
}
mysql_close($con);
请尝试以下代码:
<form id="form" action="" method="POST" >
<fieldset>
<label>First Name </label>
<input type="text" placeholder="Name" value="<?php if (isset($_REQUEST['name'])) echo $_REQUEST['name']; ?>" class="form-control required" id="name" name="name">
<label>EmailAddress</label>
<input type="text" placeholder="EmailAddress" value="<?php if (isset($_REQUEST['EmailAddress'])) echo $_REQUEST['EmailAddress']; ?>" class="form-control required" id="EmailAddress" name="EmailAddress">
<label>Qualification </label>
<input type="text" class="form-control" placeholder="Qualification" value="<?php if (isset($_REQUEST['qualification'])) echo $_REQUEST['qualification']; ?>" id="Qualification" name="Qualification">
<br><input value="Search" name="Search" style="width:100%" type="submit" class="btn btn-success">
</fieldset>
</form>
<?php
if (isset($_POST['Search'])) {
$con = mysql_connect("localhost", "root", "");
mysql_select_db("myDB", $con);
if (!$con) {
die("Could not connect: " . mysql_error());
}
$where = '';
if ($_POST['name']) {
$where .="name like '%" . $_POST['name'] . "%'";
}
if ($_POST['EmailAddress']) {
if (!empty($where))
$where.=" or ";
$where .="email like '%" . $_POST['EmailAddress'] . "%'";
}
if ($_POST['Qualification']) {
if (!empty($where))
$where.=" or ";
$where .="qualification like '%" . $_POST['Qualification'] . "%'";
}
$sql = "select id, name, email, qualification from student where " . $where;
echo $sql;
$res = mysql_query($sql) or die("Error in query " . mysql_error());
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
echo "<br><br>";
echo 'No. : ' . $row['id'];
echo '<br /> Name: ' . $row['name'];
echo '<br /> Email: ' . $row['email'];
echo '<br /> Qualification: ' . $row['qualification'];
}
mysql_close($con);
}
?>
名字
使用PDO,不要使用mysql甚至mysqli。最新的PHP版本甚至不再支持它
$host = 'localhost';
$dbname = 'mydb';
$username = 'root';
$password = 'password';
try {
// create the connection
$conn = new PDO('mysql:host=' . $host . ';dbname=' . $dbname . ';charset=utf8', 'root', 'password');
// set the errmode to exception, set this to ERRMODE_SILENT if you want to hide database errors
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo $e->getMessage(); // catch any connection errors
$conn = false;
}
$select_data = $conn->prepare("SELECT * FROM search WHERE name LIKE :name OR EmailAddress LIKE :email OR Qualification LIKE :qualification ");
$select_data->bindValue(':name', $name); // bind the values to the paramaters
$select_data->bindValue(':email', $email);
$select_data->bindValue(':qualification', $qualification);
$select_data->execute();
if($select_data->rowcount() > 0){ // rowcount returns the amount of results
// atleast 1 result
$results = $select_data->fetchAll(PDO::FETCH_ASSOC); // fetch the results into an array
foreach($results as $row){
echo 'Name: ' . $row['name'];
echo '<br /> Email: ' . $row['email'];
echo '<br /> Address: ' . $row['address'];
}
}
$host='localhost';
$dbname='mydb';
$username='root';
$password='password';
试一试{
//创建连接
$conn=new-PDO('mysql:host='.$host.';dbname='.$dbname.';charset=utf8','root','password');
//将errmode设置为exception,如果要隐藏数据库错误,请将其设置为errmode\u SILENT
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
}捕获(PDO$e){
echo$e->getMessage();//捕获任何连接错误
$conn=假;
}
$select_data=$conn->prepare(“从搜索中选择*,其中名称如:name或电子邮件地址如:email或资格如:资格”);
$select_data->bindValue(':name',$name);//将值绑定到参数
$select_data->bindValue(':email',$email);
$select_data->bindValue(':qualification',$qualification);
$select_data->execute();
如果($select_data->rowcount()>0){//rowcount返回结果量
//至少1个结果
$results=$select_data->fetchAll(PDO::FETCH_ASSOC);//将结果提取到数组中
foreach($结果为$行){
echo“Name:”.$row['Name'];
回显“
电子邮件:”.$row['Email'];
回显“
地址:”.$row['Address'];
}
}
PDO还有其他方法可以做到这一点,但我倾向于这样做。到目前为止,您有没有尝试过?有我们可以帮助的代码片段吗?你面临什么问题?有很多教程,这是基本的php/mysql交互。谷歌“php mysqli select”或“php connect to database”之类的东西你想要任何名字、电子邮件等的详细信息吗?我试过了,但当我用名字arun搜索时,它显示数据库中的所有值。你正在使用的旧的mysql扩展已经从php中删除(在多年被弃用之后)。不要浪费精力去学习它!我已经累了,但是什么也没有来试试这个打印($sql),如果没有任何记录与数据库匹配,我想显示错误消息。你能告诉我应该怎么做吗?你也可以在while循环中检查条件。让我们来看看。但大多数对mysqli的建议是,最新版本的php支持它吗?
$host = 'localhost';
$dbname = 'mydb';
$username = 'root';
$password = 'password';
try {
// create the connection
$conn = new PDO('mysql:host=' . $host . ';dbname=' . $dbname . ';charset=utf8', 'root', 'password');
// set the errmode to exception, set this to ERRMODE_SILENT if you want to hide database errors
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo $e->getMessage(); // catch any connection errors
$conn = false;
}
$select_data = $conn->prepare("SELECT * FROM search WHERE name LIKE :name OR EmailAddress LIKE :email OR Qualification LIKE :qualification ");
$select_data->bindValue(':name', $name); // bind the values to the paramaters
$select_data->bindValue(':email', $email);
$select_data->bindValue(':qualification', $qualification);
$select_data->execute();
if($select_data->rowcount() > 0){ // rowcount returns the amount of results
// atleast 1 result
$results = $select_data->fetchAll(PDO::FETCH_ASSOC); // fetch the results into an array
foreach($results as $row){
echo 'Name: ' . $row['name'];
echo '<br /> Email: ' . $row['email'];
echo '<br /> Address: ' . $row['address'];
}
}