Ir para conteúdo

POWERED BY:

Arquivado

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

luisclb

Botão para aumentar valor no MySQL

Recommended Posts

Pessoal, tenho um banco de dados simples, com id e valor. Exemplo:

  • ID VALOR
  • 1 12
  • 2 15
  • 3 25

 

Preciso que na listagem do banco de dados apareça um botão, ao lado do valor, para acrescentar "1". Ou seja, listando o primeiro registro, ao lado do valor "12", tenha um botão que quando for clicado aumente esse valor para "13" no banco de dados, e já mostre a alteração na hora.

Se alguém puder ajudar, agradeço desde já.
Abraço, galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Espero que ajude.... segue um exemplo que criei:

 

criei um formulário cuja ação acontece no arquivo exemplo functionValor.php neste você fará o script de alteração do bando de dados.

 

<form name="form1" action="functionValor.php" enctype="multipart/form-data">
<table width="200" border="1">
<tr>
<td>Seq</td>
<td>valor</td>
<td>+1</td>
</tr>
<tr>
<?php
// aqui você pega o valor da tabela e coloca na tabela
$db = mysqli_query($con,"SELECT * FROM tb_valor WHERE id ='$id'");
while($line=mysqli_fetch_array($db)){
$id = $line['id'];
$vl = $line['valor'];
// a função WHILE vai fazer o loop trazendo todos os resultados da tabela até acabar
?>
<td><?php echo $id?></td>
<td><?php echo $vl?></td>
<td><button name="Btt" value="<?php echo $id?>"></button></td>
<?php
} //no botão que irá aparecer vai conter o valor da $id que fará a referencia no arquivo functionValor.php para fazer o UPDADE
// este valor você vai capturar através do método $_POST da seguinte forma:
// $id = $post['Btt']+1;
// você pode acrescentar 1 assim:
//
?>
</tr>
</table>
</form>
se faltar compreensão no modo de seleção do banco de dados ou no Updade você pode acessar w3school ou pagina oficial da PHP.
um abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leandro, obrigado pelas dicas.

Fiz meu arquivo principal assim:

 

