Ir para conteúdo

Arquivado

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

EnricoPre

Como usar funções de soma entre linhas no mysql?

Recommended Posts

Olá, Pessoal!

 

Preciso de uma ajudinha a respeito de um projeto que estou desenvolvendo.

Seguinte: criei um BD no phpmyadmin e preciso somar valores individuais. Aí eu não sei qual função do MySql usar

 

por exemplo:

Nome     Pontuação

joão              5

Maria            8

Julia              7

 

através de um formulário em php que criei, as pessoas irão somar os valores existentes nos registros.

Ou seja, você é o João e recebeu 3 pontos. Então você vai até o formulário e insere o valor. Então esses 3 pontos devem ser somados aos 5 pontos registrados. O mesmo vale para os outros usuários.

 

O que eu vi pela internet é o SELECT SUM, mas ele faz isso por colunas, mas não quero somar colunas, quero acrescer um valor aos registros. Como fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar o UPDATE, tenta assim:

UPDATE nome_da_sua_tabela SET pontuacao = pontuacao + 3 WHERE nome = "João"

Outra recomendação seria não usar cedilha ou caracteres especiais no nome da tabela e das colunas para evitar problemas nas consultas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, você faz um select por exemlo do registro "João" no campo pontuação.

 

Esse valor é o valor antigo da pontuação do João, usa o UPDATE que o colega citou acima

 

Tipo:

 

UPDATE tabela SET pontuacao = 'pontuacao_antiga + 'nova_pontuacao'' WHERE id_registro = 'id_do_joao_no_banco'

#'pontuacao_antiga' é o valor obtido no primeiro select

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí como eu é que resgato a pontuação antiga?

 

eu fiquei em dúvida, meu código ficou assim:

 

P.s: o nome da tabela é moedast e a coluna de pontos é Resultado.

o if é para se a pessoa vai somar, o UPDATE vai executar a soma, ou se for subtrair o UPDATE vai executar a subtração.

 

