2017-08-05 138 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>"; 
    } 
} 

我希望这会帮助ü实现你想要什么。