ホームページ >バックエンド開発 >PHPチュートリアル >PHPクエリと複数条件クエリ
単一条件クエリ:
1. まず、テーブル内のデータを表示するためのテーブルが必要です:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <table border="1" cellspacing="0" cellpadding="0"> <tr> <td width="200">编号</td> <td width="200">姓名</td> <td width="200">电话</td> <td width="200" >分组</td> </tr> <?php $db = new mysqli("localhost","root","12345678","heiheihei"); $sql = "select * from contacts"; $r = $db->query($sql); //传值 while ($attr = $r->fetch_row()) { echo " <tr> <td>{$attr[0]}</td> <td>{$attr[1]}</td> <td>{$attr[2]}</td> <td>{$attr[3]}</td> </tr>"; } ?> </table> </body> </html>
上の図:
何も変更しないテーブル
2.もう 1 つはフォームから、ユーザーが入力してクリックしてクエリできるようにします:
<form action="shouye.php" method="post"> <p> 输入名字:<input type="text" name="name"/> <input type="submit" value="查询"/> </p> </form>
画像:
3. キーワード クエリを作成します:
<?php //实现两个逻辑 //1.如果没有post数据.查所有的 //2.如果有post数据.根据条件查 $db = new mysqli("localhost","root","12345678","heiheihei"); //连接数据库 $tj = " 1 = 1 "; $name=""; //恒成立,如果没有写数据,那就让条件等于1=1,这个条件是查找所有的数据 //如果你写入数据,按照数据查 if(!empty($_POST)) { $name = $_POST['name']; $tj = " name like '%{$name}%'"; } //将条件拼接到SQl语句 $sql = "select * from contacts WHERE {$tj}"; echo $sql; //查出来 $r = $db->query($sql); //传值 if($r) //开始判断 { //$attr已经接收到了值,现在只需要获取他的索引就行了 while ($attr = $r->fetch_row()) { //关键字特殊查询 $str = str_replace($name,"<mark>{$name}</mark>",$attr[1]); //查找替换如ctrl+f //substr_replace(); 在指定位置替换 //substr(); 截取字符串 $gname = "select gname from groups WHERE gid='{$attr[3]}'"; //分组表中的gid,和我点击的 $nresult = $db->query($gname); $gname = $nresult->fetch_row(); $nation = $gname[0]; echo " <tr> <td>{$attr[0]}</td> <td>{$str}</td> <td>{$attr[2]}</td> <td>{$nation}</td> ?>
画像:
複数条件クエリ:
前と同じ;
<?php //实现两个逻辑 //1.如果没有post数据.查所有的 //2.如果有post数据.根据条件查 $db = new mysqli("localhost","root","12345678","heiheihei"); //连接数据库 $tj1 = " 1 = 1 "; $tj2 = " 1 = 1 ";//两个条件的恒等 $name=""; //恒成立,如果没有写数据,那就让条件等于1=1,这个条件是查找所有的数据 //如果你写入数据,按照数据查 if(!empty($_POST["name"])) //第一个条件的判断(用到了模糊查询) { $name = $_POST['name']; $tj1 = " name like '%{$name}%'"; } if(!empty($_POST["tel"])) { $tel = $_POST["tel"]; $tj2 = "tel = '$tel'"; } //将条件拼接到SQl语句 $sql = "select * from contacts WHERE {$tj1} AND {$tj2}";レンダリング:
この方法: 複数の条件がある場合、複数の条件変数を作成します。 1 つの条件が空でない場合は最初の条件が実行され、2 番目の条件が空でない場合は 2 番目の条件が実行され、両方が空の場合はすべてのデータが検索されます
PHP クエリと複数条件クエリに関連するその他の記事PHP 中国語 Web サイトに注意してください。