Jump to content
lucascatani

Unir 2 selects

Recommended Posts

Preciso fazer uma subtração entre produtos comprados e retirados. Tenho abaixo o meu código, um select que soma os comprandos e outro os retirados, preciso retornar um valor em JSON.

$loteproduto = mysql_real_escape_string( $_REQUEST['loteproduto'] ); /*$loteproduto =6635544;*/
	$idproduto = mysql_real_escape_string( $_REQUEST['idproduto'] ); /*$idproduto = 9;*/

	$quantidades = array();
	
	
	/*Lote*/	
	$sqllote = mysql_query("SELECT loteproduto FROM entradas WHERE identrada = '$loteproduto';");
	while($resultlote = mysql_fetch_assoc($sqllote))
	{
		$loteproduto1 = $resultlote['loteproduto'];
	}	
	
	/*SQL Compradas*/
	$sql = "SELECT SUM(quantidadecomprada) AS TOTAL FROM entradas WHERE loteproduto='$loteproduto1' AND idproduto = 			'$idproduto'";
	
	$res = mysql_query( $sql );
	while ( $row = mysql_fetch_assoc( $res ) ) {
		$quantidades[] = array(			
			'quant'	=> $row['TOTAL'],
		);
	}
	
	/*SQL Retiradas*/
	$sqlretiradas = "SELECT SUM(quantidaderetirada) AS TOTALRETIRADAS FROM retiradas WHERE loteproduto='$loteproduto1' AND idproduto = 			'$idproduto'";
	
	$resretiradas = mysql_query( $sqlretiradas );
	while ( $rowretiradas = mysql_fetch_assoc( $resretiradas ) ) {
		$quantidadesretiradas[] = array(			
			'quantretiradas'	=> $rowretiradas['TOTALRETIRADAS'],
		);
	}

	echo( json_encode( $quantidades ) );
	

Share this post


Link to post
Share on other sites

algo assim com JOIN:

<?php

  $loteproduto = mysql_real_escape_string( $_REQUEST['loteproduto'] ); /*$loteproduto =6635544;*/
  $idproduto = mysql_real_escape_string( $_REQUEST['idproduto'] ); /*$idproduto = 9;*/

  $quantidades = array();
  
  /*Lote*/  
  $sql = mysql_query("SELECT SUM(quantidadecomprada) AS TOTAL, SUM(quantidaderetirada) AS TOTALRETIRADAS
        FROM entradas 
        INNER JOIN retiradas
        ON entradas.idproduto = retiradas.idproduto AND entradas.loteproduto = retiradas.loteproduto
        WHERE retiradas.loteproduto='$loteproduto' AND retiradas.idproduto = '$idproduto'");

  // echo $sql;

  while ( $row = mysql_fetch_assoc( $sql ) ) {
    $quantidades[] = array(     
      'quant' => $row['TOTAL'],
      'quantretiradas'  => $row['TOTALRETIRADAS']
    );
  }

  echo( json_encode( $quantidades ) );
verifique a query

Share this post


Link to post
Share on other sites

Chegamos nessa query, que mostra a quantidade comprada certo, porém mostra a quantidade retirada errado:

SELECT SUM(quantidadecomprada) AS TOTAL, SUM(quantidaderetirada) AS TOTALRETIRADAS
       FROM entradas
       INNER JOIN retiradas
       ON entradas.idproduto = retiradas.idproduto 
       AND entradas.loteproduto = retiradas.loteproduto
       WHERE retiradas.loteproduto=6635544 AND retiradas.idproduto = 9 
       AND entradas.loteproduto=6635544 AND entradas.idproduto = 9

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Bassoli
      Olá, preciso de ajuda para meu sistema, preciso pegar o e-mail do usuário logado na conta, mais fiz um sistema que ele mostra todos email da mysql cadastrados, podem me ajudar?
       
      Meu sistema: 
      http://prntscr.com/qsm0tn (Puxar database)
      http://prntscr.com/qsm08u (Mostrar na label) 
      http://prntscr.com/qsm0n2 (Monstrando os emails no sistema)
    • By marcossantana10
      Eu to fazendo uma aplicação que precisa trabalhar com valores e não to encontrando a solução ideal:
       
      preciso que o preço de um produto seja armazenado, precisamente, informando milhares, centenas, dezenas, todas as informações. exemplo:

      R$ 1.500,50 (mil e quinhentos reais e cinquenta centavos)
      eu já usei uma função (str_replace) pra substituir a virgula por pontos, porém o que vem depois da vírgula não está sendo considerado
      está salvando 1.500 apenas. Já tentei todo tipo de campo no banco (float, double, decimal, int).
       
      Como eu poderia solucionar isso?
    • By EstilloWeb
      Está ocorrendo um erro em meu comando MySQL na ordenação dos resultados. O código é o seguinte:
      $sql_imos4 = "Select DISTINCT imovel FROM propostas ORDER BY id DESC"; $exe_imos4 = mysqli_query($conexao, $sql_imos4); O objetivo é listar uma única vez um imóvel com proposta, mesmo que haja dois ou mais registros, sempre ordenado mais recente. O que está ocorrendo quando o imóvel tem mais de uma proposta cadastrada, a ordenação está sendo feita pelo ID da proposta mais antiga.
      Exemplo:
      imóvel ref. 4528 tem duas propostas, sendo que a mais recente tem o ID 235 porém aparece na listagem abaixo do imóvel ref. 4325, que tem uma só proposta e ID 230.
      O resultado deveria estar invertido neste caso.
      Onde pode estar o erro? Agradeço a ajuda.
    • By Herberto Silva
      Olá
      Estou com uma dificuldade em elaborar um select de forma que verifique um campo data, (com uma atribuição de uma variável $current_date = date('Y-m-d');) caso exista essa data o select posicione-se no registo, neste caso no registo que contém a data igual a $current_date, mantendo os restantes registos da tabela disponíveis
    • By tii3030
      Olá, gostaria de saber qual a melhor maneira de selecionar e verificar a senha hash(senha) em um banco de dados e comparar com a senha inserida pelo usuário em um formulário de login. É mais adequado armazenar no BD o salt ? No exemplo abaixo eu criei o hash da senha antes de selecionar no banco:
      <?php include('conf.php'); $email = 'lala@123.com'; $senha = 'lala.123'; $custo = '08'; $salt = 'Cf1f11ePArKlBJomM0F6aJ'; $hash = crypt($senha, '$2a$' . $custo . '$' . $salt . '$'); $query_select = "SELECT email, password FROM usuarios WHERE email = '$email' AND password = '$hash'"; $select = mysqli_query($conexao,$query_select); if (mysqli_num_rows($select) == 1) { echo "Login Permitido"; } else { echo "Login ou senha invalidos"; } ?> Já neste exemplo eu selecionei o hash no banco para depois comparar com a senha inserida no formulário utilizando o password_verify():
      <?php #----------------- INCLUDING FILE --> "conf.php" include('conf.php'); if (isset($_POST['submit'])) { $email = mysqli_real_escape_string($conexao, $_POST['email']); $password = mysqli_real_escape_string($conexao, $_POST['password']); $query_select_email = "SELECT email FROM usuarios WHERE email = '$email'"; $select_email = mysqli_query($conexao,$query_select_email); $query_select_password = "SELECT password FROM usuarios"; $select_password = mysqli_query($conexao,$query_select_password); while($array = mysqli_fetch_array($select_password)) { $logarray = $array['password']; if (password_verify($password, $logarray) && mysqli_num_rows($select_email) == 1) { echo "Login permitido"; } } } ?> Aceito qualquer dica relacionado a segurança e para melhorar o código, desde já agradeço.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.