Jump to content
brunobos21

Checkbox que faz update no mysql

Recommended Posts

Olá, eu criei um formulario que salva os dados em um banco de dados mysql, e criei uma pagina de relatorio para mostrar todo mundo que se cadastra nesse banco, até ai tudo certo, só que eu tenho um campo "Status" que eu queria colocar um checkbox para o administrador poder marcar esse campo e mudar no mysql o valor do Status para 1 sempre que clicar no botão atualizar, e se o administrador desmarcar antes apertar o botão Atualizar, não mudar na tabela. Já pesquisei em tudo quer canto e não achei, se puderem me ajudar enviando algum modelo de código ou algum tópico aqui do forúm que ja fale sobre isso, agradeço. Aqui está meu código:

<?php
// definições de host, database, usuário e senha
$host = "host";
$banco = "banco";
$user = "user";
$pass = "pass";
$tbl_name="tabela";
 
$nome = $_POST['nome'];
$numero = $_POST['numero'];
$email = $_POST['email'];
$cidade = $_POST['cidade'];
$whatsapp = $_POST['whatsapp'];
$data = $_POST['data'];
$status = $_POST['status'];
 
// conecta ao banco de dados
$con = mysql_pconnect($host, $user, $pass) or trigger_error(mysql_error(),E_USER_ERROR);
// seleciona a base de dados em que vamos trabalhar
mysql_select_db($banco, $con);
// cria a instrução SQL que vai selecionar os dados
$query = sprintf("SELECT * FROM Pesquisas");
// executa a query
$dados = mysql_query($query, $con) or die(mysql_error());
// transforma os dados em um array
$linha = mysql_fetch_assoc($dados);
// calcula quantos dados retornaram
$total = mysql_num_rows($dados);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Relatorio</title>
    <meta charset="latin1_swedish_ci">
    <meta name="viewport" content="width=device-width, initial-scale=1">
<!--===============================================================================================-->  
    <link rel="icon" type="image/png" href="images/icons/favicon2.ico"/>
<!--===============================================================================================-->
    <link rel="stylesheet" type="text/css" href="vendor/bootstrap/css/bootstrap.min.css">
<!--===============================================================================================-->
    <link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.7.0/css/font-awesome.min.css">
<!--===============================================================================================-->
    <link rel="stylesheet" type="text/css" href="vendor/animate/animate.css">
<!--===============================================================================================-->
    <link rel="stylesheet" type="text/css" href="vendor/select2/select2.min.css">
<!--===============================================================================================-->
    <link rel="stylesheet" type="text/css" href="vendor/perfect-scrollbar/perfect-scrollbar.css">
<!--===============================================================================================-->
    <link rel="stylesheet" type="text/css" href="css/util.css">
    <link rel="stylesheet" type="text/css" href="css/main.css">
<!--===============================================================================================-->
<script src="vendor/jquery/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
//-->
</script>
</head>
<body>
<form action=" " method="post">
    <div class="limiter">
        <div class="container-table100">
            <div class="wrap-table100">
                <div class="table100">
                    <table>
                        <thead>
                            <tr class="table100-head">
                                <th class="column1">Nome</th>
                                <th class="column2">Numero</th>
                                <th class="column3">Cidade</th>
                                <th class="column4">E-mail</th>
                                <th class="column5">Whatsapp</th>
                                <th class="column6">Tipo</th>
                                <th class="column6">Data</th>
                                <th class="column6">Status</th>
                            </tr>
                        </thead>
 
                        <?php
                        // se o número de resultados for maior que zero, mostra os dados
                        if($total > 0) {
                    // inicia o loop que vai mostrar todos os dados
                    do {
                        ?>
                        <tbody>
                                <tr>
                                    <td class="column1"><?=$linha['nome']?></td>
                                    <td class="column2"><?=$linha['numero']?></td>
                                    <td class="column3"><?=$linha['cidade']?></td>
                                    <td class="column4"><?=$linha['email']?></td>
                                    <td class="column5"><?=$linha['whatsapp']?></td>
                                    <td class="column6"><?=$linha['tipo']?></td>
                                    <td class="column6"><?=$linha['data']?></td>
                                    <td class="column6">
                                    <input type=checkbox name="banco[]" value="1"><?=$linha['status']?>
                                    </td>
                                </tr>       
                        </tbody>
                        <?php
                    // finaliza o loop que vai mostrar os dados
                    }while($linha = mysql_fetch_assoc($dados));
                        // fim do if
                        }
                        ?>
                    </table>
                    <div class="container-contact2-form-btn">
                                <div class="wrap-contact2-form-btn">
                                    <div class="contact3-form-bgbtn"></div>
                                    <button class="contact2-form-btn" type="submit" value="Enviar" name="enviar">
                                        Atualizar
                                    </button>
                                </div>
                            </div>
                </div>
            </div>
        </div>
    </div>
</form>
 
<!--===============================================================================================-->  
    <script src="vendor/jquery/jquery-3.2.1.min.js"></script>
<!--===============================================================================================-->
    <script src="vendor/bootstrap/js/popper.js"></script>
    <script src="vendor/bootstrap/js/bootstrap.min.js"></script>
