如何返回找到的项目的结果。而且还有未找到的项目列表

我目前有一个 HTML 搜索表单,需要多个输入(例如:123456、654321、789456)。我正在使用 PHP 搜索数据库,查看这些数字是否作为项目编号存在。然后,它会在回显表中返回有关这些项目的信息。

唯一的问题是,如果数据库中不存在某个数字,即使其他两项存在,也不会返回任何结果。

我怎样才能拥有它,以便它返回有关确实存在的项目的信息,然后列出无法找到其记录的项目?

我的表格和表格生成如下:

<div id="div1">

            <!-- [SEARCH FORM] -->

        <form method="post" action="nweb.php" id="testform">

        <h1>Product Information</h1>

        <!-- <input type="text" name="search" required/> -->

        <textarea name="search" cols="40" rows="5" form="testform"></textarea>

        <input type="submit" value="Search"/>

        </form>


<?php

    if (isset($_POST['search'])) {

      // SEARCH FOR ITEMS

      require "2-search.php";

      

      // DISPLAY RESULTS

      if (count($results) > 0) {

        echo "number found ".count($resultsArray)."<br>";


 echo "<table>";

        echo "<thead>";

        echo  "<tr>";

        echo    "<th>Item number</th>";

        echo    "<th>Stock available</th>";

        echo    "<th>Available Stock</th>";

        echo    "<th>Detailed Description</th>";

        echo    "<th>Division</th>";

        echo    "<th>Gender</th>";

        echo    "<th>Group</th>";

        echo    "<th>Subgroup</th>";

        echo  "</tr>";

        echo "</thead>";

      foreach ($resultsArray as $results) {

        

        foreach ($results as $r) {


            echo "<tbody>";

            echo  "<tr>";

            echo    "<td>". $r['item_number'] ."</td>";

            echo    "<td>". $r['stock_available'] ."</td>";

            echo    "<td>". $r['available_stock'] ."</td>";

            echo    "<td>" . $r['detailed_desc'] . "</td>";

            echo    "<td>" . $r['division'] . "</td>";

            echo    "<td>" . $r['gender'] . "</td>";

            echo    "<td>" . $r['group'] . "</td>";

            echo    "<td>" . $r['sub_group'] . "</td>";

            echo  "</tr>";

            echo "</tbody>";

   }

      }

            echo "</table>";  

      } else {

        echo "No results found";

      }

    }

    ?>

    </div>

如果有人可以提供帮助,我们将不胜感激。


aluckdog
浏览 78回答 1
1回答

拉风的咖菲猫

搜索词位于您的$searchFor数组内,因此已经处理完毕。现在我们只需要找到一些方法来显示这些而不是表格。让我们修改处理结果计数的代码。尝试这样的事情:foreach ($resultsArray as $key => $results) {&nbsp; &nbsp; if (count($results) > 0) {&nbsp; &nbsp; &nbsp; &nbsp; foreach ($results as $r) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo "<tbody>";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo "</tbody>";&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; echo "No results found for ". $searchFor[$key];&nbsp; &nbsp; }}您希望计数检查位于您的foreach($resultsArray as $results). 这样您就可以检查每个as $results数组。$key 包含当前迭代的索引(1st = 0、2nd = 1 等),因此您可以使用它来访问 searchedFor 数组,其中包含分解的搜索词。
打开App,查看更多内容
随时随地看视频慕课网APP