Ir ao conteúdo
  • Cadastre-se

PHP Fazendo CRUD em um função PHP


Posts recomendados

Estou tentando colocar cada funcionalidade de um crud dentro de uma função,pra assim quando clicar em alguma delas, executar a função, mas ainda não estou conseguindo um resultado.

 

Estou levando em consideração ao que aprendi em C só que ainda não esta funcionando!!

 

Aqui está o formulário simples para teste com um campo só.

<form method="POST" action="">
	<fieldset>
		<legend>Cadastro</legend>
		Nome:<input type="text" name="nome"><br>
			 <input type="submit" value="Enviar">
	</fieldset>
</form>
<?php 
	include "funcao.php";
	@$nome=inserir($_GET['nome']);
?>

 

A função fiz em um arquivo separado, que nele está incluído o formulario.php e a conexao.php, tenho a ideia de o parâmetro da função receber os dados da variável "nome", que está no GET do formulário.php e assim fazer o "INSERT INTO", tabela "crud".

<?php 
require "conexao.php";
require "formulario.php";

function inserir($nome){
	$sql="INSERT INTO crud (nome) VALUES ('$nome')";
	$rs=mysqli_query($link,$sql);
	echo !empty($rs)? "<script>alert('$nome, Inserido com sucesso');</script>" : "Falha";
}
?>

 

Link para o comentário
Compartilhar em outros sites

Olá!

1 hora atrás, Medivh disse:

<?php include "funcao.php"; @$nome=inserir($_GET['nome']); ?>

O trecho acima é executado assim q a página é carregada.
A variável $_GET, só pega variáveis da url
A variável $_POST é que pegaria os dados 'post'ados do formulário.

 

Uma boa prática, é separar a lógica da apresentação (todo o php deve ser executado antes de qualquer coisa ser entregue para o browser). O php, é executado no servidor. E apenas text é entregado para o browser(que interpreta html, css, js).

 

Para executar sua função, somente se algo já foi postado, o sr. pode tentar assim:
 

<?php
	// se foi postada uma variável chamada 'nome'
	if(isset($_POST['nome'])){
      // inclua o arquivo funcao.php
	  include "funcao.php";
      
      // execute a função
	  inserir($_POST['nome']);
    }
?>

<form method="post">
	<fieldset>
		<legend>Cadastro</legend>
		Nome:<input type="text" name="nome"><br>
			 <input type="submit" value="Enviar">
	</fieldset>
</form>

 

Link para o comentário
Compartilhar em outros sites

@washalbano

Fiz dessa forma que você me explicou, mas agora está dando o seguinte erro:

 

Fatal error: Cannot redeclare inserir() (previously declared in C:\...\crudv2\funcao.php:9) in C:\...\crudv2\funcao.php on line 13

 

Como poderia corrigir esse erro?

 

<?php 
	if(isset($_POST['nome'])){
		include "funcao.php";
		inserir($_POST['nome']);
	}
?>
<form method="POST">
	<fieldset>
		<legend>Cadastro</legend>
		Nome:<input type="text" name="nome"><br>
			 <input type="submit" value="Enviar">
	</fieldset>
</form>

 

<?php 
	ini_set('display_errors',1);
	ini_set('display_startup_erros',1);
	error_reporting(E_ALL);

	include "conexao.php";
	include "formulario.php";

	function inserir($nomes){
		$sql="INSERT INTO crud (nome) VALUES ('$nome')";
		$rs=mysqli_query($link,$sql);
		echo !empty($rs)? "<script>alert('$nome, Inserido com sucesso');</script>" : "Falha";
	}
?>

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...