控制器代码
出来的数据

没错,我想的数据都在了,但是我想提取全部的name的值怎么做? 我知道其中一个是可以这样表示 $shuju0 。但是我不是要一个,而是多个,那该怎么办?主要是多维数组啊,这个键值对怎么解决
我是用来弄ajax的用户名的唯一性的,如果大神们有什么更好的方法取这个值来比较,留下言谢谢
要解决的问题是:我要弄ajax的用户名的唯一性,所以要这些name字段的全部数据取比较,但是$shuju0 $shuju1 $shuju2 我不可能一个个拿去比较啊,所以该怎么解决,肯定是用一个变量保存起来然后拿去比较
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这条PHP 代码最终生成的SQL语句为
最终只会获取到所有符合nihao为1的name的值。
而你的提问有点太笼统。说不出来你要解决什么。这个取出来的就是二维数组,格式如下
如果只是想判断用户名是不是存在,这最简单了,不要全部取出来,如果这样为什么还用数据库,数据库不仅仅是用来存数据的,还可以进行数据分析。
比如查询是否是为唯一的可以前台吧用户输入的用户名ajax发送给后台。
后台进行比较
新建一个$re= array();然后foreach循环$data
既然是TP 那么就直接
getField("name",true);也可以在现有的基础上使用
array_column函数取出name的一维数组再通过in_array判断ps: 话说咋不直接把要验证唯一的name加入sql中查询呢?
保证名称唯一性你这样全部读出来,再匹配...如果数据大的话还不卡死了.
你拿到用户输入的name值,再去数据库里查询是不是存在,不用先全读出来
$shuju = $model->field("GROUP_CONCAT(name) as name2")->find();
$shuju['name2'] 就是所有的name
上面各位都提到了,总结一下:
如果只想取某个字段的一维数组,可以用getField('name',true);
如果要验证唯一性,没听过把所有的拿出来比较的,这个性能很差的,不可能这样做的。
查找一下就行了:
不太懂你的键值对,如果你要ID的话 你就应该用$model->getFiled('user_id,name',true);取出来的效果就是user_id为键,name为值的一维数组,然后直接in_array一次就可以搞定你的唯一性,但是如果你只要name的话,索引为0开始的那种,你就直接用$model->getFiled('name',true);