Jump to content
Daniel Ferreira Carneiro

ERRO para Editar Banco de Dados

Recommended Posts

Pessoal me da uma força ai, fiz um banco de dados, Editavel, quando tenho a linha abaixo está assim:

 

$query = mysqli_query($link,"update contato set nome='$nome', telefone='$telefone', where id='$id';");

 

Não consigo alterar os dados pois aparece essa mensagem de erro abaixo:

 

Erro: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where id='$id'' at line 1

 

Quando APAGO o where id='$id'  Eu consigo alterar, porem todos os Dados do banco alteram também, como se um alterasse todos.

 

vou postar o código inteiro:

<?php
$id = filter_input(INPUT_GET, "id");
$nome = filter_input(INPUT_GET, "nome");
$telefone = filter_input(INPUT_GET, "telefone");

$link = mysqli_connect("localhost", "root", "", "agenda_telefonica");

if($link){
$query = mysqli_query($link,"update contato set nome='$nome', telefone='$telefone', where id='$id';");
if ($query) {
    
  header("Location: index.php");
}else{
die("Erro: ". mysqli_error($link));
}

}else{
die("Erro: ". mysqli_error($link));
}

 

Edited by Matheus Tavares
Adicionar marcação para código

Share this post


Link to post
Share on other sites
13 horas atrás, Matheus Tavares disse:

O problema está na virgula entre o último campo e o where. Você precisa removê-la.


                              AQUI
UPDATE xxx = 'yyy', foo = 'bar', WHERE id = 5

Eu tentei corrigir mais não deu certo,  continua aparecendo essa mensagem...

Erro: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where id=' at line 1

 

