Im новое для PHP MySQL. Я разрабатываю сайт для песенников.
Я хочу создавать таблицы в алфавитном порядке на отдельных страницах для каждого алфавита.
Когда пользователь нажимает на алфавит в меню, он направляет на эту страницу site/publicsearch.php?browse=a
Это база данных:
| ID | TITLE | ARTIST | CATEGORY | ALPHABET | +----------------------------------------------------+ | 1 | Amazing love | XXXXXX | Love | a | | 2 | Above all | XXXXXX | Worship | a | | 3 | BXXXX | XXXXXX | Love | b | | 4 | BXXXX | XXXXXX | Worship | b |
Я вытаскиваю выше таблицу базы данных следующим образом: она работает нормально.
<?php $servername = "localhost"; $username = "xxxxxxx"; $password = "xxxxxxxx"; $db_name = "xxxxxxxxxxx"; // Create connection $conn = new mysqli($servername, $username, $password, $db_name); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); echo "Connected successfully"; exit(); } // Attempt select query execution $sql = "SELECT * FROM lyrics_a"; if($result = mysqli_query($conn, $sql)){ if(mysqli_num_rows($result) > 0){ echo "<table class='table'>"; echo "<tr>"; echo "<th>#</th>"; echo "<th>Title</th>"; echo "<th>artist</th>"; echo "<th>cateogry</th>"; echo "</tr>"; while($row = mysqli_fetch_array($result)){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td> <a href=publicsong.php?id=".$row['id'] . ">" . $row['eng_title'] . "</a> " . $row['tel_title'] . " </td>"; echo "<td>" . $row['artist'] . "</td>"; echo "<td>" . $row['category'] . "</td>"; echo "</tr>"; } echo "</table>"; // Close result set mysqli_free_result($result); } else{ echo "No records matching your query were found."; } } else{ echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); } // Close connection mysqli_close($link); ?>
Мне нужны отдельные таблицы в алфавитном порядке:
Alphabet "a" table results `site/publicsearch.php?browse=a` | ID | TITLE | ARTIST | CATEGORY | ALPHABET | +----------------------------------------------------+ | 1 | Amazing love | XXXXXX | Love | a | | 2 | Above all | XXXXXX | Worship | a | Alphabet "b" table results `site/publicsearch.php?browse=b` | ID | TITLE | ARTIST | CATEGORY | ALPHABET | +----------------------------------------------------+ | 3 | BXXXX | XXXXXX | Love | b | | 4 | BXXXX | XXXXXX | Worship | b |
Я попробовал, что приведенный ниже код не работает.
<?php $servername = "localhost"; $username = "xxxxxx"; $password = "xxxxxxx"; $db_name = "xxxxxxxxx"; // Create connection $conn = new mysqli($servername, $username, $password, $db_name); // Check connection if ($conn->connect_error){ die("Connection failed: " . $conn->connect_error); } $alphabet = $_GET['alphabet']; $id = mysqli_real_escape_string($conn,$id); $query = "SELECT * FROM `lyrics` WHERE `alphabet`='" . $alphabet . "'"; $result = mysqli_query($conn,$query); while($row = mysqli_fetch_array($result)) { echo "<br><br>"; echo $row['id']; echo $row['title']; echo $row['lyrics']; echo $row['alphabet']; } ?>
Я новичок. Пожалуйста помоги. Спасибо.
$alphabet = $_GET['alphabet']; $id = mysqli_real_escape_string($conn,$id); $query = "SELECT * FROM `lyrics` WHERE `alphabet`='" . $alphabet . "'";
заменить:
$alphabet = mysqli_real_escape_string($conn,$_GET['browse']); $query = "SELECT * FROM `lyrics` WHERE `alphabet`= '" . $alphabet . "' ";
Вы предлагаете следующий URL: publicsearch.php?browse=a
Но в вашем скрипте вы используете параметр запроса $_GET['alphabet']
Кроме того, вам не нужен отдельный alphabet
столбца в вашей базе данных, вы можете использовать LIKE
SQL :
$letter = $_GET['browse']; $sql = "SELECT * FROM `lyrics` WHERE title LIKE '{$letter}%'"