Ir para conteúdo

Arquivado

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

TeixeiraRamos

Quebrando Linha SQL

Recommended Posts

Olá gente,

Um CRUD - PHP 7, PDO - MySQL

Por favor, não deve ser coincidência, considerando que sempre que digito um nome de um campo na linha da sintaxe tanto do INSERT INTO e do "UPDATE, o resultado mostra erro.

Acompanhem, por favor, o seguinte:

Essa é linha do "UPDATE", onde digitei mais um campo na SQL, OU SEJA, n_autor = :n_autor

E, com isso, inicia a quebra de linha da sintaxe:

"UPDATE $this->tabela SET nome = :nome, email = :email, n_ativ = :n_ativ, n_livro = :n_livro,
n_autor = :n_autor WHERE id = :id";

Tentei alterar um registro e vejam o resultado:

 

Citar
Notice: Undefined index: $n_autor in C:\wamp\www\phpoo2\metadados\Index.php on line 89
Call Stack
# Time Memory Function Location
1 0.0005 378144 {main}( ) ...\Index.php:0

 

( ! ) Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'n_autor' cannot be null in C:\wamp\www\phpoo2\classes\Usuarios.php on line 60
( ! ) PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'n_autor' cannot be null in C:\wamp\www\phpoo2\classes\Usuarios.php on line 60
Call Stack
# Time Memory Function Location
1 0.0005 378144 {main}( ) ...\Index.php:0
2 0.0051 402640 Usuarios->update( ) ...\Index.php:98
3 0.0065 417672 execute ( ) ...\Usuarios.php:60

 

A linha 89 do index.php é:

 

$n_autor  = $_POST['$n_autor'];

Que é justamente a nome do campo que digitei na sintaxe do UPDATE.

 

A linha 60 de Usuarios.php onde tem as function que executa o UPDATE é:

return $stm->execute();

Agora vejam a sintaxe do comando UPDATE  com a linha quebrando e incluindo o \n" :

 

  $sql = "UPDATE $this->tabela SET nome = :nome, email = :email, n_ativ = :n_ativ, n_livro = :n_livro, n_autor = :n_autor\n" 
. "WHERE id = :id";

Se eu retirar dessa linha n_autor = :n_autor a linha não é quebrada e o resultado é a Alteração do registro com sucesso.

Diante disso, mas foi o que eu aprendi, que a na quebra de linha em PHP, deve ser colocado no final da quebra \n"  e inicia a outra com . (concatenar) e abrir "  no final. Ficando linha da sintaxe SQL UPDATE  dessa forma no meu caso:

 

$sql = "UPDATE $this->tabela SET nome = :nome, email = :email, n_ativ = :n_ativ, n_livro = :n_livro,\n"
		. "n_autor = :n_autor WHERE id = :id";

O erro é o mesmo. Com isso acredito que estou errando ao quebrar a linha da sintaxe.

Adianto que já observei o banco de dados e não é afetado com a Alteração.

 

