8--よく遭遇するphpバックグラウンド判断
30690 ワード
値が既に存在するかどうかを判断する
値がNULLかどうかを判断
1つの値が配列に存在するかどうかを調べます.
columnはフィールドを検索し、2つが等しいかどうかを判断します.
ない値を検索するにはnot in
チェックが空ではありません
フィールドの値を変更するupdate/setField
valueフィールドの値
Modalモデル
json
string(45)[{"id":72,"stateid":4},{"id":73,"stateid":1}]がバックグラウンドに伝わるのは,配列ではなく配列の形にするarray(2){[0]=>array(2){[id]=>int(72)["stateid"]=>int(4)}[1]=>array(2){[id]=>int(73)["stateid"=>int(1)}
$banji = Db::name('banji')
->where('schoolid', $user['schoolid'])
->where('classname', $classname)
->find();
//
if ($banji) {
return error(' ');
}
値がNULLかどうかを判断
if (empty($classname)) {
return error(' ');
}
1つの値が配列に存在するかどうかを調べます.
$classids = Db::name('banji')
->where('schoolid', $this->user['schoolid'])
->column('classid');
// in_array
if (!in_array($classid, $classids)) {
return error(' ');
exit();
}
columnはフィールドを検索し、2つが等しいかどうかを判断します.
$ifcreator = Db::name('banji')
->where('schoolid', $this->user['schoolid'])
->where('classid', $classid)
->column('creator');
if ($ifcreator[0] !== $this->user['openid']) {
return error(' !');
exit();
}
ない値を検索するにはnot in
// banji classid
$data = Db::name('banji')
->alias('b')
->join('__USER__ u', 'u.openid=b.creator') //
->field('b.classid,b.classname,b.teachercount,b.studentcount,b.time,u.name')
->where('b.schoolid', $schoolid)
->where('b.classid', 'not in', $classid)
->select();
チェックが空ではありません
//
$ifhas = Db::name('banji_account')
->where('schoolid', $this->user['schoolid'])
->where('classid', $classid)
->where('role', 'student')
->select();
if ($ifhas !== []) {
return error(' ');
exit();
}
フィールドの値を変更するupdate/setField
Db::name('banji')
->where('classid', $classid)
// ->update(['classname' => $classname]);
->setField('classname', $classname);
return success(' ');
valueフィールドの値
$count = Db::name('banji')
->where('classid', $classid)
->value('teachercount');
Modalモデル
$kd = new KaoqinDetails();
$kd->allowField(true)->saveAll($chucount1);
return success(' ');
use app\mini_api\model\KaoqinDetails;
//
public function save()
{
$classid = input('post.classid');
$tag = input('post.tag');
//
$zcount = Db::name('banji_account')
->where('classid', $classid)
->where('role', 'student')
->count();
//
$chucount1 = input('post.data');
$chucount1 = json_decode($chucount1, true); // json
$chuqin_count = 0;
foreach ($chucount1 as $row) {
if ($row['stateid'] == 1) {
$chuqin_count++;
}
}
$account = $this->user['openid'];
$data = [
'openid' => $account,
'classid' => $classid,
'schoolid' => $this->user['schoolid'],
'tag' => $tag,
'count' => $zcount,
'chuqin' => $chuqin_count
];
$kqid = Db::name('kaoqin')->insertGetId($data);
$kd = new KaoqinDetails();
foreach ($chucount1 as &$row) {
$openid1 = Db::name('user')
->where('id', $row['id'])
->field('openid')
->find();
$row['kqid'] = $kqid;
$row['openid'] = $openid1['openid'];
// $row['stateid'] = $stateid;
$row['classid'] = $classid;
unset($row['id']);
}
$kd->allowField(true)->saveAll($chucount1);
return success(' ');
}
json
string(45)[{"id":72,"stateid":4},{"id":73,"stateid":1}]がバックグラウンドに伝わるのは,配列ではなく配列の形にするarray(2){[0]=>array(2){[id]=>int(72)["stateid"]=>int(4)}[1]=>array(2){[id]=>int(73)["stateid"=>int(1)}
$chucount = input('post.data');
$chucount = json_decode($chucount1, true);