Ir para conteúdo

POWERED BY:

Arquivado

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

Gretel

sql verificar de há mais de um registro

Recommended Posts

Estou com um problema, estou fazendo um sistema, e estava tudo bem até que eu não consegui mais progredir.

tenho uma pagina com um sistema de pesquisa que faz uma consulta de acordo com o nome do usuario e uma data inicial e final (LIKE +BETWEEN)

Ela está funcionando certinho na pesquisa, porém, eu necessito que ela faça um tabelamento diferente.

Preciso que os produtos com o mesmo nome sejam exibidos na mesma linha com os campos entrada e saida em suas respectivas colunas e só exista uma linha para cada produto indiferente se é uma entrada ou saida. E que o total de entradas/saidas que existir no sql seja somado se forem do mesmo produto.

Olhe na imagem abaixo o que eu preciso:

SOCORRO!

erro.jpg

meu codigo está assim:

$conn = @mysql_connect("localhost", "", "") or die("Não foi possível a conexão com o Banco");
// Selecionando banco
$db = @mysql_select_db("", $conn) or die("Não foi possível selecionar o Banco");
 
// Recuperamos a ação enviada pelo formulário

$a = isset($_GET['a']) ? $_GET['a'] : '';
 
// Verificamos se a ação é de busca
if ($a == "buscar") {
 
	// Pegamos a palavra
	$palavra = trim($_POST['palavra']);
		$palavra2 = trim($_POST['palavra2']);
		$data1 = $_POST['data1'];
                $data2 = $_POST['data2'];
 

	
$sql = mysql_query("SELECT * FROM historico WHERE usuario LIKE  '%".$palavra."%' AND data BETWEEN '$data1' AND '$data2'");

 
	
	$numRegistros = mysql_num_rows($sql);
 
	// Se houver pelo menos um registro, exibe-o
	if ($numRegistros != 0) {
		// Exibe os resultados da pesquisa
		while ($produto = mysql_fetch_object($sql)) {




echo "

<tr>

        <td>".$produto->usuario . " </td> 

        <td>".$produto->produto . " ( ".$produto->tipo . ")</td> 
        <td>".$produto->custo." </td>
        <td>".$produto->preço." </td>
        <td>".$produto->quantidade." </td>
        <td> </td>
        <td> </td>
        <td> </td>

        <td width=\"10px\"><a href=\"editar.php?id=$id\"><div class=\"icon-edit\"><div class=\"tooltiptext\">Editar</div></div></a> 
            <a href=\"excluir.php?id=$id\" onclick=\"return confirm('Confirmar exclusão do registro?');\"></div>
            <div class=\"icon-trash\"><div class=\"tooltiptext\">Excluir</div></div></a>     </td>";
		

		}
	
	} else {
		echo "Nenhum dado encontrado com os critérios ".$palavra.", ".$palavra2.", ".$data1.", ".$data2."";
	}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Motta, antes de postar a minha duvida aqui, eu pesquisei e inseri a função GROUP BY, ela realmente funciona.

Não consegui fazer ela capturar a quantidade do primeiro registro somada com a quantidade do segundo registro, para que seja exibido o valor correto na quantidade.

exemplo, produto 1 (entrada) 10 unidades

produto 1 (entrada) 20 unidades

imprimir: produto 1 (entrada) 30 unidades

Com o GROUP BY ele retorna os valores apenas do primeiro registro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

erro em si não dá nenhum, mais não resolve o problema.

SEM O GROUP BY

sem.jpg

COM O GROUP BYcom.jpg

não sei se é possivel recuperar os dados que foram ocultados pelo group by, se existir, não sei o nome dessa função, nem como implementar.

Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites


$conn = @mysql_connect("localhost", "", "") or die("Não foi possível a conexão com o Banco");

// Selecionando banco

$db = @mysql_select_db("", $conn) or die("Não foi possível selecionar o Banco");

// Recuperamos a ação enviada pelo formulário

$a = isset($_GET['a']) ? $_GET['a'] : '';

// Verificamos se a ação é de busca

if ($a == "buscar") {

// Pegamos a palavra

$palavra = trim($_POST['palavra']);

$palavra2 = trim($_POST['palavra2']);

$data1 = $_POST['data1'];

$data2 = $_POST['data2'];

$sql = mysql_query("SELECT * FROM historico WHERE usuario LIKE '%".$palavra."%' AND data BETWEEN '$data1' AND '$data2'");

$numRegistros = mysql_num_rows($sql);

// Se houver pelo menos um registro, exibe-o

if ($numRegistros != 0) {

// Exibe os resultados da pesquisa

while ($produto = mysql_fetch_object($sql)) {

echo "

<tr>

<td>".$produto->usuario . " </td>

<td>".$produto->produto . " ( ".$produto->tipo . ")</td>

<td>".$produto->custo." </td>

<td>".$produto->preço." </td>

<td>".$produto->quantidade." </td>

<td> </td>

<td> </td>

<td> </td>

<td width=\"10px\"><a href=\"editar.php?id=$id\"><div class=\"icon-edit\"><div class=\"tooltiptext\">Editar</div></div></a>

<a href=\"excluir.php?id=$id\" onclick=\"return confirm('Confirmar exclusão do registro?');\"></div>

<div class=\"icon-trash\"><div class=\"tooltiptext\">Excluir</div></div></a> </td>";

}

} else {

echo "Nenhum dado encontrado com os critérios ".$palavra.", ".$palavra2.", ".$data1.", ".$data2."";

}

}

?>

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.