【问题标题】:Connecting Search Form to MySQL Database And Display Results [duplicate]将搜索表单连接到 MySQL 数据库并显示结果 [重复]
【发布时间】:2014-10-19 01:29:25
【问题描述】:

在我网站的会员页面上,我需要有一个选项,以便会员可以查找其他会员的信息。到目前为止,我所做的是创建一个搜索表单...

<form id="searchform" name="searchform" action="searchresults.php" method="post">
              Search Membership
              <input type="text" name="search" id="textfield" placeholder="Search Members" />
              <input type="submit" name="button" id="button" value="Search" />
</form>

我还在我的数据库中创建了一个包含所有成员信息的表。现在我只需要帮助让表单与数据库表进行通信,并获取输入到搜索表单中的内容并在我的结果页面上显示结果。

我对此并不熟悉,我们将不胜感激。谢谢。

更新: 所以现在我的 searchresults.php 页面上有以下 PHP 代码...

<?php

error_reporting(-1);

$host=""; 
$username="";
$password="";
$db_name="";
$tbl_name="MOAMemberSearch";

mysql_connect($host, $username, $password) or die("cannot connect"); 
mysql_select_db($db_name) or die("cannot select DB");

$sql = "SELECT * FROM MOAMemberSearch";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);

if (false === $result) {
    echo mysql_error();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Member Search - MOA</title>

<link href="css/style.css" rel="stylesheet" type="text/css" />

<link href="css/jquery.ennui.contentslider.css" rel="stylesheet" type="text/css" media="screen,projection" />

<style type="text/css">
#content_wrapper #content table {
    color: #000;
}
</style>
</head>

<body>
<div id="menu_wrapper">

    <div id="menu">

        <ul>
            <li><a href="index.html">Home</a></li>
            <li><a href="boardofdirectors.html">Board</a></li>
            <li><a href="members.php" class="current">Members</a></li>
            <li><a href="ratingcard.html">Rating Card</a></li>
            <li><a href="join.html">Join MOA</a></li>
            <li><a href="contact.html">Contact Us</a></li>
        </ul>       

    </div> <!-- end of menu -->
</div> <!-- end of menu wrapper -->

<div id="header_wrapper">
  <div id="header"><!-- end of slider -->
  </div>
  <!-- header -->

</div> 
<!-- end header wrapper -->

<div id="content_wrapper">
    <div id="content">

      <h1>Search Results</h1>
      <table width="930" border="0" style="font-size:12px">
    <tr>
        <th>Sports</th>
        <th>Last Name</th>
        <th>First Name</th>
        <th>Address</th>
        <th>City</th>
        <th>State</th>
        <th>Zip</th>
        <th>Phone 1</th>
        <th>Phone 2</th>
        <th>Email</th>
    </tr>
<tr>
    <td><?php echo $rows['Sports']; ?></td>
    <td><?php echo $rows['LastName']; ?></td>
    <td><?php echo $rows['FirstName']; ?></td>
    <td><?php echo $rows['Address']; ?></td>
    <td><?php echo $rows['City']; ?></td>
    <td><?php echo $rows['State']; ?></td>
    <td><?php echo $rows['Zip']; ?></td>
    <td><?php echo $rows['Phone1']; ?></td>
    <td><?php echo $rows['Phone2']; ?></td>
    <td><?php echo $rows['Email']; ?></td>
</tr>
      </table>

当前在应显示搜索结果的位置出现错误

【问题讨论】:

  • 是的,确实如此。此错误非常常见,并且易于按照基本步骤进行故障排除。您的查询失败。你需要弄清楚为什么。至少有一个答案解释了这一点以及如何做到这一点。
  • 我已经实现了您提供的“新”答案页面中的代码。同样的错误显示。显然它不能解决问题。介意解释一下吗?
  • 按照this answer 中的步骤解决此问题。对于初学者,您甚至还没有查看 MySQL 报告的错误。这始终是第一步。
  • @John Conde OR John 让我问你这个作为替代方案,不使用服务器数据库而是使用不同类型的文件会更容易吗?
  • 肯定想为此使用数据库。对于您正在做的事情,这是正确的解决方案。

标签: php mysql database forms search


【解决方案1】:

首先,使用mysqli。这将为您省去麻烦并提高安全性。然后,您正在查看类似这样的表单接收页面。

<?php
$con = mysqli_connect(address,user,pass,database);
if(isset($_POST['search'])) {
$result =  mysqli_query($con,"SELECT * FROM members WHERE Name='".mysqli_real_escape_string($con,$_POST['search'])."'");
If(mysqli_num_rows($result)!=0) {
$row = mysqli_fetch_array($result);
//$row is associated array of member data, echo what you want here
}
Else {
//no results
}
}
?>

【讨论】:

  • 那么这个 PHP 代码会出现在我的结果页面上吗?
  • 是的。但是不要复制和粘贴,您必须输入数据库身份验证并让代码对数据进行处理。祝你好运!
  • 好的。所以我将搜索表单链接到结果页面。我将上面的代码放入结果中并输入了我的数据库信息。它什么也没做。我应该在 $result 中的 FROM 和 WHERE 中添加什么?另外,我应该在 $row 中放入什么?这就是用户在表单中输入的内容并创建搜索的原因吗?
  • FROM 是您的表名。不要替换 FROM,只替换它后面的名称。 WHERE 应该是您要搜索的列。然后 $row 是一个关联数组,其中 $row['ID'] 将是您选择的行的 ID 列。那么也许可以将其回显到 HTML 表格中?
  • 除此之外,这应该不受 SQL 注入的影响。我个人不喜欢准备好的陈述,但如果他们愿意,有人可以向你展示如何这样做。
猜你喜欢
  • 2015-09-05
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
  • 2015-03-09
  • 2014-11-29
  • 2019-07-19
  • 2010-11-24
相关资源
最近更新 更多