显示不需要的数据

时间:2017-02-19 12:57:13

标签: php mysql forms

我有一个用户输入数据的表单,例如AXZAA QS1QS。此数据发布到我的PHP脚本。 PHP脚本连接到MYSQL数据库,该数据库目前包含2条记录。

这个想法是PHP脚本将获取输入并将其与数据库中的记录进行比较。如果记录存在,则它们显示在网页上的表格中,否则会显示错误消息。

我的PHP脚本存在许多问题,并且多次修改了我的脚本。但是,我遇到的最大问题是:

当表单第一次出现时,消息记录不存在两次,这是在用户输入任何数据并且第一次看到该表单之前。见下图。

enter image description here

输入数据后(当PHP脚本部分正常工作时),如果存在匹配,即存在记录,以及表中的记录,我将收到一条错误消息,告诉我没有找到记录。为了查看我是否可以解决问题,我添加了代码告诉我无法找到哪些记录,找不到的记录是找到的记录以及数据库中我没有记录的其他记录。寻找。我知道我的PHP脚本中的SQL查询告诉脚本从数据库中获取所有内容但是,我会认为if语句可以解决问题。

很抱歉写了这么长的问题,我希望它不会混淆。

enter code here
<?php
    //Connect to the database connection file
    require 'databaseconnection.php';

       $searchBar=(isset($_POST['searchBar']) ? $_POST['searchBar'] :null); 
       $userdata = trim($searchBar);
       $cleaned_data = preg_split('/[\s]+/', $userdata);


    $sql = "SELECT DISTINCT * FROM atable_2";

    $result = mysqli_query($database_connection, $sql);

    echo "<table border>
     <tr>
         <th>Allocation</th>
         <th>Codes</th>
         <th>Names</th>
       </tr>";  



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

    $allocation_id = $putdatabaseanswer_intoarray["allocation"];
    $codes_id = $putdatabaseanswer_intoarray["codes"];
    $names_id = $putdatabaseanswer_intoarray["names"];

       foreach($cleaned_data as $value) {

        if($value==$codes_id) { 

          echo "<tr>";
          echo "<td>" . $allocation_id. "</td>";
          echo "<td>" . $codes_id . "</td>";    
          echo "<td>" . $names_id . "</td>";
          echo "</tr>";

        } 
        else 
        { 
        echo "<br />";
        echo "One or more of the records have not been found: $codes_id";
         echo"<br />";
        } 

      }

    }

  echo "</table>";
?>

1 个答案:

答案 0 :(得分:0)

在像

之类的if语句之后分配$ searchbar会更好
`<?php
    //Connect to the database connection file
    require 'databaseconnection.php';

       if(isset($_POST['searchBar']))
{
    $searchbar = $_POST['searchBar'];
       $userdata = trim($searchBar);
       $cleaned_data = preg_split('/[\s]+/', $userdata);


    $sql = "SELECT DISTINCT * FROM atable_2";

    $result = mysqli_query($database_connection, $sql);

    echo "<table border>
     <tr>
         <th>Allocation</th>
         <th>Codes</th>
         <th>Names</th>
       </tr>";  



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

    $allocation_id = $putdatabaseanswer_intoarray["allocation"];
    $codes_id = $putdatabaseanswer_intoarray["codes"];
    $names_id = $putdatabaseanswer_intoarray["names"];

       foreach($cleaned_data as $value) {

        if($value==$codes_id) { 

          echo "<tr>";
          echo "<td>" . $allocation_id. "</td>";
          echo "<td>" . $codes_id . "</td>";    
          echo "<td>" . $names_id . "</td>";
          echo "</tr>";

        } 
        else 
        { 
        echo "<br />";
        echo "One or more of the records have not been found: $codes_id";
         echo"<br />";
        } 

      }

    }

  echo "</table>";
}
   else{
    echo "<p>Please enter a search term</p>";
   }
?>

然后你可以在那个#34内执行MySQL查询;如果&#34;假设存在值

,而不是让它执行