Ir para conteúdo
TeixeiraRamos

Erro em if

Recommended Posts

Por favor,

PHP 7 com MySQL 5.7

Tenho página inserir.php

<html>
	<head>
	<title>Gerenciando Registros</title>
	</head>
	<body>
	 Preencha os campos abaixo:
	  <form method="POST" action="gerencia-registro.php?acao=adicionar">
	    <table> 
			<tr>
				<td>Nome do Livro:</td>
				<td>
				 <input name="FormNomeLivro" maxlength=64>
				</td>			
			</tr>
		    <tr>
				<td>Nome do Autor:</td>
			    <td>
				 <input name="FormNomeAutor" maxlength=32>
				</td>			
			</tr>
			<tr>
				<td>Nome da Editora:</td>
				<td>
				 <input name="FormNomeEditora" maxlength=16>				
				</td>
			</tr>
			<tr>
				<td colspan=2 aling='right'>
				 <input type="reset" value="Limpar">
				 <input type="submit" value="Cadastrar">
				</td>
			</tr>
		</table> 
	  </form>
	</body>
</html>

Resultado:

Abre normal.

Clicando no botão "Cadastrar" do form inserir.php mostra erro:

Citar

Notice: Undefined variable: acao in C:\wamp\www\estudoporlivros\livromysqlguiaprogramador\gerencia-registro.php on line 14

 

A página gerencia-registro.php

<?php
//Dados para conexão com o banco de dados
$servidor = 'localhost'; 
$usuario = 'root'; 
$senha = '';
$banco = 'integracao';

//Executa a conexão com MySQL
$link = mysqli_connect($servidor, $usuario, $senha, $banco)
or die('Não foi possível conectar: '.mysqli_error());
mysqli_set_charset($link, 'utf8');

//Verifica se o arquivo foi chamado a partir de um formulário
if($acao == "adicionar")        //AQUI LINHA 14 ********************
{
//Cria a expressão SQL de inserção
$sql = "INSERT INTO livros (livro, autor, editora) VALUES (";
$sql .= "'$FormNomeLivro', ";
$sql .= "'$FormNomeAutor', ";
$sql .= "'$FormNomeEditora'";
$sql .= ")";

//Executa a expressão SQL no servidor, e armazena o resultado 
$result = mysqli_query($sql);

//Verifica o sucesso da operação
if (!$result)
{ die('Erro: '.mysqli_error());}

//Se a operação foi realizada com sucesso, informa na tela
else
{ echo 'A operação foi realizada com sucesso.';}
}	
?>
<br><a href="inserir.php">Clique aqui para inserir um novo registro</a>
<br><a href="lista.php">Clique aqui para visualizar os registros.</a>

Conforme indiquei a linha 14 do erro é essa:

Citar

 13  //Verifica se o arquivo foi chamado a partir de um formulário
 14  if($acao == "adicionar")

 

Página lista.php

<?php
//Dados para a conexao com o banco de dados
$servidor = 'localhost'; 
$usuario = 'root'; 
$senha = '';
$banco = 'integracao';


//Executa a conexão com MySQL
$link = mysqli_connect($servidor, $usuario, $senha, $banco)
or die('Não foi possível conectar: '.mysqli_error());
mysqli_set_charset($link, 'utf8');

//Cria s expressão de consulta aos registros
$sql = mysqli_query($link, "SELECT * FROM livros") or dio ("Erro");

?>
<html>
<?php
echo"<table border='1'>
<thead>
		<tr>
			<td>Cód</td>
			<td>Livro</td>
			<td>Autor</td>
			<td>Editora</td>
		</tr>
</thead>
<tbody>";

 //Exibr os resultados de novidades e notícias
while($tbl = mysqli_fetch_array($sql))
{
  echo"<tr>
      <td>" . $tbl['id']      . "</td>
      <td>" . $tbl['livro']   . "</td>
      <td>" . $tbl['autor']   . "</td>
      <td>" . $tbl['editora'] . "</td>
      </tr>";
}
  echo"</tbody>
  </table>";
 ?> 
 <br><a href="inserir.php">Clique aqui para inserir um novo registro.</a>
 </html>

