Как связать операторы SQL Select с кнопкой HTML с помощью PHP - PullRequest
0 голосов
/ 20 сентября 2018

Я подключился к базе данных MySQL, используя PHP.База данных о книгах, которая имеет различные столбцы, такие как идентификатор, название, автор и цена.Сейчас я пытаюсь создать ссылки «Просмотр таблицы», «Просмотр по заголовку» и «Просмотр по автору», чтобы пользователи могли использовать эти ссылки для просмотра содержимого моей таблицы соответственно.

Я создалтри кнопки, но теперь я не могу понять, как заставить их показывать столбцы отдельно.Ниже мой php код:

    <!DOCTYPE html>
<html>
<head>
    <title>Books</title>
    <link rel="stylesheet" type="text/css" href="bookstyle.css">
</head>
<body>
<button>View Table</button>
<button>View by Title</button>
<button>View by Author</button>

<table>
    <tr>
        <th>Id</th>
        <th>Title</th>
        <th>Author</th>
        <th>Price</th>
    </tr>
<?php
$conn = mysqli_connect("localhost", "root", "", "my_book_collection");

// Check connection, if failed show error
if ($conn-> connect_error) {
    die("Connection failed:". $conn-> connect_error);
}
$sql = "SELECT id, title, author, price from books";
$result = $conn -> query($sql);

if ($result -> num_rows > 0){
// Output data for each row
    while ($row = $result -> fetch_assoc()){
        echo "<tr><td>". $row["id"]. "</td><td>". $row["title"]. "</td><td>". $row["author"]. "</td><td>". $row["price"]. "</td></tr>";
    }
echo "</table>";
}
else {
    echo "0 results";
}$conn-> close();
?>

</table>
</body>
</html>

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Я понял это самостоятельно.Вероятно, это не лучший способ сделать это, но я создал 2 отдельных файла .php, один для автора и один для заголовков.Я удалил код, не относящийся к автору или названию (например, идентификатор и цена).В общем, я просто создал новую таблицу для каждой, а затем сделал ссылки для отдельного доступа к каждой таблице.Каждый файл .php имеет 3 ссылки: «Просмотреть таблицу», «Просмотреть авторов», «Просмотреть заголовки».

0 голосов
/ 20 сентября 2018

Вы должны указать своему оператору SQL, по какому столбцу упорядочить.Вы можете передать это по ссылке.Например,

<th><a href="?order=author">Author</a></th>

, затем в вашем SQL измените значение на

'SELECT id, title, author, price FROM books ORDER BY '.$_GET['order'].' ASC'

НО, прежде чем реализовать это, ознакомьтесь с атаками внедрения SQLи измените свой код, чтобы контролировать, какое значение передается в SQL.

Вот основные сведения:

if ($_GET['order'] == 'author') $order = 'author';
if ($_GET['title'] == 'title') $order = 'title';
etc.

Переменная нуждается в некоторой очистке.

Затем измените свой SQLзаявление:

'SELECT id, title, author, price FROM books ORDER BY '.$order.' ASC'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...