Ir para conteúdo

POWERED BY:

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 ILR master
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
    • Por daemon
      Boa tarde,
       
      Eu tenho uma rotina que faz uma leitura do arquivo .xml de vários sites.

      Eu consigo pegar o tópico e a descrição, e mostrar a imagem que esta na pagina do link.
      Para isso utilizo esta função:
      function getPreviewImage($url) { // Obter o conteúdo da página $html = file_get_contents($url); // Criar um novo objeto DOMDocument $doc = new DOMDocument(); @$doc->loadHTML($html); // Procurar pela tag meta og:image $tags = $doc->getElementsByTagName('meta'); foreach ($tags as $tag) { if ($tag->getAttribute('property') == 'og:image') { return $tag->getAttribute('content'); } } // Se não encontrar og:image, procurar pela primeira imagem na página $tags = $doc->getElementsByTagName('img'); if ($tags->length > 0) { return $tags->item(0)->getAttribute('src'); } // Se não encontrar nenhuma imagem, retornar null return null; } // Uso: $url = "https://example.com/article"; $imageUrl = getPreviewImage($url); if ($imageUrl) { echo "<img src='$imageUrl' alt='Preview'>"; } else { echo "Nenhuma imagem encontrada"; }  
      Mas estou com um problema, esta funcão funciona quando coloco em uma pagina de teste.php. Preciso mostrar em uma página inicial diversas fotos de todos os links. (No caso acima só funciona 1).
×

Informação importante

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