se alguém puder reescrever esse código pra mim me ajudaria muito.

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 Carlos Antoliv
      Olá, senhores.
       
      Sei que existem diversos tópicos por aí sobre esse assunto, contudo, não consegui solucionar o problema, mesmo depois de 1 dia tentando fazer algo até simples.
       
      Seguinte, estou pegando o id de um produto e tentando jogar em outra tabela, pelo checkbox.
      ex:
       
      id    produto
      23   lapis
      43  caneta
       
      pelo checkbox, a pessoa escolhe o produto e adicona em uma lista, que é outro banco. Se pessoa selecionar mais de 1 item da lista, o laço só envia para o banco apenas 1 item de qualquer forma.
       
      Vou postar o Código:
       
      Código do INSERT:
       
          $check1 = (isset($_POST["check"]) && $_POST["check"] != null) ? $_POST["check"] : "";     foreach($check1 as $check){                         $stmt = $conexao->prepare("INSERT INTO tb_itemProdKit (fk_tb_kit, fk_usuarios, fk_tb_produtos) VALUES (?, ?, ?)");                  $stmt->bindParam(1, $nome_prod);         $stmt->bindParam(2, $idSessao);         $stmt->bindParam(3, $check);                if ($stmt->execute()) {             if ($stmt->rowCount() > 0) {                 echo "Dados cadastrados com sucesso!";                 $id_prod = null;                 $nome_prod = null;                 $idSessao = null;                 $check = null;                             header("Location: item-produto-kit.php");exit;                              } else {                 echo "Erro ao tentar efetivar cadastro";             }         } else {                throw new PDOException("Erro: Não foi possível executar a declaração sql");         }     } } } catch (PDOException $erro) {         echo "Erro: " . $erro->getMessage();     }    
       
      Agora o código do checkbox:
       
             if ($stmt->execute()) {                 while ($rs = $stmt->fetch(PDO::FETCH_OBJ)) {                       echo "<tr>";                     echo "<td><input type='checkbox' name='check[]' id='check' value='".$rs->id_prod."'</td><td class='lista_usuario'>".$rs->nome_produto."</td><td class='lista_usuario'>".$rs->desc_prod."</td><td class='lista_usuario'>".$rs->peso_liq_prod                                ."</td>"                                ;                     echo "</tr>";                 }             }else {                 echo "Erro: Não foi possível recuperar os dados do banco de dados";             }     } catch (PDOException $erro) {         echo "Erro: ".$erro->getMessage();     }     echo "</form>"    
          ?>  
       
       
      Está cadastrando apenas 1 item e não múltiplos itens.
       
      abço!!
       
       
       
       
       
    • By Kellison Ruan
      Acho que não fui tão claro no título, portanto irei esmiuçar melhor aqui...
       
      É o seguinte, quero saber se há algum jeito de pegar as linhas de uma coluna q está em VARCHAR com informações do tipo "4 PONTOS DE ILUMINAÇÃO", dessa informação pretendo retirar somente o número que em questão é o "4" e colocá-lo em outra coluna INTEGER. Há essa possibilidade? Detalhe, as vezes as informações não está seguindo um padrão de vim somente como "4 PONTOS DE ILUMINAÇÃO" às vezes vêm dados com mais informações númericas que precisa distinguir, por exemplo, a mim só interessa pegar números que vem antecedendo as palavras "PONTOS", "PTOS", "PTS", têm algum jeito de distinguir isso?
    • By Kakaroto1309
      Preciso de uma ajuda para conectar com o banco. Estava tudo funcionando normalmente com MYSQL agora parou tudo e estou tentando trocar para MYSQLI.
      Não acho o erro, já tentei de tudo.
       
      connection.php
      <? function conecta() { $host = "localhost"; $user = "admin"; $pass = "123456789"; $db = "principal"; //Conexão $conexao = mysqli_connect($host, $user, $pass) or die("Erro na conexão:".mysqli_error()); //Selecionar BD mysqli_select_db($conexao,$db) or die("Erro ao selecionar BD"); } function desconecta() { mysqli_close(); } ?> validate.php
      <? if (empty($_POST) and (empty($_POST['cpUsuario']) OR empty($_POST['cpSenha']))) { header("Location: ../login.php"); exit; } else { include("connection.php"); conecta(); $varUsuario = $_POST['cpUsuario']; $varSenha = sha1($_POST['cpSenha']); $stt = "SELECT ID,txNome,txNivel FROM tbUsuario WHERE txUsuario='$varUsuario' and txSenha='$varSenha' LIMIT 1"; $sql = mysqli_query($conexao,$stt) or die(mysqli_error($conexao)); $existe = mysqli_num_rows($sql); if ($existe == 0) { echo "Login invalido ou inexistente na base"; exit; } else { $resultado = mysqli_fetch_assoc($sql); if (!isset($_SESSION)) { session_start(); } $_SESSION['UsuarioID'] = $resultado['ID']; $_SESSION['UsuarioNOME'] = $resultado['txNome']; $_SESSION['UsuarioNIVEL'] = $resultado['txNivel']; header("Location: ../menu.php"); exit; } } ?> O erro agora está dando o seguinte:
      PHP Warning:  mysqli_query() expects parameter 1 to be mysqli, null given in /home4/public_html/connection/validate.php on line 17
       
      Linha 17 é essa:
      $sql = mysqli_query($conexao,$stt) or die(mysqli_error($conexao));
       
      Se eu tiro o $conexao do mysqli_query ele da erro de "mysqli_query() expects at least 2 parameters, 1 given" e se eu coloco o erro é "mysqli_query() expects parameter 1 to be mysqli, null given"
       
      Alguem sabe como posso resolver isso?
    • By SAS Junior
      Olá, sou novo aqui e em SQL Server, estou com um problema para buscar um resultado. 
      Caso hoje seja segunda, trazer as instalações dos últimos 3 dias (sexta, sábado e domingo), caso não seja, trazer só os de ontem, tentei da forma abaixo e muitas outras e não consegui, desde já agradeço.    
      SELECT codigoCliente AS [CÓD], CpfCnpj AS [CPF/CNPJ] ,NomeFantasia as [NOME FANTASIA] ,UPPER(NomeContato) as [NOME DE CONTATO] ,CASE WHEN CLI.DDDCelular IS NULL THEN 'NÃO TEM' ELSE DDDCelular END AS [DDD CEL] ,CASE WHEN Celular IS NULL THEN 'NÃO TEM' ELSE Celular END AS CELULAR ,CASE WHEN DDDTelefone IS NULL THEN 'NÃO TEM' ELSE DDDTelefone END AS [DDD TEL] ,CASE WHEN Telefone IS NULL THEN 'NÃO TEM' ELSE Telefone END AS TELEFONE ,DataInstalacao AS [INSTALAÇÃO] ,DATEPART(weekday,DataInstalacao) as [DIASEMANA] ,UPPER(Departamento) AS [DEPTO CAD] ,upper(UsuarioCadastro) as [CADASTRADO POR] ,CASE WHEN UPPER(EMAIL) IS NULL THEN 'NÃO TEM EMAIL' ELSE UPPER(EMAIL) END AS EMAIL FROM CLIENTE WHERE (CASE WHEN (DATEPART(weekday,GETDATE()) = '2' THEN DATEPART(DAY, DataInstalacao) >= DATEPART(DAY, GETDATE()-3) ELSE DATEPART(DAY, DataInstalacao) = DATEPART(DAY, GETDATE()-1) END) AND MONTH(DataInstalacao) = MONTH(GETDATE()) AND YEAR(DataInstalacao) = YEAR(GETDATE()) AND Situacao = 'MAQUINA INSTALADA'  
    • By peterstefan
      Olá, estou com uma query aqui e preciso pegar de 2 campos diferentes os dados diferente de 0,  mais quanto tento no AND ele somente traz um resultado, o OR ele traz um dos campos com o valor 0, teria alguma forma de pegar os dados diferente de 0 dos dois campus?
      preciso pegar o idOrganizador diferente de 0 e o idPiloto diferente de 0 
       
      SELECT * FROM boletos WHERE proc = 0 AND idOrganizador !='0' AND idPiloto ='0';  
×

Important Information

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