Inserte datos en la base de datos usando el formulario
-
-
¿Ha agregado algúnprefijo a latabla delboletín?Have you added any prefix to newsletter table?
- 0
- 2013-03-14
- Vinod Dalvi
-
agregandoprefijo dondeexactamente?latablaen labase de datostiene prefijoadding prefix where exactly? the table in database have prefix
- 0
- 2013-03-14
- pixelweb
-
antes delnombre de latablaporque ha utilizadoesteprefijo $table_name=$ wpdb->."Boletininformativo";en su código que agregaelprefijo de wordpress antes delnombre de latabla delboletín denoticias,por lo que sino ha agregadoningúnprefijo alnombre de latabla,utilice únicamenteelnombre de latabla 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
-
Las dos variables "nombre" y "correoelectrónico" son ** desconocidas ** dentro de lafunción.Tienes que definirlos dentro de lafunción,o si senecesitanen otro lugar,declararlos `globales` (tanto _fuera_ como _dentro_ de lafunción).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: agreguéelprefijopara latablaen labase de datos.@VinodDalvi : i added th eprefix for table in database.
- 0
- 2013-03-14
- pixelweb
-
Definíelnombre yel correoelectrónico dentro de lafunciónperonopasónada.i defined the name and email inside function but nothing happen.
- 0
- 2013-03-14
- pixelweb
-
¿Cuáleselprefijo que ha agregado a latabla?dimeelnombre completo de latabla conprefijo.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 respuesta
- votos
-
- 2013-03-14
Las dos variables
$name
y$email
son desconocidas dentro de lafunción. Debe hacer queestén disponiblesglobalmente dentro de él cambiandoglobal $wpdb
porglobal $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();
Opuedeponer las variablesen los argumentos de lafunción:
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 );
O,sinfunción:
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 ) );
-
Esoes lo queescribí.;) Todavíatengoproblemas con cuándoescribir un comentario y cuándoes suficientepara una respuesta.;) Sinembargo,las variablestodavíatienen que ser declaradas `globales` _fuera_ de lafunción.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
-
Jaja,sí,vi su comentario después depublicarmi respuesta :-)mi reglapara comentar/responderes,si OPtiene que cambiarmás de una reglaen el código,siempre responda ;-) Agregaré `global` alvariables `$nombre` y` $ correoelectrónico`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,estábien,parece quetiene razón conel alcance (porqueen este caso,_fuera_ de lafunción **es **el alcanceglobal,yno una clase).Sinembargo,si declara las variablesglobales (lo que decidió hacer ahora),primero debe declarar y luego (en la siguiente línea o después de unpunto y coma)establecer un 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
-
cuandoel usuario hace clicen enviarformulario,la acción delformulario se refiere a una llamada de archivo: regiostration-form.phpen este archivo,tengoeste código ahora: `prefijo."Boletininformativo"; $ wpdb->insert ($nombre_tabla,matriz ('nombre'=> $nombre,'correoelectrónico'=> $ correoelectrónico)); } ?> ` perono vuelve afuncionar.¿nadamalo?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
-
¿Llamas a lafunción `insertuser ()` después de declarar lafunción?You do call the `insertuser()` function after you declare the function?
- 0
- 2013-03-14
- Mike Madern
-
@MikeMadern,¿tengo queescribir: 'insertuser ()' después de lafunción?@MikeMadern do i have to write: 'insertuser()' after function?
- 0
- 2013-03-14
- pixelweb
-
definir unafunciónno laejecuta automáticamente.Tienes que llamar a lafunciónparaejecutar.Veael códigoen mi respuesta ;-)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
-
Usé su códigopero obtuve doserrores: Aviso: `Intentando obtener lapropiedad de unno objetoen la línea 8` y` Errorfatal: llamada a unafunciónmiembroinsert ()en unno objetoen la línea 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
-
Noes un archivo cargadopor WordPress,¿verdad?`require`el archivo` wp-load.php`en laparte superior detu scriptpara cargar labiblioteca de 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
-
Uséeste código yfuncionóbien: `prefijo."Boletininformativo"; $ wpdb->insert ($nombre_tabla,matriz ('nombre'=> $nombre,'correoelectrónico'=> $ correoelectrónico)); ?> `Gracias atodos,especialmente a 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
-
sí,actualice la respuesta con la respuesta completa y luego la aceptaré.Sinceramenteyes, please update the answer with complete answer then i will accept it. Sincererly
- 0
- 2013-03-14
- pixelweb
-
Actualicémi respuestaporti;)I updated my answer for you ;)
- 0
- 2013-03-15
- Mike Madern
Estoyescribiendo un complemento simple que crea unatabla conelnombre "boletín"en labase de datos yproporciona un código cortoparaponer unformulario de registroen laspáginas. elformulario contiene "nombre" y "correoelectrónico". Tengo unproblema alinsertar los datos delformulario (nombre + correoelectrónico)en labase de datos. escribíesto:
pero laidentificaciónnofunciona.¿Qué debo hacerpara obtener datos delformularioe insertarlosen latabla?