我一直在编写一个包含三个字段的搜索表单,而那个给我带来麻烦的是在sql中使用"LIKE"子句的那个.
这是代码:
<form method="post" action="<?php $_SERVER['PHP_SELF']?>">
<p>
<label for="nome">Nome Empresa:</label>
<input type="text" name="nome" id="nome"/>
<label for="concelho">Concelho:</label>
<select name="concelho">
<option id="" selected="selected" value="">Seleccione o Concelho</option>
<option value="1" id="1">Um</option>
<option value="2" id="1">Dois</option>
</select>
<label for="actividade">Actividade:</label>
<select name="actividade">
<option id="" selected="selected" value="">Seleccione a actividade</option>
<option value="1" id="1">Actividade Um</option>
<option value="2" id="1">Actividade Dois</option>
</select>
</p>
<p>
<input type="submit" name="pesquisar" value="Pesquisar"/>
</p>
</form>
Run Code Online (Sandbox Code Playgroud)
// sql(不是全部)
$nome = mysql_real_escape_string($_POST['nome']);
// Pesquisa a partir da form
if (isset($_POST['pesquisar'])) {
$queryStr = 'SELECT * FROM ';
if(!empty($nome)){
$queryStr .= 'tbl_clientes WHERE nome LIKE '%'$nome'%'';
}
Run Code Online (Sandbox Code Playgroud)
为什么它会两次给我这个错误?
Warning: Division by zero in .. on line ..
Warning: Division by zero in .. on line ..
Run Code Online (Sandbox Code Playgroud)
我不是在做一个师......我呢?
提前致谢
Ste*_*202 10
是的你是.在%由所使用的标志LIKE是外字符串,并且因此解释为模运算符.删除其他'标志.
$queryStr .= "tbl_clientes WHERE nome LIKE '%$nome%'";
Run Code Online (Sandbox Code Playgroud)
(这里我使用了单引号和双引号的混合来解决问题.Eoin Campbell的逃避内部单引号的解决方案同样有效.在编程时,您经常会发现需要使用这些技术(的组合) PHP).