Abre normalmente.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado Gleyson,

Vou ter que estudar mais.

Não consegui ainda. Todo mundo um dia iniciou e eu estou iniciando.

Guardei bem as suas sugestões.

Todas essas páginas são do livro MySQL Guia do Programador - André Milani, mas a versão do PHP é inferir a 7 que tem na minha máquina.

Mesmo com o "Guia de Atualização MySQL Para MySQLi" do Beraldo, ainda tenho dúvida.

Segundo ele é assim mesmo no início.

Tenho que estudar, mais o PHP com HTML. Meu problema é quando trabalho com os dois PHP e MySQLi.

Gleyson

Muito obrigado, pela atenção.

Desejo Saúde e  Sucesso para você.

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 01/05/2018 at 02:54, JulinhoooO disse:

Nunca pesquisei sobre esse assunto em específico, aprendi tudo praticando e vendo vídeos no YouTube. A respeito do critério para abrir e fechar, é o seguinte, você só vai fechar ou quando for concatenar alguma função ou variável dentro do comando, ou somente no fim dele.


//Desse modo geraria um erro de sintaxe, já que o PHP não iria interpetrar as duas váriaveis como dados de uma array
echo "<tr>	
  <td align='center'>$dados['id']</td>
  <td align='left'>$dados['nome']</td>
<tr>";
  
//Já desse modo não, que como as váriaveis estão fora da qualquer aspas o PHP identifica que se trata de um dado de uma array
echo"<tr>	
  <td align='center'>" .$dados['id']. "</td>
  <td align='left'>" .$dados['nome']. "</td>
<tr>";

 

 

Em 04/05/2018 at 00:00, Omar~ disse:

"Oxi..."!!! Quem deve desculpa sou eu por entender errado o que se referiu.

 

Quer dizer então que você tem banco tabelas e tal, mas tudo vazio, porque não tenta acessar o PMA(PhpMyAdmim) e ir inserindo registros aleatórios, para que possa fazer consultas dos mesmos? Dê uma pesquisada no programa NavCat ele é ótimo, muito simples e prático para editar tabelas inserir/apagar registro criar as mesmo etc... Se quiser manda uma MP que lhe passo a versão que utilizo. 

 

Mas se o livro ensina alguma coisa, pouco ou muito tanto faz porque abandonar? Todo conhecimento ainda não é o bastante, continue nele para aprender mais e mais, pois saiba que se alguém aqui disser que sabe de tudo e é capaz de tudo de cabeça, está mentindo.

 

Eu mesmo quando comecei a desenvolver aplicações para web, não li nenhum livro. 80% do que sei aprendi praticando e fazendo, ERRANDO e ERRANDO novamente e tentando até acertar. O resto foi no estudo porque não tem jeito mesmo, agente tem estudar para evoluir.

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela suas palavras.

Que bom que você entendeu, mas mesmo assim me arrependi de ter feito aquele pedido.

Tem momentos que certas colocações parecem humilhação, mas mesmo que sejam as vezes temos que suportar para não criar problemas. Se quisermos continuar aprendendo com quem sabe. 

Certo dia, um membro/moderador não lembro, informou "você não deve usar Dw para criar suas páginas (com outras palavras). Recebi aquela orientação, a principio, como um "puxão de orelha". Eu não procurei o Dw, alguém com me orientou para usar que era bom...Como eu poderia formar um juízo de uma pessoa que estava me orientando. Até que ponto ela era pior que outras pessoas do fórum? Depois de algum tempo comprei um livro que o autor mandava "abre o bloco de notas e digite todo o código". Foi ai que vi que muita "tags" e o próprio código poderia ficar mais limpo e, também como eu estava precisando aprender a digitar um código sem aquela ajuda do Dw. (uso ainda o Dw, mas bem menos). Lembrei do "puxão de orelha".

