本文目录一览:
- PHP中关于查询多个条件的代码
- 想用PHP做个查询页面,接收用户输入信息,然后查询数据库中对应信息,并输出出来,本人很菜,希望大家帮忙
- 如何在PHP页面实现指定条件的查询
- php 根据条件查询一条数据 还有查询所有的数据怎么弄。。。才学PHP
PHP中关于查询多个条件的代码
先向大家说明需求:按照系统的要求,将通过部门名称、员工姓名、PC名称、IP地址等等字段来进行组合查询从而得到想要的数据结果。那么,为了简单起见,我们用两个条件(部门名称、员工姓名)的组合查询来向大家说明这一技术技巧。当只输入部门名而员工姓名为空值时,那么部门内所有员工信息将被呈现,只有当同时限制部门与员工姓名时,才能查询出唯一信息。
那就让我们开始。
首先建立查询页面search.php
,不同于上次单一条件查询,这次需要两个条件的组合进行查询。
<body>
<h3>查询</h3>
<form action="search_result.php" method="POST">
部门名称:<input type="text" size=25 name="depart" value="" /><br><br>
员工姓名:<input type="text" size=25 name="ename" value="" /><br><br>
<input type="submit" name="提交" value="提交" />
</form>
</body>
和上次一样,我们将depart
与ename
的值通过POST的方法传递给search_result.php
文件。
然后便到了这次主题的关键,search_result.php
文件如何接受这两个参数值,并判断当其中一个字段为空值时,如何将其排除查询条件。
怎么理解上面这句话,举例子来说,如果我们单纯地将接收参数的查询语句写成:
SELECT * FROM info WHERE depart='部门值参数' AND ename='员工姓名参数'
的话,那么如果其中一个参数为空时,我们就将得到:
SELECT * FROM info WHERE depart='技术部' AND ename=''
显然,这样的查询很有可能返回空的结果,因为这句查询语句的意思就是,查询所有技术部没有姓名的人的数据,这不是很荒唐么。倒过来如果是:
SELECT * FROM info WHERE depart='' AND ename='sunec'
那么它的意思就是查询员工姓名为sunec
但是不属于任何部门的人,那自然也是查询不到结果的。
正确的做法应该是,在查询语句中过滤掉那个为空值的参数。比如,当输入部门名时应该得到:
SELECT * FROM info WHERE depart='技术部'
这样,查询语句的意思就变成查询所有部门为技术部员工的信息了。
<?php
$link = mysql_connect("localhost", "root", "管理员密码");
mysql_select_db("infosystem", $link);
?>
<?php
// 注释1 -----------------------------
$depart = $_POST["depart"];
$ename = $_POST["ename"];
// 注释2 ------------------------
if ($depart != null) {
$a = " AND depart LIKE '%$depart%'";
}
if ($ename != null) {
$b = " AND ename LIKE '%$ename%'";
}
// 注释3 --------
$q = "SELECT * FROM info WHERE (1=1)";
$q .= $a;
$q .= $b;
// 注释4 ----------------
mysql_query("SET NAMES GB2312");
$rs = mysql_query($q, $link);
echo "<table>";
echo "<tr><td>部门</td><td>员工姓名</td></tr>";
while ($row = mysql_fetch_object($rs)) {
echo "<tr><td>$row->depart</td><td>$row->ename</td></tr>";
}
echo "</table>";
mysql_close($link);
?>
注释说明:
- 注释1:接收
search.php
通过POST传递出的参数,把两个参数分别存储入变量:$depart
和$ename
。 - 注释2:判断参数是否为空,如果为空,不作任何操作。如果有参数传出,则生成相应SQL语句。
- 注释3:用追加的方法生成SQL语句。
- 注释4:生成数据集,显示数据,最后关闭数据库连接。
想用PHP做个查询页面,接收用户输入信息,然后查询数据库中对应信息,并输出出来,本人很菜,希望大家帮忙
$db = mysql_connect("localhost", "root", "password");
mysql_select_db("mydb", $db);
if (isset($_POST['name'])) {
echo "你输入的用户是:" . $_POST['name'];
}
$result = mysql_query("SELECT * FROM employees WHERE name='" . $_POST['name'] . "'", $db);
while ($fields = mysql_fetch_row($result)) {
$data[] = $fields;
}
if (!empty($data)) {
foreach ($data as $val) {
foreach ($val as $k => $v) {
echo $k . " " . $v . "<br />";
}
echo "<br /><hr />";
}
} else {
echo "此用户下没有数据。";
}
可能需要修改的地方:查询条件我是使用的name
,根据你数据库中的字段名做一下更改。输出信息没有太多的处理,可以使用表格输出或是其它样式,可以自己调整一下,HTML部分省略了。
如何在PHP页面实现指定条件的查询
在页面里把条件都写到多选按钮里,POST提交,PHP接收提交的参数,然后拼接成完整的SQL语句不就行了?
php 根据条件查询一条数据 还有查询所有的数据怎么弄。。。才学PHP
$query = mysql_query("SELECT * FROM userinfo WHERE id='$snum'");
改成:
$query = mysql_query("SELECT * FROM userinfo");
就是查询所有数据了。 如果想约束查询结果,比如前20条:
$query = mysql_query("SELECT * FROM userinfo LIMIT 0,20");
前面第1到20条数据会被查询出来。