<!--===============================================================================================-->
    <script src="vendor/select2/select2.min.js"></script>
<!--===============================================================================================-->
    <script src="js/main.js"></script>
</body>
</html>
<?php
// tira o resultado da busca da memória
mysql_free_result($dados);
?>

Share this post


Link to post
Share on other sites

Por padrão, se não estiver selecionado, ele envia NULL, caso esteja passará o valor setado, ex:

<input type="checkbox" name="checkbox_status" value="1">

No PHP você recebe e verifica, supondo que envie por POST:

if(isset($_POST['checkbox_status'])){ // se estiver marcado
    // faça isso
}else{
    // senão faça isso
}

Se quer fazer no inserir, precisa usar INSERT no SQL, se for pra atualizar posteriormente, precisa utilizar UPDATE.

Share this post


Link to post
Share on other sites

Olá, obrigado pela ajuda marcosmarcolin!

Agora estou tendo um problema em fazer o insert, não sei como colocar o WHERE do mysql, se eu coloco WHERE nome = $nome, ele da erro de sintax do mysql, alguém teria alguma ideia?

<?php
// definições de host, database, usuário e senha
include ('conect.php');
require('conect.php');
 
$id = $_POST['id'];
$nome = $_POST['nome'];
$numero = $_POST['numero'];
$email = $_POST['email'];
$cidade = $_POST['cidade'];
$whatsapp = $_POST['whatsapp'];
$data = $_POST['data'];
$status = $_POST['status'];
 
if(isset($_POST['checkbox_status'])){ // se estiver marcado
mysql_query("UPDATE Pesquisas SET status=1 WHERE nome = '$nome'") or die(mysql_error());
}else{
mysql_query("UPDATE Pesquisas SET status=0 WHERE nome = '$nome'") or die(mysql_error());
}
?>

Share this post


Link to post
Share on other sites

acho que falta colocar a conexão e selecionar a base de dados que você vai trabalhar antes da condição 

// conecta ao banco de dados
$con = mysql_pconnect($host, $user, $pass) or trigger_error(mysql_error(),E_USER_ERROR);
// seleciona a base de dados em que vamos trabalhar
mysql_select_db($banco, $con);

Share this post


Link to post
Share on other sites
Agora, felone disse:

acho que falta colocar a conexão e selecionar a base de dados que você vai trabalhar antes da condição 

// conecta ao banco de dados
$con = mysql_pconnect($host, $user, $pass) or trigger_error(mysql_error(),E_USER_ERROR);
// seleciona a base de dados em que vamos trabalhar
mysql_select_db($banco, $con);

Né isso não, porque eu consigo fazer o update sem usar o where, o problema ta na condição que eu impus no WHERE, ele provavelmente não ta reconhecendo a variável que eu to comparando com a coluna do mysql, to me batendo pra ajustar isso e não to conseguindo.

Share this post


Link to post
Share on other sites
16 horas atrás, marcosmarcolin disse:

Qual é o erro?

 

mysqli_query("UPDATE Pesquisas SET status = '1' Where id = '$id';") or die(mysql_error());
Eu estou usando esse codigo, só que quando eu executo ele, ele simplesmente não altera nada no banco mysql, ou seja ele não esta reconhecendo a variavel $id e nenhuma outra, pois ja tentei com outra variaveis, eu não sei mais o que fazer, qualquer coisa meu código inteiro ta ai em cima

Share this post


Link to post
Share on other sites
19 horas atrás, brunobos21 disse:

 

mysqli_query("UPDATE Pesquisas SET status = '1' Where id = '$id';") or die(mysql_error());
Eu estou usando esse codigo, só que quando eu executo ele, ele simplesmente não altera nada no banco mysql, ou seja ele não esta reconhecendo a variavel $id e nenhuma outra, pois ja tentei com outra variaveis, eu não sei mais o que fazer, qualquer coisa meu código inteiro ta ai em cima

 

Se você colocar um valor fixo no id ele faz a alteração no banco de dados ?

tive um problema parecido  mas no meu caso quando eu colocava um valor fixo ele executava o comando normalmente, e o problema era quando passava o valor para a variavel, ela fica com dois valores e um dos valores era null, por isso dava erro.

Share this post


Link to post
Share on other sites

Aparentemente tem um erro na sua consulta, tem um ; (ponto e vírgula) depois do '$id'. Provavelmente seja isso o porque de não executar a query. Porém, verifique se o $id existe, se a tabela está correta, etc.

 

#Obs: quando se usa mysqli_query, o PHP sempre espera dois parâmetros, primeiro a conexão, por segundo a consulta, ex:

mysqli_query($con, "UPDATE tabela SET.....");

A variável $con é a variável que armazena a conexão com o banco de dados. Veja no manual: mysqli_query

 