O próprio Beraldo e Professor Celso (curso Celke) também já me orientaram para ir devagar no PHP. Leio e executo todas as valiosas dicas que o Beraldo manda. Estou fazendo o curso do Celso Curso de MySQLi (100% concluído), Curso de PHP, MySQLi e Bootstrap4 (24% concluído). Só que vire e mexe estou tentando fazer algo fora do curso. Como agora que abrir o Livro MySQL - Guia do Programador, que usa versão anterior a PHP 7 e tentei fazer os exercícios. Achei que poderia porque tenho o Guia de Atualização MySQL Para MySQLi, mas já observei que não é só isso. Resolvo a questão do MySQL para MySQLi, mas não é bem assim existem outras barreiras que tenho que vencer quando junto PHP com HTML.

Mas vou a luta.

Abraços. 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por mr22robot
      Estou com uma dúvida. É possível determinar um select a partir de uma escolha?
      Ex. 
      SELECT CASE WHEN a < b THEN select * from tabela1 WHEN d < e THEN select * form tabela2 END FROM tabela; Algo parecido. Se uma condição for atendida select1 , se outra condição for atendida: select2.
      O que acontece: estou com um relatorio que preciso criar no winthor e não consigo melhorar isso. Tenho de fazer três relatorios como solução. Se eu consigo implantar isso, eu faria somente um relatorio. 
      Tipo se marcar um campo, sai um relatorio. Se marcar outro, saí outro relatorio.
    • Por vagner.analista
      Senhores boa tarde, alguém pode me ajudar?
       
      Tenho a seguinte situação, um campo data em duas tabelas, onde caso o contrato tenha aditivo o campo data da tabela TITMCNTADITIVO,  fica preenchido. caso o contrato não tem aditivo ela fica com o valor null. Então caso o valor dessa tabela aditivo estiver null, eu gostaria de apresentar o campo data da tabela TITMCNT do contrato que tem a data fim do contrato, com o select abaixo eu consigo saber se tem aditivo ou não:
      SELECT TOP 1   (DATA + 90) AS DATAFIM              FROM TITMCNTADITIVO (NOLOCK)             WHERE 1=1             AND CODCOLIGADA = 1             AND IDCNT = 72 Neste caso este contrato não tem aditivo, então, gostaria que ele executasse outro SELECT:
      SELECT (DATAFIM + 90) AS DATA_FIM  FROM TITMCNT             WHERE IDCNT = '72'  
       
      O mais lógico que tentei foi assim, mas não dá certo:

      SELE
      CT TOP 1  (DATA + 90) AS DATAFIM, CASE (DATA) WHEN IS NULL THEN ( SELECT (DATAFIM + 90) AS DATA_FIM  FROM TITMCNT                     WHERE IDCNT = '72' ) END AS DATAFIM FROM TITMCNTADITIVO (NOLOCK) WHERE 1=1 AND CODCOLIGADA = 1 AND IDCNT = 72  
    • Por nicolasbessa
      Boa tarde!
       
      Como aplicar a regra abaixo em um select?

      Regra Join
      Quando o campo substr(x, 1,1)  ='1'
      montar a chave de pesquisa:
      y = '8' AND y1 =  'L'||lpad( x1, 2)) 

      Quando o campo substrt(x, 1,1) for igual ='A'
      montar a chave de pesquisa:
      y = '8' AND y1 =  'M'||lpad( x1, 2)) 
       
      obrigado!
    • Por caio_fgf
      Estou desenvolvendo um site e necessito que o menu receba a classe ativo quando o botão for clicado, e se este for clicado de novo ou qualquer parte do documento for clicada, o menu perca a classe.
      Ao clicar em outra parte da página, o menu desaparece, porém, ao clicar novamente no botão do menu, não consigo a aplicação desejada
      $(document).ready(function () { var menu = $("nav") $(".bt_menu").click(function (e) { if (menu.hasClass("ativo")) menu.removeClass("ativo"); else menu.addClass("ativo"); e.stopPropagation(); }); $(document).click(function (e) { $('nav').removeClass("ativo"); }); }); Grato pela atenção
    • Por BryanSamuel
      existe alguma função que formate uma data por exemplo 26/09/2018, em um número inteiro? mais ou menos igual o excel, que começa a contar os dias a partir do dia 01/01/1900, se caso não exista uma função como eu faço isso? agradeço a ajuda desde já.
×

Informação importante

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