doulou9927 2014-12-23 12:28
浏览 9
已采纳

无法在新的PHP页面中显示搜索结果

I am having trouble in displaying my search results onto another php page.

Below is my php code for my second php page:

if (isset($_GET['bookTitle'])) {
    $bookTitle = $_GET['bookTitle'];
    $sqlSearch = "SELECT bookISBN, bookTitle, bookYear, nbc_book.catID, nbc_book.pubID, pubName,  location, catDesc, bookPrice FROM nbc_book
    LEFT JOIN nbc_category ON nbc_book.catID = nbc_category.catID
    LEFT JOIN nbc_publisher ON nbc_book.pubID = nbc_publisher.pubID LIKE CONCAT('%', bookTitle, '%') 
    WHERE bookTitle = " . $_GET['booktitle'] ;
    echo "string";
    $resultSearch = mysqli_query($conn,$sqlSearch) or die (mysql_error());

    while ($row = mysqli_fetch_assoc($resultSearch)){
        $category = $row['catDesc'];
        $bookTitle = $row['bookTitle'];
        $publisherName = $row['pubName'];
        $bookYear = $row['bookYear'];
        $bookPrice = $row['bookPrice'];
        echo "Result found!";
    }
}else{

    echo "Result not found!";
}

mysqli_free_result($resultSearch);
mysqli_close($conn);

This is the error i am getting:

Result not found!
Notice: Undefined variable: querySearch in /

Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, null given in /

Can anyone help me to solve my problem. I would be glad if someone can help me solve this problem.

  • 写回答

1条回答 默认 最新

  • douchendan0040 2014-12-23 12:50
    关注

    WHERE bookTitle = " . $_GET['booktitle'] ;

    you've missed to wrap value with quotes ':

     WHERE bookTitle = '" . $_GET['booktitle'] . "' " ;
    

    Update

    why I am getting the error messages as shown above?

    Because you try to close sql connection apart from opening it!

    I've moved mysqli_free_result($resultSearch); and mysqli_close($conn); inside brasked:

    if (isset($_GET['bookTitle'])) {
      $bookTitle = $_GET['bookTitle'];
      $sqlSearch = "SELECT bookISBN, bookTitle, bookYear, nbc_book.catID, nbc_book.pubID, pubName,  location, catDesc, bookPrice FROM nbc_book
    LEFT JOIN nbc_category ON nbc_book.catID = nbc_category.catID
    LEFT JOIN nbc_publisher ON nbc_book.pubID = nbc_publisher.pubID LIKE CONCAT('%', bookTitle, '%') 
    WHERE bookTitle = " . $_GET['booktitle'] ;
      echo "string";
      $resultSearch = mysqli_query($conn,$sqlSearch) or die (mysql_error());
    
      while ($row = mysqli_fetch_assoc($resultSearch)){
        $category = $row['catDesc'];
        $bookTitle = $row['bookTitle'];
        $publisherName = $row['pubName'];
        $bookYear = $row['bookYear'];
        $bookPrice = $row['bookPrice'];
        echo "Result found!";
    
      mysqli_free_result($resultSearch);
      mysqli_close($conn);
       }
    }else{ 
       echo "Result not found!";
    }
    

    Seems the $_GET['booktitle'] is not provided, but in your code you try to free result and close nothing!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line