Sıfır Warning Bölümü

2 Cevap php

Ive üç alanları ile arama formunu programlama edilmiş, ve bana sorun veriyor bir sql "LIKE" maddesi kullanmak biridir.

İşte kod:

            <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>

/ / Sql (hepsi değil)

                    $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'%'';
                }

Neden iki kez bana bu hatayı veriyor?

Warning: Division by zero in .. on line ..

Warning: Division by zero in .. on line ..

Ben Bölümü yapma değilim ... am i?

Şimdiden teşekkürler

2 Cevap

Evet, biliyorsun. LIKE tarafından kullanılan % işaretler outside dize, ve bu nedenle operatör modulo olarak yorumlanır. Ek 'işaretleri kaldırın.

$queryStr .= "tbl_clientes WHERE nome LIKE '%$nome%'";

(Burada sorun Söve tek ve çift tırnak karışımı kullanılan. Iç tek tırnak kaçan Eoin Campbell's çözüm gibi geçerlidir. Sık sık) (kullanmak gerekir ki bir arada bulabilirsiniz bu teknikler PHP programlama yaparken.)

Sizin hata SQL bu parça ile

'tbl_clientes  WHERE nome LIKE '%'$nome'%''

Sen dize içinde ekstra kesme kaçmak gerekir.

Bunun için PHP sözdizimi \ karakter olduğunu varsayalım

örneğin

'tbl_clientes  WHERE nome LIKE \'%'$nome'%\''