2015-06-01 23 views
0

我的目的是从输入键盘搜索书籍类型并对其进行计数。我有错误:计数书的数量是正确的,但是当打印时,它错过了一些结果。例如,我把'f'显示7个结果(右),但是它只打印了2个结果。这里是我的代码:缺少从数据库打印的结果

<form action="" method="POST"> 
     Enter type of book here:<input type="text" size="20" name="sbt"> <br /> 
     <input type="submit" name="sb" value="Search"> 
    </form> 
    <table align="center" border="1" width="600"> 
     <thead><tr align="center"> 
    <tr align="center"> 
      <td><b>Book ID</b></td> 
      <td><b>Book Title</b></td> 
      <td><b>Book Author</b></td> 
      <td><b>Pulished Year</b></td> 
      <td><b>Book Type</b></td> 
      <td><b>Status</b></td> 
     </tr> 
     <?php 
     if (isset($_POST['sb'])) { 
      $s=""; 
      if ($_POST['sbt'] == null) { 
        echo "Please re-enter <br>"; 
       } else 
       { 
        $s = $_POST['sbt']; 
       } 
      $q = "SELECT * FROM book WHERE book_type LIKE '%$s%' "; 
      $r= mysqli_query($conn,$q); 
      while($row = mysqli_fetch_array($r)) { 
      ?> 
     <tr align="center"> 
       <td><?php echo $row['book_no'];?></td> 
       <td><?php echo $row['book_title'];?></td> 
       <td><?php echo $row['book_author'];?></td> 
       <td><?php echo $row['book_year'];?></td> 
       <td><?php echo $row['book_type'];?></td> 
       <td> 
       <?php 
       if ($row['book_quantity'] == 1) { 
           echo "Available"; 
          } 
       else { 
           echo "Not available"; 
          } 

       ?> 
       </td> 

      <?php 
      $c=" SELECT COUNT(DISTINCT(book_no)) AS totaltype FROM book WHERE book_type LIKE '%$s%'"; 
      $s= mysqli_query($conn, $c); 
      if (mysqli_num_rows($s)> 0) 
      { 
       $row2= mysqli_fetch_array($s); 
       echo " Total book type result:"."{$row2['totaltype']}"; 
      } 
     } 

     ?> 
     <?php } ?> 
    </table> 
+3

一) “它错过了一些成果” - 不是一个明确的定义。向我们展示实例:数据库中的内容,您期望在结果中会发生什么,以及它会返回什么结果。和b)见我的好朋友[Bobby Tables](https://xkcd.com/327/) – alfasin

回答

0

$s之前删除"%"和尝试。

例如:

$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$yourPHPVAR%'");