除零警告

dut*_*ler 0 php mysql

我一直在编写一个包含三个字段的搜索表单,而那个给我带来麻烦的是在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).