Obrigado.

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Paulooc
      Sou novo nesse tipo de progamação
       
      Estou criando uma consulta onde a mesma variável contem informações diferentes para empenhos diferentes ex:
      empenho 100 corresponde a quantidade de funcionários
      empenho 101  corresponde a quantidade de horas 
       
      Quando executo a consulta as informações aparecem da seguinte maneira 
      COD_OBJETOCUSTO    Quantidade    Horas 1    148    9     2    148     1     3    148     6     4    148    2     5    148     2     6    148     0     7    148         540 8    148         60 9    148        360 10    148         120 11    148         120 12    148         0  
       
      Gostaria que ficasse da seguinte forma  
      Cod_objetocusto Quantidade Horas 1    148     9    540 2    148     1    60 3    148    6    360 4    148    2    120 5    148    2     120 6    148     0    0  
      eis a sql
      select  pmp.cod_objetocusto, decode(pmp.cod_empenho,100,pmm.tecnica), decode(pmp.cod_empenho,101,pmm.tecnica) from    planejamento.mvtoplanilhas pmp        ,planejamento.mvtomespla pmm where pmm.ano = &Ano and   pmm.mes = &Mes_Ini and   pmp.cod_grupoempresa = 1 and   pmp.cod_empresa = &Empresa and   pmp.cod_filial = &Filial and   pmp.cod_empenho in (100,101) and   pmm.codmvtoplanilha = pmp.codmvtoplanilha and   pmp.cod_objetocusto  =    &Obj;  
      desde já agradeço.
       
    • Por Gorhat
      Pessoal, 
       
      Estou com uma dúvida, tem um cogido que uso para importar uma tabela para um site, porém eu queria que tivesse mais espaçamento entre as linhas, por exemplo codigo e descrição um espaço maior e assim repetir tudo de novo, só que não sei como colocar isso no código (estou começando agora por isso a falta de experiencia).
       
      Abaixo segue o cogido que utilizo. 
       
      <table>  <!-- IMPORTA A TABELA -->     <tr>              </tr>     <?php     $row = 1;     if (($handle = fopen("DOC.csv", "r")) !== FALSE) {         while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {             $num = count($data);             ?>             <tr>                 <?php                 for ($c=0; $c < $num; $c++) {                 ?>                 <td><?= $data[$c] ?></td>                 <?php                  }                 ?>                              </tr>             <?php             $row++;                              }                  fclose($handle);     }     ?>      </table>  
      Já tentei de varias formas mas ainda não obtive sucesso .
       
      Se puderem me dar uma dica de como fazer, agradeço. 
       
    • Por reinaldofreitas
      Olá Pessoal,
       
      tenho o seguinte select
       
      select a.matricula, b.periodo,  a.nota
      from
      alunos A join periodos B on (a.numeroperiodo = p.numeroperiodo)
       
      que retorna
       
      row   matricula    Periodo     Nota
      1        111222         1                 41 
      2        111222         2                 84 
      3        111222         3               129
      4        111222         4               176
       
       
      preciso transformar em :
       
       
      row       matricula           Nota1        Nota2         Nota3          Nota4
      1               111222                41              84              129             176
       
       
      andei pesquisando e acho que é com PIVOT, mas não estou conseguindo montar o select
       
      Se Alguem tiver um exemplo, ficarei muito grato....
       
    • Por Lúcio Marques
      Olá, bom dia.
      Alguém pode me dar uma força neste para esta função.
      Tenho uma tabela que mostra 50 linhas de cadastro, com isso gostaria que mostrasse 25 linhas e logo abaixo haveria um botão "abrir mais" para mostrar os restantes de linhas.
      Vi isso em algum site, e achei bem bacana.
       
      Agradeço desde já.
    • Por AnibalJR
      Boa noite pessoal, Estou precisando de uma força.
      Criei uma tela de venda e que baixa estoque de uma tabela de estoque separada, porem estou com dificuldade de retornar o estoque  de varios itens de uma vez quando eu excluo a venda?
      Para cada produto vendido eu crio uma linha na tabela de vendas, mas para deletar eu uso só uma das referencias, por isso o select duplo na mesma tabela, para retornar com o primeiro valor, as demais linhas que possuem o mesmo numero de pedido.
      Nesta regra tentei buscar a tabela de estoque e a tabela de vendas e somar o campo de venda ao campo de estoque e fazer um update no estoque, mas ele faz apenas para 1 item
      Segue o codigo que estou tentando usar para atualizar varias linhas na tabela de estoque de borrachas:
      protected function retornaitens() { $dadosVenda = "SELECT * from pdvborracha WHERE id = $_GET["var3"]; $dadostodas = "SELECT * FROM pdvborracha WHERE pedido = ".$dadosVenda["pedido"]; $linhafinal = mysql_fetch_array($dadostodas); $query = "SELECT * FROM estoquematprima WHERE produto=".$linhafinal["produto"]; ($linha = mysql_fetch_array($query)); $quantidade = $linha["quantidade"] + $linhafinal["quantidade"]; $query = "UPDATE estoquematprima SET quantidade=".$quantidade." WHERE produto=".$linhafinal["produto"];  
×

Informação importante

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