Verifica isso e retorna aqui.

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 terra
      Olá,
       
      Preciso pegar o valor desse select
       
       
       aqui nessa query
       
       
      Agradeço qualquer ajuda
    • By violin101
      Caros amigos, saudações...
       
      Gostaria de tirar uma dúvida com os amigos se tem a possibilidade de fazer e como fazer.
       
      A pasta MODELS tem como fazer separado como a pasta CONTROLLERS, por exemplo:
       
      a pasta controller consigo fazer assim: PASTA e SUBPASTAS.
       
      controller
      |__ Admin
      |_____ Estoque
      |_______ Financeiro
       
      na pasta Models, fica tudo junto as funções, como por exemplo:
      admin_model.php
      caixa_model.php
      vendas_model.php
      e etc
       
      na Models, tem como fazer como na pasta controller, assim:
      |__ Admin
           |__ admin_model.php
      |_____ Estoque
                 |__ estoque_model.php
      |_______ Financeiro
                    |__ caixa_model.php
       
      para chamar uma função no controller, faço desta forma: 
      <?php $this->load->model('categorias_model'); $this->data['categorias'] = $this->categorias_model->getActive('categorias', 'categorias.idCategorias,categorias.categoria'); ?>  
      Conforme minha dúvida acima, como seria o caminho para chamar esta função:   
      $this->load->model('categorias_model');
       
       
      Grato,
       
      Cesar
    • By Samuel Pietro
      Tenho um select em PDO e preciso que a consulta retornada vire uma variavel, mas a variavel só pega a ultima linha da tabela e eu preciso que pegue todas as linhas que existirem.
       
      $conexao = conexao::getInstance(); $sql = 'SELECT * FROM RegistroE'; $stm = $conexao->prepare($sql); $stm->execute(); $Sql = $stm->fetchAll(PDO::FETCH_OBJ); foreach ($Sql as $SqlReg): $conteudo_meio = picture_X($SqlReg->E_01,1) .picture_X($SqlReg->E_02,25) .picture_9($SqlReg->E_03,4) .picture_X($SqlReg->E_04,14) .picture_9($SqlReg->E_05,8) .picture_9($SqlReg->E_06,8) .picture_9($SqlReg->E_07,8) .picture_9($SqlReg->E_08,8) .picture_9($SqlReg->E_09,8) .complementoRegistro(96,"brancos") .picture_9($SqlReg->E_11,1) .complementoRegistro(1,"brancos") ; endforeach; Como eu poderia está fazendo isto?
    • By peterstefan
      Bom dia, estou fazendo uma cadastro via rest e estou utilizando o curl para cadastrar no webservice...
      Meu código está cadastrando tudo certinho, porem quando ele cadastra e mostra o retorno que foi cadastrado com sucesso ele fica o AGUARDE, CARREGANDO e não para.. não sei oque esta faltando pq já tentei varias coisas e não deu certo... 
       
       
       
      $Data = [ "nomeRazaoSocial" => $PostData['nomeRazaoSocial'], "identMF" => $PostData['identMF'], "email" => $PostData['email'], "telefone" => $PostData['telefone'], "senhaProvisoria" => $PostData['senhaProvisoria'] ]; $DataString = json_encode($Data); $curl = curl_init(WEBSERVICECADASTRO); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_POSTFIELDS, $DataString); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($DataString)) ); $result = curl_exec($curl); if ($result) { $jSON['success'] = "<i class='icon-checkmark'></i>Pronto, cadastro foi realizado com sucesso!"; }else{ $jSON['error'] = "<i class='icon-warning'></i>Oops! Erro ao cadastrar! Por favor, tente novamente!"; }  

       

    • By RSN
      Boa Noite,
      Preciso enviar uma consulta sql no corpo do e-mail, porém não estou conseguindo concatenar o laço while.
      <?php include_once('conexao.php'); require 'PHPMailer/PHPMailerAutoload.php'; $resultado = mysql_query("SELECT * FROM cupom WHERE FlagEstorno = 1;"); $linhas = mysql_num_rows($resultado); $mensagem = '<div class="x_content"> <table id="datatable-buttons" class="table table-striped table-bordered"> <thead> <tr> <th>Loja</th> <th>Nro Cupom</th> <th>Data</th> <th>Operador</th> </tr> </thead> <tbody> while($linhas = mysql_fetch_array( $resultado)){ echo " <tr>"; echo "<td>".$linhas['nroloja']."</td>"; echo "<td>".$linhas['NroCupom']."</td>"; echo "<td>".$linhas['DataProc']."</td>"; echo "<td>".$linhas['Operador']."</td>"; echo " </tr>"; }'; $mail = new PHPMailer(); $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->SMTPSecure = 'tls'; $mail->Username = ''; $mail->Password = ''; $mail->Port = 587; $mail->setFrom(''); $mail->addReplyTo(''); $mail->addAddress('', 'Nome'); $mail->isHTML(true); $mail->Subject = 'Assunto do email'; $mail->Body = $mensagem; $mail->AltBody = 'Para visualizar essa mensagem acesse http://site.com.br/mail'; //$mail->addAttachment('/tmp/image.jpg', 'nome.jpg'); if(!$mail->send()) { echo 'Não foi possível enviar a mensagem.<br>'; echo 'Erro: ' . $mail->ErrorInfo; } else { echo 'Mensagem enviada.'; } ?>  
×

Important Information

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