動画URL→ https://youtu.be/LCe5IN21s_g
// 任意のIDからクライアント情報を取得 if(isset( $_POST['client_id'] )){ $query_id = $_POST['client_id']; } // IDが指定されない場合は最後のクライアントIDを指定 else{ // 処理 } $query = $wpdb->prepare("SELECT * FROM {$table_name} ORDER BY `id` = $query_id"); $post_row = $wpdb->get_results($query); foreach ($post_row as $row){ $client_id = esc_html($row->id); $time = esc_html($row->time); $client_name = esc_html($row->name); $text = esc_html($row->text); } $top_client = <<<END <h3>■ 顧客の詳細(ID: $client_id )</h3> ##################################################<br /> ##################################################<br /> ID: $client_id<br /> TIME: $time<br /> NAME: $client_name<br /> MEMO: $text<br /> ##################################################<br /> ##################################################<br /> END;
このプログラムの流れ
$query_id = $_POST['client_id'];
フォームからのデーターはスーパーグローバル変数の$_POSTにて捕捉される。
ORDER BY `id` = $query_id
捕捉した顧客データーの’id’によって顧客テーブルから特定顧客情報取り出すSQL文。
$query = $wpdb->prepare("SELECT * FROM {$table_name} ORDER BY `id` = $query_id");
WordPressの場合、$wpdbというクラスに->prepareでSQLインジェクション対策を付しながらSQL文を書き、$queryという変数に入れています。
あとは、これを
$post_row = $wpdb->get_results($query);
して、$post_rowに結果を捕捉。
foreach($post_row as $row){
// 各要素を変数に入れる
}
$post_rowをforeachで食って、それぞれの要素を展開していきます。
($post_row as $row) は、$post_row(連想配列)にある要素を一つずつ$rowに受けて、
($row->id)の様にフォーム送信時にneme属性で指定した名前で取り出しています。
esc_htmlはフォームデーターのHTMLを無効化してます。