joeythai 0 Denunciar post Postado Maio 3, 2015 Boa noite Rapaziada, estou tentando fazer uma busca pela data em meu banco de dados, só que essa busca está me retornando somente o último registro do meu banco, e está ignorando o nome também. O código é este: <?php ini_set('display_errors','on'); error_reporting(E_ALL); include 'mysqlcon.php'; ?> <!DOCTYPE html> <html> <head> <title>Detalhes das apostas</title> </head> <body> <div id="formulario_busca"> <form name="busca" action="" method="post"> <input type="text" name="pesquisar" id="pesquisar"> <label>Data Inicial</label> <input type="text" name="data_ini" id="data_ini"> <label>Data Final</label> <input type="text" name="data_fim" id="data_fim"> <input type="submit" value="Pesquisar" name="enviar"> </form> </div> <?php if(isset($_POST['enviar']) && isset($_POST['pesquisar'])){ $busca = $_POST['pesquisar']; $data_ini = $_POST['data_ini']; $data_fim = $_POST['data_fim']; //$sql = "SELECT * FROM clientes WHERE nome = '$busca' "; $sql = "SELECT * FROM clientes WHERE data_ini ='$data_ini' BETWEEN '$data_fim' AND nome = '$busca' "; $res = mysqli_query($conecta, $sql); if(mysqli_num_rows($res) == 0){ echo "<strong><font color='red'>Não há resultados para exibir</font></strong>"; } else{ while($result = mysqli_fetch_array($res)){ $pesquisa = $result ; } $aposta = $pesquisa['valor_aposta']; $percent = 6; $retorno = (float)($percent / 100) * $aposta; echo " <table> <tr> <td><strong><font color='blue'>Nome</font></strong></td> <td>".$pesquisa['nome']."</td> </tr> <tr> <td><strong><font color='blue'>Email</font></strong></td> <td>".$pesquisa['email']."</td> </tr> <tr> <td><strong><font color='blue'>Idade</font></strong></td> <td>".$pesquisa['idade']."</td> </tr> <tr> <td><strong><font color='blue'>Aposta</font></strong></td> <td>".$pesquisa['valor_aposta']."</td> </tr> <tr> <td><strong><font color='blue'>Retorno</font></strong></td> <td>".$retorno."</td> </tr> <tr> <td></td> </tr> </table> "; } } ?> </body> </html> posso digitar qualquer nome no campo, que ele me trará apenas o último registro, até se eu deixar os campos em branco ele me traz o ultimo registro, o que eu quero fazer é pegar os dados da aposta de um cliente e exibir esses dados no mês, exemplo: 01/04/2015 até 30/042015, por isso usei a cláusula between, mas não está funcionando. Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Maio 3, 2015 Tem duas questões: 1 - A sintaxe do seu BETWEEN está errado; 2 - Você está montando tudo fora do laço, logo ele só exibirá o último resultado independente de quantos retornarem. Compartilhar este post Link para o post Compartilhar em outros sites
joeythai 0 Denunciar post Postado Maio 3, 2015 Tem duas questões: 1 - A sintaxe do seu BETWEEN está errado; 2 - Você está montando tudo fora do laço, logo ele só exibirá o último resultado independente de quantos retornarem. Joguei tudo dentro do laço agora, realmente ele me trás tudo, só que, quero trazer só o que eu pesquisar, com relação ao between como devo usar ? pesquisei alguns tutoriais, exemplos e eu só vi nesse modelo, também tentei direto no banco e realmente não funcionou como eu queria, que é buscando um intervala de data. Deixei o código assim: <code> <?php ini_set('display_errors','on'); error_reporting(E_ALL); include 'mysqlcon.php'; ?> <!DOCTYPE html> <html> <head> <title>Detalhes das apostas</title> </head> <body> <div id="formulario_busca"> <form name="busca" action="" method="post"> <input type="text" name="pesquisar" id="pesquisar"> <label>Data Inicial</label> <input type="text" name="data_ini" id="data_ini"> <label>Data Final</label> <input type="text" name="data_fim" id="data_fim"> <input type="submit" value="Pesquisar" name="enviar"> </form> </div> <?php if(isset($_POST['enviar']) && isset($_POST['pesquisar'])){ $busca = $_POST['pesquisar']; $data_ini = $_POST['data_ini']; $data_fim = $_POST['data_fim']; //$sql = "SELECT * FROM clientes WHERE nome = '$busca' "; $sql = "SELECT * FROM clientes WHERE data_ini ='$data_ini' BETWEEN '$data_fim' AND nome = '$busca' "; $res = mysqli_query($conecta, $sql); if(mysqli_num_rows($res) == 0){ echo "<strong><font color='red'>Não há resultados para exibir</font></strong>"; } else{ while($result = mysqli_fetch_array($res)){ $pesquisa = $result ; $aposta = $pesquisa['valor_aposta']; $percent = 6; $retorno = (float)($percent / 100) * $aposta; echo " <table> <tr> <td><strong><font color='blue'>Nome</font></strong></td> <td>".$pesquisa['nome']."</td> </tr> <tr> <td><strong><font color='blue'>Email</font></strong></td> <td>".$pesquisa['email']."</td> </tr> <tr> <td><strong><font color='blue'>Idade</font></strong></td> <td>".$pesquisa['idade']."</td> </tr> <tr> <td><strong><font color='blue'>Aposta</font></strong></td> <td>".$pesquisa['valor_aposta']."</td> </tr> <tr> <td><strong><font color='blue'>Retorno</font></strong></td> <td>".$retorno."</td> </tr> <tr> <td></td> </tr> </table> "; } } } ?> </body> </html> </code> Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Maio 3, 2015 $sql = "SELECT * FROM clientes WHERE (data_ini BETWEEN '$data_ini' AND '$data_fim') AND nome = '$busca' "; Compartilhar este post Link para o post Compartilhar em outros sites
joeythai 0 Denunciar post Postado Maio 3, 2015 $sql = "SELECT * FROM clientes WHERE (data_ini BETWEEN '$data_ini' AND '$data_fim') AND nome = '$busca' "; Muito obrigado ESerra, essa sua query funcionou. Como disse vi muitos exemplos sem êxito, nem tudo na net é o correto ou presta. Compartilhar este post Link para o post Compartilhar em outros sites