2017-08-05 135 views
-1

我很親密,但需要一些幫助。在我的網站上,我有標籤詞(visit here) - 正如你所看到的,我有兩個詞叫做美國,然後它說迫害然後基督徒。這裏是我需要幫助的地方。在MYSQL中按字母順序排列多行和排序

  1. 我只需要一個單詞爲美國而不是兩個單詞。
  2. 在我的網站上的第一行(please go there to view)它說 墮胎美國美國迫害基督徒然後動物......正如你可以看到這不是按字母順序。我需要按字母順序排列其餘的單詞。

現在我正在測試裏面有三個單詞的一行,其餘的只有一個單詞。測試行有美國,迫害,基督徒等字樣。在我學習如何實現我所需要的內容之前,所有行都會有多個單詞。

enter image description here

這裏是我的代碼如下----

<?php 
      include('connect.php'); 
      //now execut Select statement on table 
$sql = mysqli_query($db_xxx, "SELECT word FROM articles GROUP BY word ORDER BY word ASC"); 

while ($row = mysqli_fetch_array($sql)) { 
$link = $row['link']; 
$word_array = explode(", ", $row['word']); $unique_word_array = array_unique($word_array); 

foreach($unique_word_array as $key) 
{ 
     echo "<div class='cloudbox tag'><a href = '../../articlestagresults.php?word=" . $key . "'> " . $key . "</a></div>"; } 

} 

    // Close your database connection 
mysqli_close($db_xxx); 
?> 

再次,我需要幫助結合起來的話美國把所有這些標籤單詞按字母順序,謝謝。如果您需要更多信息,請詢問。我真的需要幫助,再次感謝你。

+0

我認爲你在這裏需要做的是將單詞列分離到它自己的表格中,這將更容易使用,並且它會更好地作爲設計,或者您將不得不使用字列中的這些值通過應用一些存儲過程,如在這個Stackoverflow問題:https://stackoverflow.com/questions/17942508/sql-split-values-to-multiple-rows問題是,你必須分別處理每個值,並命令他們字母順序,這是你當前的數據庫設計更難。 –

+0

好吧,我確實有多個名爲word,word2,word3,word4和word5的列,但是我不知道如何使用上面的代碼將這些列合併爲一個列。所以字行會有美國,然後字行可以有迫害,字3可以有基督徒。如何將所有這些行合併爲一個,謝謝。 – Jenn

+0

針對你的問題的一個快速解決方案是使用php asort()進行排序可能是一個好方法,只要將它應用於$ unique_word_array變量,然後你就會有按字母排序的數組。 –

回答

1

我對$unique_array_word變量使用asort(),下面是你的代碼添加排序函數調用:

$sql = mysqli_query($db_xxx, "SELECT word, word2 FROM post"); 
while ($row = mysqli_fetch_array($sql)) { $link = $row['link']; 
    $word_array = explode(", ", $row['word']); 
    $unique_word_array = array_unique($word_array); 
    asort(unique_word_array); 
    foreach($unique_word_array as $key) { 
    echo "<div class='cloudbox tag'><a href = '../../articlestagresults.php?word=" . $key . "'> " . $key . "</a></div>"; 
    } 
} 

我希望這會幫助ü實現你想要什麼。