【问题标题】:How to remove auto complete duplicates?如何删除自动完成重复项?
【发布时间】:2014-09-30 03:33:03
【问题描述】:

如何删除重复项?我的数据库表中有 4 行具有相同的名称,例如一个品牌 Apple,它使用了 4 次,如何删除其他具有相同名称的重复项?这是为了避免在输入品牌时出现冗余。

<script>
 $(document).ready(function(){
  $("#prod_brand").autocomplete("prod_brand_auto_complete.php", {
        selectFirst: true
  });
 });
</script>

这里是 prod_brand_autocomplete.php

<?php
 $q=$_GET['q'];
 $my_data=mysql_real_escape_string($q);
 $mysqli=mysqli_connect('localhost','root','12148qx3er','buybranded') or die("Database Error");
 $sql="SELECT prod_brand FROM inventory WHERE prod_brand LIKE '%$my_data%' ORDER BY prod_brand";
 $result = mysqli_query($mysqli,$sql) or die(mysqli_error());

 if($result)
 {
  while($row=mysqli_fetch_array($result))
  {
   echo $row['prod_brand']."\n";
  }
 }
?>

【问题讨论】:

  • 旁注:您正在混合 MySQL 函数;他们不混合。 mysql_real_escape_string
  • 如果“删除”是指不获取/显示重复项;使用DISTINCT
  • 我应该把 DISTINCT 放在哪里?
  • 在你的情况下做SELECT DISTINCT column1, column2SELECT DISTINCT prod_brand FROM inventory
  • 您也可以使用LIMIT 1 - 另外,不要忘记更改此mysql_real_escape_string 并在l 之后添加i,以及DB 连接参数。

标签: php forms select autocomplete


【解决方案1】:
$q = $_GET['q'];
$my_data = mysql_real_escape_string($q);
$mysqli = mysqli_connect('localhost', 'root', 'xxx', 'buybranded') or die("Database Error");
$sql = "SELECT * FROM inventory WHERE prod_brand LIKE '%$my_data%' ORDER BY prod_brand";
$result = mysqli_query($mysqli, $sql) or die(mysqli_error($mysqli));    
if ($result) {
    $existBrand = array();
    while ($row = mysqli_fetch_assoc($result)) {
        echo $row['prod_brand'] . "\n";
        if (in_array($row['prod_brand'], $existBrand)) {
            $delSql = "DELETE FROM buybranded.inventory WHERE id='$row[id]'";
            $delResult = mysqli_query($mysqli, $delSql) or die(mysqli_error($mysqli));
            continue;
        }
        $existBrand[] = $row['prod_brand'];
    }
}

【讨论】:

  • 你能在这周围添加一些 cmets 来解释你的答案吗?
  • 您正在将基于 mysql_* 的函数 mysql_real_escape_string 与其余的 mysqli_* 函数混合。这两个 API混合使用。
猜你喜欢
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
  • 2014-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多