Insérer des données dans la base de données en utilisant le formulaire
-
-
Avez-vous ajouté unpréfixe autableau de lanewsletter?Have you added any prefix to newsletter table?
- 0
- 2013-03-14
- Vinod Dalvi
-
ajouter unpréfixe oùexactement?latable de labase de données a unpréfixeadding prefix where exactly? the table in database have prefix
- 0
- 2013-03-14
- pixelweb
-
avant lenom de latable car vous avez utilisé cepréfixe $table_name=$ wpdb->."bulletin";dans votre code qui ajoute lepréfixe wordpress avant lanewsletter dunom de latable,donc si vousn'avez ajouté aucunpréfixe aunom de latable,n'utilisez que lenom de latable comme ceci $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
-
Les deux variables «name»et «email» sont **inconnues ** dans lafonction.Vous devez soit les définir à l'intérieur de lafonction,soit sielles sontnécessaires ailleurs,les déclarer `globales '(à lafois à l'extérieuret à l'intérieur de lafonction).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:j'ai ajouté lepréfixe de latable dans labase de données.@VinodDalvi : i added th eprefix for table in database.
- 0
- 2013-03-14
- pixelweb
-
J'ai défini lenomet l'email à l'intérieur de lafonctionmais rienne sepasse.i defined the name and email inside function but nothing happen.
- 0
- 2013-03-14
- pixelweb
-
Quelest lepréfixe que vous avez ajouté autableau?dites-moi lenom complet de latable avec lepréfixe.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 réponses
- votes
-
- 2013-03-14
Les deux variables
$name
et$email
sontinconnues dans lafonction. Vous devez les rendreglobalement disponibles à l'intérieuren changeantglobal $wpdb
englobal $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,vouspouvezmettre les variables dans les arguments de lafonction:
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,sansfonction:
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 ) );
-
C'est ce quej'ai écrit.;) J'aitoujours desproblèmespour savoir quand écrire un commentaireet quand c'est suffisantpour une réponse.;) Les variables doiventencore être déclarées `global` _en dehors_ de lafonction,cependant.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,ouij'ai vu votre commentaire après avoirpostéma réponse :-)ma règle de commentaire/réponseest,si OP doit changerplus d'une règle dans le code,répondeztoujours ;-) J'ajouterai `global` auvariables `$name`et` $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,d'accord,vous semblez avoir raison avec laportée (car dans ce cas,_outside_ lafonction **est ** laportéeglobale,et non une classe).Cependant,si vous déclarez les variablesglobales (ce que vous avez décidé defairemaintenant),vous devez d'abord déclarer,puis (dans la ligne suivante,ou après unpoint-virgule) définir une valeur.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
-
lorsque l'utilisateur clique sur soumettre leformulaire,l'action duformulairefait référence à un appel defichier: regiostration-form.php dans cefichier,j'ai ce codemaintenant: `préfixe."bulletin"; $ wpdb->insert ($nom_table,array ('nom'=> $nom,'email'=> $email)); } ?> ` mais celane fonctionneplus.quelque chosene vapas?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
-
Vous appelez lafonction `insertuser ()` après avoir déclaré lafonction?You do call the `insertuser()` function after you declare the function?
- 0
- 2013-03-14
- Mike Madern
-
@MikeMadern dois-je écrire: 'insertuser ()' après lafonction?@MikeMadern do i have to write: 'insertuser()' after function?
- 0
- 2013-03-14
- pixelweb
-
la définition d'unefonctionne l'exécutepas automatiquement.Vous devez appeler lafonctionpour l'exécuter.Voir le code dansma réponse ;-)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
-
J'ai utilisé votre codemaisj'aieu deuxerreurs: Remarque: `Essayer d'obtenir lapropriété d'unnon-objet à la ligne 8`et` Erreurfatale: Appel à unefonctionmembreinsert () sur unnon-objet à la ligne 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
-
Cen'estpas unfichier chargépar WordPress,non?`require` lefichier` wp-load.php` au-dessus de votre scriptpour charger labibliothèque 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
-
j'ai utilisé ce codeet j'aibien fonctionné: `préfixe."bulletin"; $ wpdb->insert ($nom_table,array ('nom'=> $nom,'email'=> $email)); ?> `Merci àtous lesgars spécialement 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
-
oui,veuillezmettre àjour la réponse avec une réponse complète,puisje l'accepterai.Cordialementyes, please update the answer with complete answer then i will accept it. Sincererly
- 0
- 2013-03-14
- pixelweb
-
J'aimis àjourma réponsepour vous;)I updated my answer for you ;)
- 0
- 2013-03-15
- Mike Madern
J'écris un simpleplugin qui crée unetable avec lenom "newsletter" dans labase de donnéeset fournit un shortcodepourmettre unformulaire d'inscription dans lespages. leformulaire contient "nom"et "email". J'ai unproblème avec l'insertion des données duformulaire (nom +email) dans labase de données. j'ai écrit ceci:
maisidne fonctionnepas.que dois-jefairepour obtenir des données duformulaireet lesinsérer dans untableau?