Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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_Database - Fatal编程技术网

Php 从数据库中搜索并显示结果

Php 从数据库中搜索并显示结果,php,mysql,database,Php,Mysql,Database,我是php新手。我试图展示一些使用php的SQL数据库的结果 我有一个包含3个字段的搜索表单。当用户提交此表单时,若搜索值与数据库匹配,则会显示一些结果。若搜索值和数据库不匹配,它将显示一条错误消息 <form method="post"> <label>User ID</label> <input name="textinput" type="text" value=""> <label>Username</l

我是php新手。我试图展示一些使用php的SQL数据库的结果

我有一个包含3个字段的搜索表单。当用户提交此表单时,若搜索值与数据库匹配,则会显示一些结果。若搜索值和数据库不匹配,它将显示一条错误消息

<form method="post">
  <label>User ID</label>  
  <input name="textinput" type="text" value="">

  <label>Username</label>  
  <input name="textinput" type="text" value="">

  <label>Country</label>
    <select name="selectbasic">
      <option value="">Country 1</option>
      <option value="">Country 2</option>
      <option value="">Country 3</option>
    </select>

    <input type="submit" value="Submit">
</form>
结果将显示如下

User ID: 123
Username: XYZ
User Email: xyz
Full Name: xyz
Country: xyz
Division: xyz
User Bio: xyz
请给我一个解决这个问题的最佳方案

这是我的代码,但此代码仅在用户id匹配时显示结果,但我需要匹配3个字段

<?php
$output = NULL;

if(isset($_POST['submit'])){
    $mysqli = NEW MySQLi("localhost","dbuser","password","dbname");

    $search = $mysqli->real_escape_string($_POST['search']);

    $resultsSet = $mysqli->query("SELECT * FROM data WHERE user_id = '$search'");

    if($resultsSet->num_rows > 0) {
        while($rows = $resultsSet->fetch_assoc())
        {
           $user_id = $rows['user_id'];
           $user_name = $rows['user_name'];
           $user_email = $rows ['user_email'];
           $full_name = $rows ['full_name'];
           $country = $rows ['country'];
           $division = $rows ['division'];
           $user_bio = $rows ['user_bio'];

           $output = "
          <td>$user_id</td>
          <td>$user_name</td>
          <td>$user_email</td>
          <td>$full_name</td>
          <td>$country</td>
          <td>$division</td>
          <td>$user_bio</td>";
        }
    }else{
            $output = "No results";
    }

}
?>

通过这句话,您可以从表中获取最后一个id
$sql=“根据id描述限制1从表中选择id_名称顺序”;

然后,您可以使用for循环检查用户输入的字段以及数据库中的所有字段。

首先,您需要与数据库建立连接

以下是一个例子:

try {
   $conn = new PDO("mysql:host=localhost;dbname = your_databasename","user","password");
}
catch (PDOException $e)
{
   echo "Error: ". $e->getMessage() . "\n" ;
   die();
}
然后,您需要将表单的结果添加到查询中

例如:

$db = $conn->prepare('SELECT * FROM table_name WHERE user_id=? AND user_name=? AND country=?');
$db->bindParam(1, $_REQUEST["id"], PDO::PARAM_INT, 30);
$db->bindParam(2, $_REQUEST["name"], PDO::PARAM_STR, 30);
$db->bindParam(3, $_REQUEST["country"], PDO::PARAM_STR, 30);
$db->execute();
$data = $db->fetch(PDO::FETCH_BOTH);
$\u请求之后的“[]”之间的名称是 最后,您需要编写代码以输出结果

比如:

echo "user id:".$data[user_id];
....

我解决了这个问题。这是我的密码

<?php
$output = NULL;

if(isset($_POST['submit'])){
    //Connect to the database
    $mysqli = NEW MySQLi("localhost","dbuser","password","dbname");

    $search = $mysqli->real_escape_string($_POST['search']);
    $username = $mysqli->real_escape_string($_POST['username']);
    $country = $mysqli->real_escape_string($_POST['country']);

    //Query the database
    $resultsSet = $mysqli->query("SELECT * FROM data WHERE user_id = '$search' AND user_name = '$username' AND country = '$country'");

    if($resultsSet->num_rows > 0) {
        while($rows = $resultsSet->fetch_assoc())
        {
       $user_id = $rows['user_id'];
       $user_name = $rows['user_name'];
       $user_email = $rows ['user_email'];
       $full_name = $rows ['full_name'];
       $country = $rows ['country'];
       $division = $rows ['division'];
       $user_bio = $rows ['user_bio'];

           $output = "
      <td>$user_id</td>
      <td>$user_name</td>
      <td>$user_email</td>
      <td>$full_name</td>
      <td>$country</td>
      <td>$division</td>
      <td>$user_bio</td>";
        }
    }else{
            $output = "No Results Found";
    }

}
?>

你试过什么吗?至少你和数据库的连接是怎么写的?你要找的是一个非常简单的小问题,你想不需要重新加载页面就可以完成吗?是的,我在问这个问题之前试过了。但我只能搜索一个字段,$resultsSet=$mysqli->query(“SELECT*FROM data WHERE user_id='$search');但我不知道如何搜索3个字段。您只需要在用户\ id=$id的位置提取信息,其余信息将自动从sql调用的位置提取,然后您可以显示$row=$resultsSet->fetch\ U assoc()$第[“分部”]行;等等,您可以使用
运算符选择更多字段。示例:
SELECT*从数据中,其中user_id='$search'和user_name='$username'和country='$country'
您真的应该等待发布此消息;你看到他们编辑的帖子了吗?我添加了我的代码,主要的问题是你能看到吗?我想你需要从
<?php
$output = NULL;

if(isset($_POST['submit'])){
    //Connect to the database
    $mysqli = NEW MySQLi("localhost","dbuser","password","dbname");

    $search = $mysqli->real_escape_string($_POST['search']);
    $username = $mysqli->real_escape_string($_POST['username']);
    $country = $mysqli->real_escape_string($_POST['country']);

    //Query the database
    $resultsSet = $mysqli->query("SELECT * FROM data WHERE user_id = '$search' AND user_name = '$username' AND country = '$country'");

    if($resultsSet->num_rows > 0) {
        while($rows = $resultsSet->fetch_assoc())
        {
       $user_id = $rows['user_id'];
       $user_name = $rows['user_name'];
       $user_email = $rows ['user_email'];
       $full_name = $rows ['full_name'];
       $country = $rows ['country'];
       $division = $rows ['division'];
       $user_bio = $rows ['user_bio'];

           $output = "
      <td>$user_id</td>
      <td>$user_name</td>
      <td>$user_email</td>
      <td>$full_name</td>
      <td>$country</td>
      <td>$division</td>
      <td>$user_bio</td>";
        }
    }else{
            $output = "No Results Found";
    }

}
?>
<form method="post">
  <label>User ID</label>  
  <input name="search" type="text" value="">

  <label>Username</label>  
  <input name="username" type="text" value="">

  <label>Country</label>
    <select name="country">
      <option value="">Country 1</option>
      <option value="">Country 2</option>
      <option value="">Country 3</option>
    </select>

    <input type="submit" value="Submit">
</form>