if($op == '+') {
  $w = "UPDATE moedast SET Resultado = //pontuação antiga// + '$adiciona'  WHERE id = 'id do fulano'";
  $r = mysql_query($con, $w);

  if($op == '-') {
    $w = "UPDATE moedast SET Resultado = //pontuação antiga// - '$adiciona'  WHERE id = 'id do fulano'";
    $r = mysql_query($con, $w);

  if ($w){
    echo  "Enviado!";
}else{
     echo "erro ao enviar, motivo : " . mysql_error();

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
55 minutos atrás, EnricoPre disse:

Aí como eu é que resgato a pontuação antiga?

 

eu fiquei em dúvida, meu código ficou assim:

 

P.s: o nome da tabela é moedast e a coluna de pontos é Resultado.

o if é para se a pessoa vai somar, o UPDATE vai executar a soma, ou se for subtrair o UPDATE vai executar a subtração.

 


if($op == '+') {
  $w = "UPDATE moedast SET Resultado = //pontuação antiga// + '$adiciona'  WHERE id = 'id do fulano'";
  $r = mysql_query($con, $w);

  if($op == '-') {
    $w = "UPDATE moedast SET Resultado = //pontuação antiga// - '$adiciona'  WHERE id = 'id do fulano'";
    $r = mysql_query($con, $w);

  if ($w){
    echo  "Enviado!";
}else{
     echo "erro ao enviar, motivo : " . mysql_error();

}

 

 

Onde você armazena a pontuação dos fulanos?

 

Se for em uma tabela chamada fulanos, faz assim:


SELECT pontos FROM fulanos WHERE id_fulano = 'id_fulano'

O resultado desse select será os pontos do fulano, então você armazena em uma variável esses pontos e faz o UPDATE citado acima.

 

Faz muito tem que mexi com PHP e não tenho um servidor de testes instalado aqui no momento. Más a lógica é essa.

 

Obs.: ao reler sua postagem, vi que os pontos são armazenados nessa tabela "moedast", tão como você faz para ligar o fulano a essa tabela?

Dica, nessa tabela tem que ter um campo id_fulano, para que você possa relacionar com uma tabela de fulanos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então,

o nome da tabela é moedast e o UPDATE ocorrerá na coluna Resultado

 

aí eu fiz como você disse, criei uma variável e guardei os valores, mas o UPDATE não está alterando no registro.

Veja se é assim:

 

$pontuacao_anterior = "SELECT Resultado FROM moedast WHERE id_fulano = '11'";

if($op == '+') {
  $w = "UPDATE moedast SET Resultado = '$pontuacao_anterior' + '$adiciona' WHERE id_fulano = '11'";
  $r = mysql_query($w, $con);
}

  if($op == '-') {
    $w = "UPDATE moedast SET Resultado = '$pontuacao_anterior' - '$adiciona'  WHERE id_fulano = '11'";
    $r = mysql_query($w, $con);
  }

 

onde $adiciona é a variável que vem o valor enviado do formulário,

$con é a conexão com o BD,

$op é o operador

 

você diz criar uma coluna (id_fulano) além da id (padrão do mysql) para ajustar os valores?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O fulano é cadastrado na tabela moedast?

 

Se você vai atribuir pontos para algum fulano, seria interessante ter uma tabela só de fulanos.

 

Me passa a estrutura dessa tua tabela para que eu possa entender melhor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Para entender melhor, vou explicar o que é isso:

trata-se de um jogo de pontuações onde os jogadores vão acumulando pontos e estes ficam armazenados no banco de dados.

Conforme eles ganham pontos, eles preenchem o formulário. Se eles ganharam pontos, há um botão tipo 'submit' para soma, e o mesmo para subtração.

 

após o envio precisa ser feito o UPDATE de uma forma que possa somar e/ou subtrair os registros

depois de atualizados, os novos registros precisam ser exibidos de volta para o jogador, algo como "pontuação total"

 

o problema é o seguinte: o UPDATE não é feito após enviar.

alias, eu preciso por um código para mostrar o "pontuação total" para o jogador.

são esses dois problemas que estou enfrentando

 

o campo Resultado é tipo FLOAT no bd

 

o id no código é de um teste que estou fazendo.

por exemplo, o id 11 é o id da Maria. Maria está com 8 pontos. ao usar o formulário para enviar a nova pontuação, foi feito o update e Maria ficou com 9 pontos.

 

tendeu o jogo?

rs

<?php
// CONEXAO COM O BD
$host = "localhost";
$db   = "moedabqt";
$user = "root";
$pass = "";
$con = mysql_connect($host,$user,$pass);
if(mysql_select_db($db, $con)){
  echo "conexao bem sucedida"; //TESTE PARA GARANTIR QUE HÁ CONEXAO

}
else {
  echo"conexao falhou";
}

?>

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Formulário</title>
  </head>
  <body>
    <h2>Olá! Caso você tenha cumprido todas as tarefas, insira 0.25 em todas as lacunas. </h2>
  <form method="post" action="">

      <label for="iduniao">União: </label>
      <input type="text" name="txtuniao" id="iduniao" size="10" maxlength="20" required/>

      <label for="idgarra">Garra: </label>
      <input type="text" name="txtgarra" id="idgarra" size="10" maxlength="20" required/>

      <label for="iddis">Disciplina: </label>
      <input type="text" name="txtdis" id="iddis" size="10" maxlength="20" required/>

      <label for="idres">Respeito: </label>
      <input type="text" name="txtres" id="idres" size="10" maxlength="20" required/>

      <input type="submit" name="adiciona" value="+">
      <input type="submit" name="adiciona" value="-">


  </form>

  <?php
$iduniao = isset($_POST['txtuniao']) ? $_POST['txtuniao'] : 0;
$idgarra = isset($_POST['txtgarra']) ? $_POST['txtgarra'] : 0;
$iddis = isset($_POST['txtdis']) ? $_POST['txtdis'] : 0;
$idres = isset($_POST['txtres']) ? $_POST['txtres'] : 0;
$op= $_POST['adiciona'];
$pontuacao_anterior = "SELECT 'Resultado' FROM 'moedast' WHERE id = '11'";

if($op == '+') {
  $w = "UPDATE moedast SET Resultado = '$pontuacao_anterior' + '$adiciona' WHERE id = '11'";
  $r = mysql_query($w, $con);
}

  if($op == '-') {
    $w = "UPDATE moedast SET Resultado = '$pontuacao_anterior' - '$adiciona'  WHERE id = '11'";
    $r = mysql_query($w, $con);
  }

?>


  </body>
</html>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
11 horas atrás, EnricoPre disse:

 

Para entender melhor, vou explicar o que é isso:

trata-se de um jogo de pontuações onde os jogadores vão acumulando pontos e estes ficam armazenados no banco de dados.

Conforme eles ganham pontos, eles preenchem o formulário. Se eles ganharam pontos, há um botão tipo 'submit' para soma, e o mesmo para subtração.

 

após o envio precisa ser feito o UPDATE de uma forma que possa somar e/ou subtrair os registros

depois de atualizados, os novos registros precisam ser exibidos de volta para o jogador, algo como "pontuação total"

 

o problema é o seguinte: o UPDATE não é feito após enviar.

alias, eu preciso por um código para mostrar o "pontuação total" para o jogador.

são esses dois problemas que estou enfrentando

 

o campo Resultado é tipo FLOAT no bd

 

o id no código é de um teste que estou fazendo.

por exemplo, o id 11 é o id da Maria. Maria está com 8 pontos. ao usar o formulário para enviar a nova pontuação, foi feito o update e Maria ficou com 9 pontos.

 

tendeu o jogo?

rs


<?php
// CONEXAO COM O BD
$host = "localhost";
$db   = "moedabqt";
$user = "root";
$pass = "";
$con = mysql_connect($host,$user,$pass);
if(mysql_select_db($db, $con)){
  echo "conexao bem sucedida"; //TESTE PARA GARANTIR QUE HÁ CONEXAO

}
else {
  echo"conexao falhou";
}

?>

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Formulário</title>
  </head>
  <body>
    <h2>Olá! Caso você tenha cumprido todas as tarefas, insira 0.25 em todas as lacunas. </h2>
  <form method="post" action="">

      <label for="iduniao">União: </label>
      <input type="text" name="txtuniao" id="iduniao" size="10" maxlength="20" required/>

      <label for="idgarra">Garra: </label>
      <input type="text" name="txtgarra" id="idgarra" size="10" maxlength="20" required/>

      <label for="iddis">Disciplina: </label>
      <input type="text" name="txtdis" id="iddis" size="10" maxlength="20" required/>

      <label for="idres">Respeito: </label>
      <input type="text" name="txtres" id="idres" size="10" maxlength="20" required/>

      <input type="submit" name="adiciona" value="+">
      <input type="submit" name="adiciona" value="-">


  </form>

  <?php
$iduniao = isset($_POST['txtuniao']) ? $_POST['txtuniao'] : 0;
$idgarra = isset($_POST['txtgarra']) ? $_POST['txtgarra'] : 0;
$iddis = isset($_POST['txtdis']) ? $_POST['txtdis'] : 0;
$idres = isset($_POST['txtres']) ? $_POST['txtres'] : 0;
$op= $_POST['adiciona'];
$pontuacao_anterior = "SELECT 'Resultado' FROM 'moedast' WHERE id = '11'";

if($op == '+') {
  $w = "UPDATE moedast SET Resultado = '$pontuacao_anterior' + '$adiciona' WHERE id = '11'";
  $r = mysql_query($w, $con);
}

  if($op == '-') {
    $w = "UPDATE moedast SET Resultado = '$pontuacao_anterior' - '$adiciona'  WHERE id = '11'";
    $r = mysql_query($w, $con);
  }

?>


  </body>
</html>

 

 

 

Estou mexendo aqui não seu código e agora compreendi o que você deseja fazer.

Existem muitas coisas que podem ser melhoradas aqui, estou modificando e vou deixar comentado o que fiz para que você adote algumas práticas que irão te ajudar muito ao codificar em PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, Consegui alterar o registro mysql via PHP

um passo andado

mas tem um detalhe:

  $sql  = 'UPDATE `moedast` SET `Nome` = \'Julia\', `Resultado`= `Resultado` + \'1\' WHERE `id`= \'3\'';

e

$sql  = 'UPDATE `moedast` SET `Nome` = \'Julia\', `Resultado`= `Resultado` - \'1\' WHERE `id`= \'3\'';

 

Desse jeito que está o código, ocorre a alteração que eu preciso.

Mas veja onde está +/- \'1\' WHERE `id`=\'3\'

 

o  valor 1 já está pré determinado na fórmula, nesse mesmo lugar eu preciso por minha variável $soma que recebeu os valores do formulário e a $sub, para subtrair.

O problema é que esses termos não são reconhecidos como variáveis, mas sim como uma palavra comum.

Ou seja, quando há um valor em \'x\' é feito o cálculo, mas quando há uma variável $x não funciona

Como eu faço para fazer ele reconhecer o valor armazenado em $soma e $sub?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou refazendo seu código

22 minutos atrás, EnricoPre disse:

Cara, Consegui alterar o registro mysql via PHP

um passo andado

mas tem um detalhe:


  $sql  = 'UPDATE `moedast` SET `Nome` = \'Julia\', `Resultado`= `Resultado` + \'1\' WHERE `id`= \'3\'';

e


$sql  = 'UPDATE `moedast` SET `Nome` = \'Julia\', `Resultado`= `Resultado` - \'1\' WHERE `id`= \'3\'';

 

Desse jeito que está o código, ocorre a alteração que eu preciso.

Mas veja onde está +/- \'1\' WHERE `id`=\'3\'

 

o  valor 1 já está pré determinado na fórmula, nesse mesmo lugar eu preciso por minha variável $soma que recebeu os valores do formulário e a $sub, para subtrair.

O problema é que esses termos não são reconhecidos como variáveis, mas sim como uma palavra comum.

Ou seja, quando há um valor em \'x\' é feito o cálculo, mas quando há uma variável $x não funciona

Como eu faço para fazer ele reconhecer o valor armazenado em $soma e $sub?

 

Estou refazendo seu código, instalei um servidor local aqui na minha máquina. A partir do que vou te enviar, você dá uma estudada e pega como base.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, não sei se tenho certeza de como você quer seu sistema, más lá vai. Testa aí e dá uma estudadinha abaixo para você ter como base.

 

<?php
// CONEXAO COM O BD
$host = "localhost";
$db = "moedabqt";
$user = "root";
$pass = "";
$con = mysql_connect($host, $user, $pass);
if (mysql_select_db($db, $con)) {
    echo "conexao bem sucedida"; //TESTE PARA GARANTIR QUE HÁ CONEXAO
} else {
    echo"conexao falhou";
}
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Formulário</title>
    </head>
    <body>
        <h2>Olá! Caso você tenha cumprido todas as tarefas, insira 0.25 em todas as lacunas. </h2>
        <form method="post" action="">

            <label for="iduniao">União: </label>
            <input type="text" name="txtuniao" id="iduniao" size="10" maxlength="20" required/>

            <label for="idgarra">Garra: </label>
            <input type="text" name="txtgarra" id="idgarra" size="10" maxlength="20" required/>

            <label for="iddis">Disciplina: </label>
            <input type="text" name="txtdis" id="iddis" size="10" maxlength="20" required/>

            <label for="idres">Respeito: </label>
            <input type="text" name="txtres" id="idres" size="10" maxlength="20" required/>

            <input type="submit" name="adiciona" value="+">
            <input type="submit" name="adiciona" value="-">


        </form>

        <?php
        if (isset($_POST['adiciona'])) {

            //obtenhos os pontos e armazeno num array pt
            $pt['id_uniao'] = mysql_real_escape_string(htmlspecialchars($_POST['txtuniao']));
            $pt['id_guarda'] = mysql_real_escape_string(htmlspecialchars($_POST['txtgarra']));
            $pt['id_dis'] = mysql_real_escape_string(htmlspecialchars($_POST['txtdis']));
            $pt['id_res'] = mysql_real_escape_string(htmlspecialchars($_POST['txtres']));

            //faço a soma dos pontos a armazeno o resultado na variável $total
            $total = $pt['id_uniao'] + $pt['id_guarda'] + $pt['id_dis'] + $pt['id_res'];

            //defino uma variável booleana que verifica se é pra adicionar ou remover alguma pontuação
            $is_adiciona = $_POST['adiciona'] == '+' ? true : false;

            //aqui eu fiz a leitura do fulano no banco, que é o registro 1
            $sql = "SELECT * FROM `moedast` WHERE id_fulano = '1';";
            $result = mysql_query($sql);

            //crio um array de associação da variável $result e armazeno na variável $r
            $r = mysql_fetch_assoc($result);

            if ($is_adiciona) { //se avariável for true
                add_pontos($total, $r);
            } else {//caso contrario, se for false
                remove_pontos($total, $r);
            }
        }

        //método para adicionar os pontos
        function add_pontos($pts, Array $fulano) {
            $sql = "UPDATE `moedast` SET `resultado`=" . $fulano['resultado'] . "+" . $pts . " WHERE (`id_fulano`='" . $fulano['id_fulano'] . "')";
            $exec = mysql_query($sql);
        }

        //método para remover os pontos
        function remove_pontos($pts, Array $fulano) {
            $sql = "UPDATE `moedast` SET `resultado`=" . $fulano['resultado'] . "-" . $pts . " WHERE (`id_fulano`='" . $fulano['id_fulano'] . "')";
            $exec = mysql_query($sql);
        }
        ?>
    </body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então,

o seu código altera os registros, mas a operação matemática está estranho.

Eu peguei o formulário e inseri valores e somei. Mas o resultado é diferente, aparece valores aleatórios, não sei o que está acontecendo

 

Por exemplo: Maria tem 8 pontos. No formulário, você preenche quatro campos, vamos supor que eu inseri 1+1+1+1

o resultado daria 12, certo?

Não, ele exibiu 3

Tentei de novo, coloquei outro valor, mas o resultado nunca sai de acordo com a operação. Eu somo e ele exibe um resultado inferior, eu subtraio e ele aparece um resultado somado...

Eu fiz umas adaptações, corrigi algumas coisas erradas,   mas tá muito estranho.

Seu código:

<?php
// CONEXAO COM O BD
$host = "localhost";
$db = "moedasbqt";
$user = "root";
$pass = "";
$con = mysql_connect($host, $user, $pass);
if (mysql_select_db($db, $con)) {
    echo "conexao bem sucedida"; //TESTE PARA GARANTIR QUE HÁ CONEXAO
} else {
    echo"conexao falhou";
}
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Formulário</title>
    </head>
    <body>
        <h2>Olá! Caso você tenha cumprido todas as tarefas, insira 0.25 em todas as lacunas. </h2>
        <form method="post" action="">

            <label for="iduniao">União: </label>
            <input type="text" name="txtuniao" id="iduniao" size="10" maxlength="20" required/>

            <label for="idgarra">Garra: </label>
            <input type="text" name="txtgarra" id="idgarra" size="10" maxlength="20" required/>

            <label for="iddis">Disciplina: </label>
            <input type="text" name="txtdis" id="iddis" size="10" maxlength="20" required/>

            <label for="idres">Respeito: </label>
            <input type="text" name="txtres" id="idres" size="10" maxlength="20" required/>

            <input type="submit" name="adiciona" value="+">
            <input type="submit" name="adiciona" value="-">


        </form>

        <?php
        if (isset($_POST['adiciona'])) {

            //obtenhos os pontos e armazeno num array pt
            $pt['iduniao'] = mysql_real_escape_string(htmlspecialchars($_POST['txtuniao']));
            $pt2['idguarda'] = mysql_real_escape_string(htmlspecialchars($_POST['txtgarra']));
            $pt3['iddis'] = mysql_real_escape_string(htmlspecialchars($_POST['txtdis']));
            $pt4['idres'] = mysql_real_escape_string(htmlspecialchars($_POST['txtres']));

            //faço a soma dos pontos a armazeno o resultado na variável $total
            $total = $pt['iduniao'] + $pt2['idguarda'] + $pt3['iddis'] + $pt4['idres'];

            //defino uma variável booleana que verifica se é pra adicionar ou remover alguma pontuação
            $is_adiciona = $_POST['adiciona'] == '+' ? true : false;

            //aqui eu fiz a leitura do fulano no banco, que é o registro 1
            $sql = "SELECT * FROM `moedast` WHERE `id` = '2';";
            $result = mysql_query($sql);

            //crio um array de associação da variável $result e armazeno na variável $r
            $r = mysql_fetch_assoc($result);

            if ($is_adiciona) { //se avariável for true
                add_pontos($total, $r);
            } else {//caso contrario, se for false
                remove_pontos($total, $r);
            }
        }

        //método para adicionar os pontos
        function add_pontos($pts, Array $fulano) {
            $sql = "UPDATE `moedast` SET `resultado`=" . $fulano['adiciona'] . "+" . $pts . " WHERE (`id`='" . $fulano['id'] . "')";
            $exec = mysql_query($sql);
        }

        //método para remover os pontos
        function remove_pontos($pts, Array $fulano) {
            $sql = "UPDATE `moedast` SET `resultado`=" . $fulano['adiciona'] . "-" . $pts . " WHERE (`id`='" . $fulano['id'] . "')";
            $exec = mysql_query($sql);
        }
        ?>
    </body>
</html>

 

Aqui é meu código, faz as operações normal, mas não há um formulário para entrar valores. Toda vez que você clica em '+' ele soma 1 ponto. Se você clica em '-' ele subtrai.

 


<?php
// definições de host, database, usuário e senha
$host = "localhost";
$db   = "moedasbqt";
$user = "root";
$pass = "";
$con = mysql_connect($host,$user,$pass);
if(mysql_select_db($db, $con)){
  echo "conexao bem sucedida";

}
else {
  echo"conexao falhou";
}


?>

 


<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Formulário Torto</title>
  </head>
  <body>

    <h3> Adicione ou subtraia seus pontos. Cada clique equivale a 1 TORTO</h3>
    <form method="post" action="">

      <input type="submit" name="valor" value="+">
      <input type="submit" name="xvalor" value="-">

    </form>

    <?php

    $op= isset($_POST['valor']);
    $op2 = isset($_POST['xvalor']);

    if($op == '+') {
      $sql  = 'UPDATE `moedast` SET `Nome` = \'Maria\', `Resultado`= `Resultado` + \'1\' WHERE `id`= \'2\'';
      $r = mysql_query($sql, $con);
      echo "1 TORTO adicionado!";
      $sql = mysql_query('SELECT `Resultado` FROM `moedast` WHERE `id`=\'2\'');
while($exibe = mysql_fetch_assoc($sql)){
  echo $exibe['Resultado'] .'<br>';
}
    }

      if($op2 == '-') {
      $sql  = 'UPDATE `moedast` SET `Nome` = \'Maria\', `Resultado`= `Resultado` - \'1\' WHERE `id`= \'2\'';
        $r = mysql_query($sql, $con);
        echo "Xi! Menos 1!";
        $sql = mysql_query('SELECT `Resultado` FROM `moedast` WHERE `id`=\'2\'');
while($exibe = mysql_fetch_assoc($sql)){
  echo $exibe['Resultado'] .'<br>';
}
      }
     ?>
  </body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, tudo corre certo com meu código. Está funcional.

 

A tabela antes da inserção dos pontos

59666612cbc60_tbantes.png.66877d3f86707877266b12b7d35bbd81.png

 

Seu formulário rodando aqui no meu servidor local:

form.png.f0a275ccd1850953dc02212f9773f17b.png

 

Estou inserindo 0,25 em cada coluna, que na somatória é para dar 1

596666644c8d0_formdepois.png.5ff7517e30ba2e61d06e22ba075feb96.png

 

Agora o resultado disso no banco de dados:

5966669dc014f_tbdepois.png.562bc023785c47bcc025b701e39bdf52.png

 

Agora vou diminuir 0,25 em duas lacunas, que somando estou diminuindo 0,5 do total de pontos do registro 1 no banco de dados

596666d119e86_formsub.png.ca1bee27539a30de84a69ba700ccd93c.png

 

Agora o resultado disso no banco:

596666ef121cd_tbdepoissub.png.c2e0bf202104083a471d83936f9563f9.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, é isso!

 

Eu criei uma tabela para testar seu código individualmente, e funciona mesmo!

 

só que tem mais um detalhe q não estou conseguindo arrumar.

você fez a quebra de valores, no meu 'resultado' ele não exibe valores quebrados igual ao seu. como você deixou? float? qual formato?

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma ultima coisa !!

 

rs

 

o formulário deu certo, os valores são alterados

mas estou tentando dar um jeito de retornar esses valores alterados para o usuário no formulário

eu procurei na internet mas sempre q insiro um novo código da um erro

 

basicamente, depois que o usuário clicar em + ou - retorne o valor alterado no mysql para o formulário

 

eu havia usado esse código antes, mas no seu formulário não está resolvendo

        $sql = mysql_query('SELECT `resultado` FROM `moedast` WHERE `id`=\'1\'');
  while($exibe = mysql_fetch_assoc($sql)){
    echo $exibe['resultado'] .'<br>';

igual você mostrou antes, aquele 0,5 do JOSIMAR tem que voltar para que  o JOSIMAR possa ver o valor alterado

quando resolver isso eu fecho

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 horas atrás, EnricoPre disse:

$sql = mysql_query('SELECT `resultado` FROM `moedast` WHERE `id`=\'1\''); while($exibe = mysql_fetch_assoc($sql)){ echo $exibe['resultado'] .'<br>';

 

Você tem que executar o $sql

Ex: $resultset = mysql_query($sql);

 

Como você vai pegar apenas um resultado, então não precisa do while

 

$res = mysql_fetch_assoc($resultset);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui !

 

:p

 

mas usei while

ficou assim:

        $sql = "SELECT `resultado` FROM `moedast`";
        $exec = mysql_query($sql);
        while($sql = mysql_fetch_array($exec)){
        $n = $sql["resultado"];
        //onde $nome é a variavel que rerpresenta a coluna "nome" nessa
        //mesma tabela.
        echo "$n"; //exibindo o que foi achado na coluna "nome".

 

fechou @JosimarNew

agr só aplicar CSS

foi de muita ajuda

muito obrigado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
×

Informação importante

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