Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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_Html_Sql_Database - Fatal编程技术网

Php 数据库检索系统

Php 数据库检索系统,php,html,sql,database,Php,Html,Sql,Database,我为一个学校项目创建了这个网站,但它似乎没有检索数据。我已经看了很久了,不知道为什么它没有恢复。SQL有时在phpMyAdmin中工作,但在接口中从不工作 <?php $con=mysqli_connect("localhost","root","#","book_catalogue"); { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } ?> <div id="wrapper">

我为一个学校项目创建了这个网站,但它似乎没有检索数据。我已经看了很久了,不知道为什么它没有恢复。SQL有时在phpMyAdmin中工作,但在接口中从不工作

<?php

$con=mysqli_connect("localhost","root","#","book_catalogue");

{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
<div id="wrapper">
    <div id="left-col">
        <img src="images/left-img.png" alt="books" />
    </div>
    <div id="header">
        <h1>BOOK CATALOGUE</h1>
    </div>

    <!--Radio buttons that allow user to select the search criteria-->
    <div id="navigation">
        <form name="input" action="indexV4.php" method="get">
                SEARCH BY: ALL<input type="radio" name="books" value="ALL" checked>
                TITLE<input type="radio" name="books" value="TITLE">
                AUTHOR<input type="radio" name="books" value="AUTHOR">
                GENRE<input type="radio" name="books" value="GENRE">
                BOOK TYPE<input type="radio" name="books" value="BOOKTYPE"> 
                <input type="text" name="SEARCH" value="SEARCH">
                <input type="submit" value="GO">
        </form>
    </div>
            <?php
            $Books = $_GET['books'];
            $Search = $_GET['SEARCH'];
                //if the radio button 'TITLE' is selected, this query will run
                if($Books=='TITLE')
                    {
                        $result = mysqli_query($con,"
                        SELECT tbl_books.ISBN, tbl_books.Title, tbl_books.Author, tbl_books.Book_Image, tbl_book_type.Name, tbl_categories.Name FROM tbl_books, tbl_book_type, tbl_categories WHERE (tbl_books.Type_id = tbl_book_type.Type_id) AND (tbl_books.Category_id = tbl_categories.Category_id)
                        WHERE tbl_books.Title LIKE '%$Search%'");
                    }
                    //if the radio button 'AUTHOR' is selected, this query will run
                else if ($Books=='AUTHOR')
                    {
                        $result = mysqli_query($con,"
                        SELECT tbl_books.ISBN, tbl_books.Title, tbl_books.Author, tbl_books.Book_Image, tbl_book_type.Name, tbl_categories.Name FROM tbl_books, tbl_book_type, tbl_categories
                        WHERE (tbl_books.Type_id = tbl_book_type.Type_id) AND (tbl_books.Category_id = tbl_categories.Category_id)
                        WHERE tbl_books.Author LIKE '%$Search%'");
                    }
                    //if the radio button 'GENRE' is selected, this query will run
                else if ($Books=='GENRE')
                    {
                        $result = mysqli_query($con,"
                        SELECT tbl_books.ISBN, tbl_books.Title, tbl_books.Author, tbl_books.Book_Image, tbl_books.Type_id, tbl_books.Category_id FROM tbl_books
                        WHERE tbl_books.Author LIKE '%$Search%'");
                    }
                    //if the radio button 'BOOK TYPE' is selected, this query will run
                else if ($Books=='BOOKTYPE')
                    {
                        $result = mysqli_query($con,"
                        SELECT tbl_books.ISBN, tbl_books.Title, tbl_books.Author, tbl_books.Book_Image, tbl_book_type.Name, tbl_categories.Name FROM tbl_books, tbl_book_type, tbl_categories 
                        WHERE (tbl_books.Type_id = tbl_book_type.Type_id) AND (tbl_books.Category_id = tbl_categories.Category_id)
                        WHERE tbl_book_type.Name LIKE '%$Search%'");
                    }
                    //if 'ALL' is selected, this query will run
                else 
                {
                    $result = mysqli_query($con, "
                    SELECT tbl_books.ISBN, tbl_books.Title, tbl_book_type.Name, tbl_categories.Name FROM tbl_books, tbl_book_type, tbl_categories WHERE (tbl_books.Type_id = tbl_book_type.Type_id) AND (tbl_books.Category_id = tbl_categories.Category_id)
                    WHERE tbl_books.Title OR tbl_books.Author OR tbl_categories.Name OR tbl_book_type.Name LIKE '%$Search%'");
                }
            //while it is retrieving the data, echo it onto the screen
     while($row = mysqli_fetch_array($result,MYSQLI_BOTH))
     {
            ?>
    </div>
    <div id="content">
    <!--Display of search results-->

        <div class="books">
            <img src="book-covers/<?php echo $row['Book_Image']; ?>" alt="<?php echo $row['Title']; ?>" />
            <p class="first"><?php echo $row['Title']; ?></p>
            <p><?php echo $row['Author']; ?></p>
            <p><?php echo $row['ISBN']; ?></p>
            <p><?php echo $row['Type_id']; ?></p>
            <p><?php echo $row['Category_id']; ?></p>
        </div>
    </div>
    <?php
    //close the loop
    }
    ?>
</div>

图书目录
搜索方式:全部
标题
作者
体裁
书型

您的查询一开始就不正确。一条语句中不能有两个WHERE。以下是您的查询语句之一

SELECT tbl_books.ISBN, tbl_books.Title, 
       tbl_books.Author, tbl_books.Book_Image, 
       tbl_book_type.Name, tbl_categories.Name 
FROM tbl_books, tbl_book_type, tbl_categories
WHERE (tbl_books.Type_id = tbl_book_type.Type_id) AND 
      (tbl_books.Category_id = tbl_categories.Category_id)
WHERE tbl_books.Title LIKE '%$Search%'
您是否看到您使用了两次
WHERE



此外,您的代码不安全。您应该使用PDO或至少使用
mysql\u real\u escape\u string

正如invisal所说,一条语句中不能有2个WHERE

我建议更改您的if声明内容。而不是
mysqli_查询($con,“selectblabla”)

这样做:

$sql=“选择BLA BLA”

然后,在if语句创建$sql之后,执行以下操作:

$result = mysql_query($con,$sql);

if($result === false) {
  echo 'Error in query [' . $sql . ']' . "\n" . 'Error: ' . mysql_error();
}
然后您将看到您的查询出了什么问题

编辑: 让我试着澄清一下:

if($Books=='TITLE')
                    {
                        $sql = "SELECT tbl_books.ISBN, tbl_books.Title, tbl_books.Author, tbl_books.Book_Image, tbl_book_type.Name, tbl_categories.Name FROM tbl_books, tbl_book_type, tbl_categories WHERE (tbl_books.Type_id = tbl_book_type.Type_id) AND (tbl_books.Category_id = tbl_categories.Category_id)
                        WHERE tbl_books.Title LIKE '%$Search%'";
                    }
将所有if/else-if语句更改为这样。您所做的是使用if语句来决定变量
$sql
将包含哪个查询


然后,在所有if语句之后,您可以发送
$sql
查询,如我上面所示。如果查询中有错误,
If($result==false)
部分将把mysql的投诉输出到屏幕上,这将帮助您调试查询。

什么是“似乎没有检索数据”?你试的时候发生了什么?你得到了不正确的结果吗?你没有得到结果吗?如果结果不正确,是什么导致结果不正确?你在期待什么?你得到正确的结果了吗?如果是,它们是什么?不要让我们猜测。每当我加载页面时,就会出现以下语句:解析错误:语法错误,在C:\xampp\htdocs\book\u catalog\indexV4.php的第82行出现意外的“{”也许您应该查找{在第82行。第#1课寻求帮助时:如果您收到错误消息,那么您必须将错误消息包含在您的帮助请求中。对于试图帮助调试您的问题的任何人来说,这是唯一最有用的工具。是的,我知道我有两次,但我想不出任何其他方法来查看它是否有效。请您解释一下y这不安全,我是一名高中生,以前从未学过这方面的知识。将$con更改为$sql会有什么作用?正如我对invisal所说,我只是一名高中生,所以你可能需要先把一些东西弄哑,然后再把一些东西弄哑