Cara mencapai kesan carian dalam PHP: 1. Mulakan syarat pertanyaan; 2. Kaedah pertanyaan panggilan; panggil kaedah carian "fungsi terlindung _search" (){...}".
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.4, komputer Dell G3.
Bagaimana untuk mencapai kesan carian dalam php?
Pelaksanaan fungsi pertanyaan carian PHP:
Saya menghadapi masalah hari ini: apabila melakukan fungsi "carian", pertanyaan tidak boleh dilakukan selepas memasukkan pertanyaan syarat.
Apa yang saya lakukan ialah memaparkan kandungan dalam pakej jadual data pada halaman utama, tetapi terdapat syarat Kandungan yang dipaparkan pada halaman utama juga mestilah: status medan=0, dan data dengan cetakan=0 boleh dipaparkan dalam senarai halaman utama.
Terdapat fungsi "carian" pada halaman Selepas memasukkan syarat, pertanyaan akan dijalankan berdasarkan syarat.
Untuk carian umum, hanya berikan satu dalam senarai paparan halaman utama kaedah indeks():
$map=array();//初始化查询条件 $map=$this->_search();//调用查询方法 $total = $this->Model->where ($map)->count(); //这个主要是用来计算页面显示数据条数的 if ($total == 0) { $_list = ''; } else { $_list = $this->Model->where ($map)->limit( $post_data ['first'] . ',' . $post_data ['rows'] )->select(); }
Kemudian, tulis sahaja _search():
seperti :
protected function _search(){ $map = array (); $post_data = I ( 'post.' ); if ($post_data ['packageid'] != '') { $map ['packageid'] = array ( 'like', '%' . $post_data ['packageid'] . '%' ); } return $map; }
Akhir sekali, panggil kaedah carian ini dalam menu tetapan "Cari".
Namun, apabila saya melakukan ini, semasa mencari, saya juga perlu memastikan untuk mencari dalam data dengan status medan=0 dan mencetak=0.
Saya telah memikirkan tempat untuk menambah sekatan ini. Selepas pelbagai percubaan dan pertanyaan, saya mendapat tahu. Cuma tambah syarat sekatan terus ke pernyataan SQL (seperti ditunjukkan dalam warna merah di bawah). (Apabila saya mencuba sendiri, saya terus menambah syarat di kawasan biru di bawah, dan gagal setiap kali!)
$map=array(); $map=$this->_search(); $total = $this->Model->where ($map)->where(array('status' =>0,'print_status'=>0))->count(); if ($total == 0) { $_list = ''; } else { $_list = $this->Model->where ($map)->where(array('status' =>0,'print_status'=>0))->limit( $post_data ['first'] . ',' . $post_data ['rows'] )->select(); }
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk mencapai kesan carian dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!