Inserir dados no banco de dados usando o formulário
-
-
Você adicionou algumprefixo aoboletiminformativo?Have you added any prefix to newsletter table?
- 0
- 2013-03-14
- Vinod Dalvi
-
adicionandoprefixo ondeexatamente?Atabelanobanco de dadostem prefixoadding prefix where exactly? the table in database have prefix
- 0
- 2013-03-14
- pixelweb
-
Antes donome databelaporque você usoueste $table_name=$ WPDB->prefixo."Boletim de Notícias";No seu código,que adicionaprefixo do WordPress antes doboletiminformativo donome databela,porisso,se vocênão adicionounenhumprefixo aonome databela do que usar apenas onome databela comoeste $table_name="newsletter";before table name because you have used this $table_name = $wpdb->prefix . "newsletter"; in your code which adds wordpress prefix before the table name newsletter so if you have not added any prefix to table name than only use table name like this $table_name = "newsletter";
- 0
- 2013-03-14
- Vinod Dalvi
-
As duas variáveis `nome`e`e-mail` são ** desconhecido ** dentro dafunção.Vocêtem que defini-los dentro dafunção,ou seeles sãonecessáriosem outro lugar,declare-os 'global' (ambos _outside_e _inside_ afunção).The two variables `name` and `email` are **unknown** inside the function. You have to either define them inside the function, or if they are needed elsewhere, declare them `global` (both _outside_ and _inside_ the function).
- 0
- 2013-03-14
- tfrommen
-
@Vinoddalvi: Adicionei oprefixoparatabelanobanco de dados.@VinodDalvi : i added th eprefix for table in database.
- 0
- 2013-03-14
- pixelweb
-
Eu defini onomee e-mail dentro dafunção,masnada acontece.i defined the name and email inside function but nothing happen.
- 0
- 2013-03-14
- pixelweb
-
Qual é oprefixo que você adicionou àtabela?Diga-me onome damesa completo comprefixo.What is the prefix you have added to the table? tell me the full table name with prefix.
- 0
- 2013-03-15
- Vinod Dalvi
-
1 responda
- votos
-
- 2013-03-14
As duas variáveis
$name
e$email
são desconhecidos dentro dafunção. Vocêtem quetorná-losglobalmente disponíveis dentro delemudandoglobal $wpdb
emglobal $wpdb, $name, $email
:require_once('../../../wp-load.php'); /** * After t f's comment about putting global before the variable. * Not necessary (http://php.net/manual/en/language.variables.scope.php) */ global $name = $_POST['name']; global $email = $_POST['email']; function insertuser(){ global $wpdb, $name, $email; $table_name = $wpdb->prefix . "newsletter"; $wpdb->insert($table_name, array('name' => $name, 'email' => $email) ); } insertuser();
ou,vocêpode colocar as variáveis nos argumentos dafunção:
require_once('../../../wp-load.php'); $name = $_POST['name']; $email = $_POST['email'] function insertuser( $name, $email ) { global $wpdb; $table_name = $wpdb->prefix . 'newsletter'; $wpdb->insert( $table_name, array( 'name' => $name, 'email' => $email ) ); } insertuser( $name, $email );
ou,semfunção:
require_once('../../../wp-load.php'); global $wpdb; $name = $_POST['name']; $email = $_POST['email']; $table_name = $wpdb->prefix . "newsletter"; $wpdb->insert( $table_name, array( 'name' => $name, 'email' => $email ) );
The two variables
$name
and$email
are unknown inside the function. You have to make them globally available inside it by changingglobal $wpdb
intoglobal $wpdb, $name, $email
:require_once('../../../wp-load.php'); /** * After t f's comment about putting global before the variable. * Not necessary (http://php.net/manual/en/language.variables.scope.php) */ global $name = $_POST['name']; global $email = $_POST['email']; function insertuser(){ global $wpdb, $name, $email; $table_name = $wpdb->prefix . "newsletter"; $wpdb->insert($table_name, array('name' => $name, 'email' => $email) ); } insertuser();
Or, you can put the variables in the function's arguments:
require_once('../../../wp-load.php'); $name = $_POST['name']; $email = $_POST['email'] function insertuser( $name, $email ) { global $wpdb; $table_name = $wpdb->prefix . 'newsletter'; $wpdb->insert( $table_name, array( 'name' => $name, 'email' => $email ) ); } insertuser( $name, $email );
Or, without function:
require_once('../../../wp-load.php'); global $wpdb; $name = $_POST['name']; $email = $_POST['email']; $table_name = $wpdb->prefix . "newsletter"; $wpdb->insert( $table_name, array( 'name' => $name, 'email' => $email ) );
-
Isso é o queeuescrevi.Eu aindaestoutendoproblemas quandoescrever um comentárioe quando é suficientepara uma resposta.;) As variáveis aindaprecisam ser declaradas "globais" _outside_ afunção,noentanto.That's what I wrote. ;) I'm still having issues with when to write a comment and when it's enough for an answer. ;) The variables still have to be declared `global` _outside_ the function, though.
- 0
- 2013-03-14
- tfrommen
-
Haha,simeu vi o seu comentário depois depostarminha resposta :-) Minha regra de comentário/responder é,se optiver que alterarmais de uma regrano código,sempre responder ;-) Eu vou adicionar `global`para oVariáveis `$ Nome do $e` $email`Haha, yes I saw your comment after I posted my answer :-) my rule of commenting/answering is, if OP has to change more than one rule in the code, always answer ;-) I'll add `global` to the variables `$name` and `$email`
- 1
- 2013-03-14
- Mike Madern
-
Ah,tudobem,vocêpareceestar certo com oescopo (porqueneste caso,_outside_ afunção ** é ** oescopoglobal,e não uma classe).Noentanto,se você declarar as variáveisglobais (o que você decidiufazer agora),vocêprimeirotem que declarar,e então (napróxima linha,ou após umpontoe vírgula) definir um valor.Ah, okay, you seem to be right with the scope (because in this case, _outside_ the function **is** the global scope, and not a class). However, if you declare the variables global (what you decided to do now), you first have to declare, and then (in the next line, or after a semicolon) set a value.
- 0
- 2013-03-14
- tfrommen
-
Quando o usuário clicaem Enviarformulário,a ação doformulário consulte uma chamada de arquivo: Regiostration-Form.phpnesteficheiro,tenhoeste código agora: `prefixo."Boletim de Notícias"; $ WPDB-> Inserir ($ Table_name,Array ('Nome'=> $ NAME,'E-mail'=> $ E-mail)); } ? `` Masnãofuncionanovamente.algoerrado?when user click on submit form the form's action refer to an file call :regiostration-form.php in this file i have this code now: `prefix . "newsletter"; $wpdb->insert($table_name, array('name' => $name, 'email' => $email) ); } ?> ` but it does not work again. anything wrong?
- 0
- 2013-03-14
- pixelweb
-
Você chama afunção `insertuser () após declarar afunção?You do call the `insertuser()` function after you declare the function?
- 0
- 2013-03-14
- Mike Madern
-
@Mikemadern Eutenho queescrever: 'insertuser ()' após afunção?@MikeMadern do i have to write: 'insertuser()' after function?
- 0
- 2013-03-14
- pixelweb
-
Definir umafunçãonão oexecuta automaticamente.Vocêtem que chamar afunçãoparaexecutar.Veja o códigonaminha resposta ;-)defining a function doesn't automatically executes it. You have to call the function in order to execute. See the code in my answer ;-)
- 0
- 2013-03-14
- Mike Madern
-
Eu usei seu código,mas recebi doiserros: Aviso: `tentando obterpropriedade denão-objetona linha 8`e`errofatal: chamarpara umafunção demembroinserir ()em umnão-objetona linha 9`i used your code but i got two errors: Notice: `Trying to get property of non-object in line 8` and `Fatal error: Call to a member function insert() on a non-object in line 9`
- 0
- 2013-03-14
- pixelweb
-
Não é um arquivo carregadopor WordPress,certo?`exigir` o arquivo` wp-load.php`em cima do seu scriptpara carregar abiblioteca do WordPress.It isn't a file loaded by WordPress right? `require` the `wp-load.php` file on top of your script to load the WordPress library.
- 0
- 2013-03-14
- Mike Madern
-
Eu useieste códigoe funcioneibem: `prefixo."Boletim de Notícias"; $ WPDB-> Inserir ($ Table_Name,Array ('Nome'=> $ NAME,'E-mail'=> $ E-mail)); ?> `Obrigadotodos os carasespecialmente Mike Maderni used this code and worked fine: `prefix . "newsletter"; $wpdb->insert( $table_name, array( 'name' => $name, 'email' => $email ) ); ?> ` Thanks all guys specially Mike Madern
- 0
- 2013-03-14
- pixelweb
-
Sim,atualize a resposta com a resposta completa,entãoeu vou aceitá-lo.Sinceramenteyes, please update the answer with complete answer then i will accept it. Sincererly
- 0
- 2013-03-14
- pixelweb
-
Eu atualizeiminha respostapara você;)I updated my answer for you ;)
- 0
- 2013-03-15
- Mike Madern
Euestouescrevendo umplugin simples que crie umatabela com onome "newsletter"nobanco de dadose fornece um shortcodepara colocar umformulário deinscriçãonaspáginas. Oformulário contém "nome"e "e-mail". Eutenhoproblemaem inserir os dados doformulário (nome +email)nobanco de dados. Euescreviisso:
Mas o IDnãofunciona.O que devofazerpara obter dados doformulárioe inserirnatabela?