2015-09-25 77 views
1

Im PHP新的MySQL。我正在開發一個歌本網站。通過url中的特定字段從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']; 
} 
?> 

我是新手。請幫忙。謝謝。

回答

1
$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 . "' "; 
+0

謝謝。成功了! – dan

1

您提出以下網址:publicsearch.php?browse=a

但在你的腳本,你正在使用的請求參數$_GET['alphabet']

此外,你並不需要在數據庫中一個單獨的列alphabet,您可以使用​​:

$letter = $_GET['browse']; 
$sql = "SELECT * FROM `lyrics` WHERE title LIKE '{$letter}%'" 
相關問題