Jump to content

[PHP/mySQL] Somatório da quantidade de referencias


AndreVSerafim
 Share

Recommended Posts

AndreVSerafim

Boas, tenho uma duvidas, tenho uma duvidas..tenho um contador de stock para fazer e não sei bem como. Pensei em fazer no PHP um contador onde soma o numero de vezes que a referencia aparece e depois da listagem concluída envia para a BD em mySQL a referencia e a quantidade total, tenho a duvida de como fazer o acumular de referencia visto poderem ser 10 referencias ou 100.

Alguém pode ajudar?

Actualmente tentei fazer da seguinte maneira mas nada está a ser guardado no SQL e não consigo encontrar a razão

<html>
<body>
 <form action="verautomatico.php" method="POST" accept-charset="UTF-8">
	 Codigo de Barras: <input type="text" name="codigobarras">
	 <input type="submit" value="Submit">
 </form>
</html>

<?php
$servername = "localhost";
$username = "root";
$password = "";
$basedados = "armazem";
$codigobarras = $_POST["codigobarras"];
$dia = date ("Y/m/d");
$conn = mysqli_connect($servername, $username, $password, $basedados);
 if (!$conn) {
	 die("Conexão falhou: " . mysqli_connect_error());
 }
echo "Conexão bem sucedida<br>";

$sql1 = "SELECT codbarras FROM contagem";
 if (mysqli_query($conn, $sql1)) {
	 echo "Consulta bem sucedida<br>";
 } else {
	 echo "Error: " . $sql1 . "<br>" . mysqli_error($conn);
 }
$sql2 = "SELECT codbarras FROM produtos";
 if (mysqli_query($conn, $sql2)) {
	 echo "Consulta bem sucedida<br>";
 } else {
	 echo "Error: " . $sql2 . "<br>" . mysqli_error($conn);
 }
$nomes = "SELECT nome FROM produtos WHERE codbarras IN ('$codigobarras')";
 if (mysqli_query($conn, $nomes)) {
	 echo "Consulta bem sucedida<br>";
 } else {
	 echo "Error: " . $nomes . "<br>" . mysqli_error($conn);
 }
$quantidades = "SELECT quantidade FROM contagem WHERE codbarras IN ('$codigobarras')";
 if (mysqli_query($conn, $quantidades)) {
	 echo "Consulta bem sucedida<br>";
 } else {
	 echo "Error: " . $quantidades . "<br>" . mysqli_error($conn);
 }
if (($sql1 == $codigobarras) AND ($sql2 == $codigobarras)) {
 $conta=$quantidades++;
 $total = "UPDATE contagem SET quantidade='$conta' WHERE codbarras='$codigobarras'";
	 if (mysqli_query($conn, $total)) {
		 echo "Actualização bem sucedida<br>";
	 } else {
		 echo "Error: " . $total . "<br>" . mysqli_error($conn);
	 }
}
 elseif ($sql2 == $codigobarras) {
	 $conta = "INSERT INTO contagem (codbarras, nome, quantidade, dia) VALUES ('$codigobarras', '$nomes', '1', '$dia')";;
 }
	 else {
		 echo "Produto não existe";
	 }
mysqli_close($conn);
?>
Link to comment
Share on other sites

Bernardo Vieira

Bom, como não percebi exatamente o que querias e o teu código ainda me deixa mais confuso, vou-te dizer algumas coisas que tens erradas ou que eu não percebi

Primeiro:

Porque tantos query e nunca salvas o resultado?

Segundo:

if (($sql1 == $codigobarras) AND ($sql2 == $codigobarras))

-> isso nunca vai ser verdade!

Terceiro:

estás a usar

$conta=$quantidades++;

mas $quantidades está definido como

$quantidades = "SELECT quantidade FROM contagem WHERE codbarras IN ('$codigobarras')";

quarto:

mais uma vez

$conta = "INSERT INTO contagem (codbarras, nome, quantidade, dia) VALUES ('$codigobarras', '$nomes', '1', '$dia')";;

estás a tentar introduzir $nomes quando $nomes na verdade é

$nomes = "SELECT nome FROM produtos WHERE codbarras IN ('$codigobarras')";

A minha opinião é: Deves ir estudar mysql. Tens aí um mar de erros!

Especialmente o mysqli_query e como salvar os resultados! E já agora fazer free_result no fim!

Link to comment
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
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.