<?php
include('conexao.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>+1</title>
<style type="text/css">
body {font-family: Tahoma; font-size: 13px; text-align:center;}
#linha {height:37px; line-height:37px; width:100%;}
.id {float:left; height:25px; width:40px; border:1px solid #999; margin-right:5px; padding:5px;}
.valor {float:left; height:25px; width:80px; border:1px solid #999; margin-right:5px; padding:5px;}
.mais {float:left; height:25px; width:35px; padding:5px;}
</style>
</head>

<body>
<form name="form1" action="functionValor.php" enctype="multipart/form-data">

<div id="linha">
<div class="id"><strong>ID</strong></div>
<div class="valor"><strong>VALOR</strong></div>
<div class="mais"></div>
</div>

<?php //busca no Banco de Dados e popula a tabela
$sql = "SELECT * FROM maisum";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");
?>

<?php //Exibe as informações do Banco de Dados
while ($line=mysql_fetch_array($resultado)) {
$id = $line["id"];
$v1 = $line["v1"];
?>

<div id="linha">
<div class="id"><?php echo $id?></div>
<div class="valor"><?php echo $v1?></div>
<div class="mais"><button name="Btt" value="<?php echo $id?>" style="height:25px;">+</button></div>
</div>

<?php
}
?>
</form>
</body>
</html>

 

Ele está buscando os dados corretamente no BD, como na imagem abaixo:
dados.jpg

 

Mas não consegui fazer a configuração do arquivo functionValor.php.

Poderia auxiliar? Sou novato no php.

Obrigado desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara sinceramente não consegui entender o que você quer fazer !

 

 

 

Espero que ajude.... segue um exemplo que criei:

 

criei um formulário cuja ação acontece no arquivo exemplo functionValor.php neste você fará o script de alteração do bando de dados.

 

<form name="form1" action="functionValor.php" enctype="multipart/form-data">
<table width="200" border="1">
<tr>
<td>Seq</td>
<td>valor</td>
<td>+1</td>
</tr>
<tr>
<?php
// aqui você pega o valor da tabela e coloca na tabela
$db = mysqli_query($con,"SELECT * FROM tb_valor WHERE id ='$id'");
while($line=mysqli_fetch_array($db)){
$id = $line['id'];
$vl = $line['valor'];
// a função WHILE vai fazer o loop trazendo todos os resultados da tabela até acabar
?>
<td><?php echo $id?></td>
<td><?php echo $vl?></td>
<td><button name="Btt" value="<?php echo $id?>"></button></td>
<?php
} //no botão que irá aparecer vai conter o valor da $id que fará a referencia no arquivo functionValor.php para fazer o UPDADE
// este valor você vai capturar através do método $_POST da seguinte forma:
// $id = $post['Btt']+1;
// você pode acrescentar 1 assim:
//
?>
</tr>
</table>
</form>
se faltar compreensão no modo de seleção do banco de dados ou no Updade você pode acessar w3school ou pagina oficial da PHP.
um abraço

 

Leandro, obrigado pelas dicas.

Fiz meu arquivo principal assim:

 

<?php

include('conexao.php');

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...ransitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>+1</title>

<style type="text/css">

body {font-family: Tahoma; font-size: 13px; text-align:center;}

#linha {height:37px; line-height:37px; width:100%;}

.id {float:left; height:25px; width:40px; border:1px solid #999; margin-right:5px; padding:5px;}

.valor {float:left; height:25px; width:80px; border:1px solid #999; margin-right:5px; padding:5px;}

.mais {float:left; height:25px; width:35px; padding:5px;}

</style>

</head>

 

<body>

<form name="form1" action="functionValor.php" enctype="multipart/form-data">

 

<div id="linha">

<div class="id"><strong>ID</strong></div>

<div class="valor"><strong>VALOR</strong></div>

<div class="mais"></div>

</div>

 

<?php //busca no Banco de Dados e popula a tabela

$sql = "SELECT * FROM maisum";

$resultado = mysql_query($sql)

or die ("Não foi possível realizar a consulta ao banco de dados");

?>

 

<?php //Exibe as informações do Banco de Dados

while ($line=mysql_fetch_array($resultado)) {

$id = $line["id"];

$v1 = $line["v1"];

?>

 

<div id="linha">

<div class="id"><?php echo $id?></div>

<div class="valor"><?php echo $v1?></div>

<div class="mais"><button name="Btt" value="<?php echo $id?>" style="height:25px;">+</button></div>

</div>

 

<?php

}

?>

</form>

</body>

</html>

 

Ele está buscando os dados corretamente no BD, como na imagem abaixo:

dados.jpg

 

Mas não consegui fazer a configuração do arquivo functionValor.php.

Poderia auxiliar? Sou novato no php.

Obrigado desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luis eu errei feio.....quando respondi você já estava cansado, mas não é desculpa.

 

abaixo está como vai ficar a pagina depois de pronto:

teste.JPG

OK?

 

script da pagina teste.php:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>mais um</title>
</head>

<body>
<div>
<!--troquei a FORM por uma table pois não vou ficar criando style.....-->

  <table  align="center" width="30%" border="1" cellspacing="3" cellpadding="0">
    <tr align="center">
      <td bgcolor="#333333"><strong style="color: #FFF">ID</strong></td>
      <td bgcolor="#333333"><strong style="color: #FFF">Valor</strong></td>
      <td bgcolor="#333333"><strong style="color: #FFFFFF">Mais</strong></td>
    </tr>
<?php //busca no Banco os dados necessarios (corrigindo seu script, verifique pois houve alterações 
      //no metodo mysql.)
		include "connect.php";
		$sql = "SELECT * FROM mais";
		$resultado = mysqli_query($con,$sql)
		or die ("Não foi possível realizar a consulta ao banco de dados");

       //Exibe as informações do Banco de Dados( não é necessario abrir as tags do php para cada um         
       //dos blocos de codigos)
		while ($line=mysqli_fetch_array($resultado)) {
		$id = $line["id"];
		$v1 = $line["valor"];
?>
    <tr align="center">
      <td><?php echo $id?></td>
      <td><?php echo $v1?></td>
      <td><a href="functionValor.php?id=<?php print $id?>">
        <button name="Btt" style="height:25px;">+1</button>
        </a></td>
    </tr>
    <?php
}
?>
  </table>
</div>
</body>
</html>

explicação:

 

Neste caso não se usa form pois cada resultado da pesquisa do banco gera um id e este é o indicador para a alteração, por isso deve-se ancorar cada resultado(colocar um link) que levara está identificação para a pagina de função que fará a alteração no banco. Eu destaquei a alteração principal em vermelho, ali esta a chave do processo, quando se pede o id no loop, cada resultado gera o id correto da linha.

 

agora a pagina de função.

 

<?php
//inicia uma coneção com o banco de dados
include"connect.php";

// pega o valor da variavel de identificação
$id 	=	$_GET['id'];

//acessa o banco e captura o valor da linha para ser alterada
$sql = mysqli_query($con,"SELECT * FROM mais WHERE id='$id'");
$rows	= mysqli_fetch_array($sql);
$valor = $rows['valor'];

//função de soma simples.
$novoValor = $valor + 1;

//grava novo valor no banco.
$gravar = mysqli_query($con,"UPDATE mais SET valor='$novoValor' WHERE id='$id'");

//retorna a pagina teste
echo '<script type="text/javascript">
		window.location="teste.php";
		</script>';
		exit();



?>

Esta bem explicadinha....

 

Desculpa ai, sei que talvez seja tarde mas se alguém mais tiver esta duvida fica uma aula simples de conexão DB.

 

Fui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, se ajudar alguém, meu código ficou da seguinte forma:

 

Banco de dados +1

--
-- Banco de Dados: `+1`
--

-- --------------------------------------------------------

--
-- Estrutura da tabela `maisum`
--

CREATE TABLE IF NOT EXISTS `maisum` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `v1` varchar(3) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

--
-- Extraindo dados da tabela `maisum`
--

INSERT INTO `maisum` (`id`, `v1`) VALUES
(1, '4'),
(2, '152'),
(3, '57'),
(4, '102');

 

Arquivo conexao.php

<?php
$host = "localhost";
$user = "root";
$pass = "";
$banco = "+1";
$con = mysql_connect($host, $user, $pass) or die ("falha ao conectar no servidor de banco de dados");
mysql_select_db($banco, $con);
?>

Arquivo index.php

<?php
include('conexao.php');
?>

<table  align="center" width="30%" border="1" cellspacing="3" cellpadding="0">
    <tr align="center">
      <td bgcolor="#333333"><strong style="color: #FFF">ID</strong></td>
      <td bgcolor="#333333"><strong style="color: #FFF">Valor</strong></td>
      <td bgcolor="#333333"><strong style="color: #FFFFFF">Mais</strong></td>
      <td bgcolor="#333333"><strong style="color: #FFFFFF">Menos</strong></td>
    </tr>
<?php //busca no Banco os dados necessarios (corrigindo seu script, verifique pois houve alterações no metodo mysql.)
		$sql = "SELECT * FROM maisum";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");

       //Exibe as informações do Banco de Dados( não é necessario abrir as tags do php para cada um dos blocos de codigos)
		while ($line=mysql_fetch_array($resultado)) {
		$id = $line["id"];
		$v1 = $line["v1"];
?>
    <tr align="center">
      <td><?php echo $id?></td>
      <td><?php echo $v1?></td>
      <td><a href="maisum.php?id=<?php print $id?>"><button name="Btt" style="height:25px;">+1</button></a></td>
      <td><a href="menosum.php?id=<?php print $id?>"><button name="Btt" style="height:25px;">-1</button></a></td>
    </tr>
    <?php
}
?>
  </table>

Arquivo menosum.php

<?php
//inicia uma coneção com o banco de dados
include"conexao.php";

// pega o valor da variavel de identificação
$id 	=	$_GET['id'];

$sql = "SELECT * FROM maisum WHERE id='$id'";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");

while ($line=mysql_fetch_array($resultado)) {
$v1 = $line["v1"];
}
//função de soma simples.
$novoValor = $v1 - 1;

//grava novo valor no banco.
$gravar = mysql_query("UPDATE maisum SET v1='$novoValor' WHERE id='$id'");

//retorna a pagina teste
echo '<script type="text/javascript">
		window.location="index.php";
		</script>';
		exit();

?>

Arquivo maisum.php

<?php
//inicia uma coneção com o banco de dados
include"conexao.php";

// pega o valor da variavel de identificação
$id 	=	$_GET['id'];

$sql = "SELECT * FROM maisum WHERE id='$id'";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");

while ($line=mysql_fetch_array($resultado)) {
$v1 = $line["v1"];
}
//função de soma simples.
$novoValor = $v1 + 1;

//grava novo valor no banco.
$gravar = mysql_query("UPDATE maisum SET v1='$novoValor' WHERE id='$id'");

//retorna a pagina teste
echo '<script type="text/javascript">
		window.location="index.php";
		</script>';
		exit();

?>

 

Obrigado pela ajuda! :yes:

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.