フォーム
-
-
ニュースレターの表に接頭辞を追加しましたか?Have you added any prefix to newsletter table?
- 0
- 2013-03-14
- Vinod Dalvi
-
正確にどこにプレフィックスを追加しますか?データベース内のテーブルにはプレフィックスがありますadding prefix where exactly? the table in database have prefix
- 0
- 2013-03-14
- pixelweb
-
この$table_name=$ wpdb->prefixを使用したため、テーブル名の前."ニュースレター";テーブル名newsletterの前にwordpressプレフィックスを追加するコードで、テーブル名にプレフィックスを追加していない場合は、次のようなテーブル名のみを使用します$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
-
2つの変数 `name`と`email`は、関数内で**不明**です.それらを関数内で定義するか、他の場所で必要な場合は、それらを「グローバル」(関数の_outside_と_inside_の両方)として宣言する必要があります.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:データベースのテーブルにプレフィックスを追加しました.@VinodDalvi : i added th eprefix for table in database.
- 0
- 2013-03-14
- pixelweb
-
関数内で名前とメールアドレスを定義しましたが、何も起こりません.i defined the name and email inside function but nothing happen.
- 0
- 2013-03-14
- pixelweb
-
テーブルに追加したプレフィックスは何ですか?プレフィックス付きの完全なテーブル名を教えてください.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 回答
- 投票
-
- 2013-03-14
2つの変数
$name
と$email
は関数内で不明です.global $wpdb
をglobal $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();
または、関数の引数に変数を入れることができます:
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 );
または、機能なし:
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 ) );
-
それが私が書いたものです.;)コメントを書くタイミングと、答えを出すのに十分なタイミングについては、まだ問題があります.;)ただし、変数は関数の_outside_で `global`として宣言する必要があります.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
-
ハハ、はい、私は私の答えを投稿した後にあなたのコメントを見ました:-)コメント/答えの私のルールは、OPがコード内の複数のルールを変更する必要がある場合は常に答えます;-)私は `global`をに追加します変数 `$name`と` $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
-
ああ、わかりました.スコープは正しいようです(この場合、関数の_outside_は**グローバルスコープであり、クラスではないためです).ただし、変数をグローバル(今行うことにしたこと)として宣言する場合は、最初に宣言してから(次の行、またはセミコロンの後に)値を設定する必要があります.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
-
ユーザーが送信フォームをクリックすると、フォームのアクションはこのファイルのファイル呼び出し:regiostration-form.phpを参照します.私は今このコードを持っています: `prefix."ニュースレター"; $ wpdb->insert($table_name、array( 'name'=> $name、 'email'=> $email)); } ?> ` しかし、それは再び機能しません.何か問題がありますか?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
-
関数を宣言した後、 `insertuser()`関数を呼び出しますか?You do call the `insertuser()` function after you declare the function?
- 0
- 2013-03-14
- Mike Madern
-
@MikeMadern関数の後に「insertuser()」と書く必要がありますか?@MikeMadern do i have to write: 'insertuser()' after function?
- 0
- 2013-03-14
- pixelweb
-
関数を定義しても、それは自動的に実行されません.実行するには、関数を呼び出す必要があります.私の答えのコードを参照してください;-)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
-
コードを使用しましたが、2つのエラーが発生しました:「8行目で非オブジェクトのプロパティを取得しようとしています」と「致命的なエラー:9行目で非オブジェクトのメンバー関数insert()を呼び出します」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
-
WordPressで読み込まれたファイルではありませんか?WordPressライブラリをロードするには、スクリプトの上に `wp-load.php`ファイルを` require`します.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
-
私はこのコードを使用して正常に動作しました: `prefix."ニュースレター"; $ wpdb->insert($table_name、array( 'name'=> $name、 'email'=> $email)); ?> `すべての人、特にマイク・マダーンに感謝しますi 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
-
はい、完全な回答で回答を更新してください.そうすれば、私はそれを受け入れます.心からyes, please update the answer with complete answer then i will accept it. Sincererly
- 0
- 2013-03-14
- pixelweb
-
私はあなたのために私の答えを更新しました;)I updated my answer for you ;)
- 0
- 2013-03-15
- Mike Madern
データベースに「newsletter」という名前のテーブルを作成し、登録フォームをページに配置するためのショートコードを提供する簡単なプラグインを作成しています. フォームには「名前」と「メール」が含まれています. フォームデータ(名前+メール)をデータベースに挿入するのに問題があります. 私はこれを書いた:
しかし、idは機能しません.フォームからデータを取得してテーブルに挿入するにはどうすればよいですか?