在下拉列表中显示唯一数据PHP mysql

时间:2015-06-24 06:16:53

标签: javascript php jquery html mysql

我在mySql中有一个数据库。我在下拉列表中显示其中一个字段。此字段包含可能包含重复数据的行。例如

  • 面包;乳;黄油;面包;乳
  • 姜;西红柿;姜;脂
  • 蛋糕;面包

现在我希望这些数据在下拉列表中显示为

  • 面包
  • 番茄
  • 蛋糕

distinct关键字不会在这里工作我猜是因为我想从每一行和行内读取数据并且唯一地显示它。我们必须打破数据并显示它.. !!

感谢您的支持......

4 个答案:

答案 0 :(得分:0)

在查询数据库时使用DISTINCT

SELECT DISTINCT Field FROM table

答案 1 :(得分:0)

许多答案都说use distinct这里毫无意义,因为列的值类似于"bread;milk;butter;bread;milk"

将字符串拆分为;,并使用相同的键和值

将它们插入数组中
$distinctArray="";

$data[]= explode(";",$str);
foreach($data as $string){
  $distinctArray[string]=$string;
}

此数组将替换重复项,并返回1个映射。

答案 2 :(得分:0)

使用explodearray_mergearray_unique。如下所示:

$result = array();
while($namerow = mysql_fetch_array($nameresult)) {
    $result = array_merge($result, explode($namerow["expanseType"], ";"));
}
$result = array_unique($result);
foreach($result as $option) {
    echo "<option>$option</option>";
}

答案 3 :(得分:0)

如果要在Query本身中过滤重复值(推荐):

您可以使用

SELECT DISTINCT(`<column_name>`) FROM `<table_name>`;

如果只想在脚本级别过滤它:

您可以使用

while($row = mysqli_fetch_assoc($result)) {
     $items[] = $row['column_name'];
}
$items = array_unique($items);