首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP-如何过滤jQuery自动完成

PHP-如何过滤jQuery自动完成
EN

Stack Overflow用户
提问于 2018-05-25 01:23:39
回答 2查看 159关注 0票数 0

我的脚本使用PHP,我使用jQuery自动完成一个webform来注册事件。jQuery在name文本字段上工作,并在选择名称后完成所有其他文本字段。

但是,我的数据库存储过去事件的所有记录。例如,Susan参加了我之前的5次活动,当我键入name时,textfield将显示5个Susan。我如何过滤掉相同的名字?

我的jQuery代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  $('input.item-autocomplete').on('autocompleteselect', function (e, ui) {
  $.ajax({
  url:"ajax_reg.php",
  dataType:"json",
  data:{
    'name' : ui.item.value,
    'action' : 'get_fulldata'
  },
  success:function(data){
    $("#mobile1").val(data.mobile1);
    $("#mobile2").val(data.mobile2);
    $("#email").val(data.rt_email);
    $("#tf1").val(data.tf1);
    $("#tf2").val(data.tf2);
    $("#tf3").val(data.tf3);
    }
   });
});

更新:对不起,我忘记了SQL代码,我正在另一个php文件中编写SQL。(SQL代码adjax_reg.php)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
$name = $_GET['name'];
$action = empty($_GET['action'])?'':$_GET['action'];
if(empty($name)){
exit('No data');
}
require_once("../winphplib/kernel.php");
require_once ('../winphplib/dbconnect_egen.php');

if($action=='get_name'){
    $sqlquery = "SELECT rt_name FROM reg_ticket WHERE rt_name LIKE '%$name%' LIMIT 15";
    $result = mysql_query($sqlquery) or die(mysql_error());
    while($myrow = MySQL_fetch_array($result)){
        $data[] = strtoupper($myrow['rt_name']);
    }
}elseif($action=='get_fulldata') {
$sqlquery = "SELECT * FROM reg_ticket WHERE rt_name = '$name' LIMIT 1";
$result = mysql_query($sqlquery) or die(mysql_error());
$data = mysql_fetch_assoc($result);
if(count($data)>0){
    list($data['mobile1'], $data['mobile2']) = explode("-", $data['rt_contact']);
    list($data['tf1'], $data['tf2'], $data['tf3']) = explode("-", $data['rt_ic']);
}

}
mysql_free_result($result); 
echo json_encode($data);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-25 01:47:13

您需要获得users的条件,他们参与的标准,至少一个事件。您可能加入了usersevents,但是您需要根据它们的participation过滤users。假设您使用的是以下表:

用户(id,mobile1,mobile2,电子邮件,tf1,tf2,tf3) 事件(id,名称) 参与活动(id、user_id、event_id)

您需要这样的查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select id, mobile1, mobile2, email, tf1, tf2, tf3
from users
where exists (select 1
              from participations
              where users.id = participation.user_id)
and users.name like '%Susan%'

这将为每个用户返回一条记录,其中包含参与至少一个事件的搜索文本,为您提供所需的列。

编辑

我已经看过你编辑的问题了,还有很多问题要解决。

避免在查询中使用SELECT *

问题:

  • 您可能有非常大的数据,这可能会浪费大量的内存和时间。
  • 您可能会将机密数据返回给用户。

在select子句中使用列列表确保只选择所需的内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select mobile1, mobile2, rt_contact, tf1, tf2, tf3, rt_ic ...

会解决这个问题的。

解决你的问题

您必须使用不同的关键字

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select distinct mobile1, mobile2, rt_contact, tf1, tf2, tf3, rt_ic ...

这将选择distinct值,但如果存在不一致,即同一人的名称相同的不同属性,则将返回多条记录。

自动完成将无法工作,如果没有

如果您想要使用LIKE%...%,就像在if中一样,如果您希望select用户的name包含您传递的文本,则必须使用name。而且,如果select并不是唯一的,那么它也不会伤害name,可能也不会伤害id

不推荐使用mysql_函数

使用PDO_函数代替。

永远不要使用查询中的用户输入。

这很容易导致SQL注入,黑客很容易对您的数据库造成伤害,甚至加载他们没有资格加载的数据。将参数化查询与PDO一起使用,或转义参数。

不要编写意大利细面代码

如果将处理数据库的部件从引擎部件与视图部件分离,代码更容易维护。

使数据库规范化

范式中不存在的数据库很少有良好的功能,它们很难维护,容易使用冗余度不一致,而且通常表现不好。

票数 1
EN

Stack Overflow用户

发布于 2018-05-25 01:34:23

在PHP脚本中,只需添加一个GROUP BY子句,就可以调整SQL查询。

我还没有看到您的查询,但是类似这样的内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM events
JOIN artists ON events.artist_id = artists.id
WHERE artist like :searchterm
GROUP BY artists.artist_name
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50525792

