Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

joeythai

Campo de busca por Data

Recommended Posts

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

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

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

 

$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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.