复制
相关文章
Koa/Express+TypeScript扩展类型
在我们使用Koa或者Express进行开发时会经常使用中间件进行访问权限过滤或者属性加工,很多时候我们需要把中间件的属性传递给下一个路由函数,但是因为TS类型的限制我们无法直接获取扩展的元素或者无法获取正确的类型。本文讲解了在使用Koa/Express+TypeScript开发时如何扩展中间件上的属性。
用户6256742
2022/07/11
8280
Koa/Express+TypeScript扩展类型
TypeScript入门——扩展类型之枚举
在上一篇文章中聊到了很多TS基础类型,那为什么又出现了扩展类型枚举,我们都知道任何东西都不是平白无故就出现的,都是为了解决特定的问题。枚举只是扩展类型其中之一,比如说还有类型别名,接口,类
程序员法医
2022/08/11
9970
TypeScript入门——扩展类型之枚举
TypeScript系列教程四《扩展类型》
TypeScript 最好玩的应该就是类型系统,随意组合创造,提供基础联合类型、交叉类型,还有一系列的高级函数可以玩转类型。
星宇大前端
2021/07/19
1.1K0
TypeScript系列教程四《扩展类型》
《现代Typescript高级教程》扩展类型定义
在 TypeScript 中,我们可以通过声明文件(.d.ts 文件)来为现有的 JavaScript 库提供类型定义,或者为现有的类型添加额外的属性和方法。这个过程通常被称为“类型声明扩展”。在这篇文章中,我们将详细探讨如何通过声明文件扩展类型定义。
linwu
2023/07/27
6110
TypeScript中的类型
基本类型布尔类型 (boolean)布尔类型表示一个值为真或假的逻辑值。let isDone: boolean = false;数字类型 (number)数字类型表示整数或浮点数。let count: number = 10;let price: number = 3.99;字符串类型 (string)字符串类型表示一串字符。let message: string = "Hello, TypeScript!";数组类型 (array)数组类型表示一个元素的集合。let numbers: number[] =
堕落飞鸟
2023/05/22
1.9K0
TypeScript 在 Vue2 中的类型声明问题
最近在一个新项目中,尝试了vue2+typescript的组合,碰到一个问题,在data属性中,我怎么声明一个变量的类型。
2022/02/25
4.7K0
TypeScript中的类型断言
本文是关于 TypeScript 中的 type assertions 的,它与其他语言中的类型强制转换有相似之处,并通过 as 运算符执行。
疯狂的技术宅
2020/06/19
3.8K0
实现TypeScript中的互斥类型
有这样一个对象,它有两个属性:name与title,在赋值的时候这两个属性只有一个能出现,例如:name出现的时候title就不能出现,title出现的时候name就不能出现。
神奇的程序员
2022/04/11
3.1K0
实现TypeScript中的互斥类型
TypeScript 中的数组类型定义
在 TypeScript 中声明和初始化数组也很简单,和声明数字类型和字符串类型的变量也差不多,只不过在指定数组类型时要在类型后面加上一个中括号 []
Qwe7
2022/03/19
5.4K0
【TypeScript 演化史 -- 8】字面量类型扩展 和 无类型导入
在我上一篇更好的类型推断的文章中,解释了 TypeScript 如何用 const 变量和 readonly 属性的字面量始化来推断字面量类型。这篇文章继续讨论这个,扩展和非扩展字面量类型之间的区别。
前端小智@大迁世界
2022/06/15
1K0
【TypeScript 演化史 -- 8】字面量类型扩展 和 无类型导入
Typescript 中,这些类型工具真好用
你是否曾经用 TypeScript 写代码,然后意识到这个包没有导出我需要的类型,例如下面这段代码提示 Content 在 @example 中不存在:
前端修罗场
2023/10/07
2180
Typescript 中,这些类型工具真好用
Typescript中的复杂类型声明
Typescript为javascript加入了众多类型声明语法,灵活使用可使代码变得健壮,不严谨的类型声明会带来后期的维护麻烦。本篇假设读者已经学会ts的基础类型声明语法,包括type、interface、extends和泛型,在此基础上,聊一聊一些更加复杂的类型声明场景以及解决办法。
腾讯IVWEB团队
2020/06/28
7.2K1
03-TypeScript中的强类型
在js中不能定义类型,而是根据赋值后,js运行时推断类型。在ts中支持强类型,强类型包括string、number(浮点型,不是整型)、boolean、any(任意类型)、Array<T>、自定义类型(枚举、类等) 除了能给变量申明为强类型,参数也可以申明为强类型,方法也可以定义返回类型,方法如果没有返回值,定义为void类型。 var username:string; var age:number; var descrption:any; var isman:boolean; var schools:Ar
用户1910585
2018/05/04
1.9K0
PHP中Redis扩展无法加载问题
phpredis编译出来的redis.so也需要拷贝到"/usr/lib64/php/modules/"中;
叫我可儿呀
2019/11/16
2K0
TypeScript 类型保护
这时就需要用到类型保护,类型保护允许你使用更小范围下的对象类型,常见的类型保护如下:
Leophen
2020/08/05
7190
TypeScript 类型保护
TypeScript 类型系统
针对 JavaScript 上面的问题,聪明的同学就想那我们就给 JavaScript 加个类型吧,和 Java 一样,能够对变量的类型进行定义,这个想法就是 TypeScript 的类型系统, 在很大程度上弥补了 JavaScript 的带来的困惑。
HoneyMoose
2021/11/16
8570
TypeScript 类型系统
TypeScript函数类型
通过如下代码我们实现了一个返回值为number类型的方法,同时我们也对返回值和参数进行了约束
HueiFeng
2020/04/09
7560
TypeScript函数类型
通过如下代码我们实现了一个返回值为number类型的方法,同时我们也对返回值和参数进行了约束
HueiFeng
2020/04/10
7920
TypeScript 类型系统
TypeScript 的学习资料非常多,其中也不乏很多优秀的文章和教程。但是目前为止没有一个我特别满意的。原因有:
lucifer210
2020/08/20
1.4K0
TypeScript 类型系统
点击加载更多

相似问题

TypeScript在扩展语法函数调用中无法推断数组类型

21

在Typescript中扩展泛型类型

141

无法在TypeScript中扩展快速请求

434

在Typescript中扩展外部类型声明

110

在TypeScript中扩展特定类型的数组

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文