これは私のコードです
<?php
global $wpdb;
$rows = $wpdb->get_results("SELECT `submit_time` AS 'Submitted', max( if( `field_name` = 'Salutation', `field_value` , NULL ) ) AS 'Salutation', max( if( `field_name` = 'First Name', `field_value` , NULL ) ) AS 'First Name', max( if( `field_name` = 'Last Name', `field_value` , NULL ) ) AS 'Last Name', max( if( `field_name` = 'Title', `field_value` , NULL ) ) AS 'Title'
FROM `wp_cf7dbplugin_submits`
WHERE `form_name` = 'Sign Up'
GROUP BY `submit_time`
ORDER BY `submit_time` DESC
LIMIT 0 , 100
");
foreach($rows as $a){
echo $a->field_value;//field value is col name
}
$wpdb->print_error();
?>
ここで私は何を間違っていますか?
さまざまな関数と格闘した後、私は$wpdb->get_row()
と$wpdb->get_var()
を考え出します。
最初の引数は連想配列または数値配列に行を返すもので、$wpdb->get_row('query',ARRAY_A or ARRAY_N or OBJEECT)
の2番目の引数と2番目の引数を使って特定のテーブルから変数を1つだけ返します。
例えば、
<?php
$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );
echo "<p>User count is {$user_count}</p>";
?>
参照 リンク
基本的にbtwn $wpdb->get_results
と$wpdb->get_var
の違いは何ですか、私はあなたのクエリがwhere
節を削除した後にうまく働いているのを見ます。
$wpdb->get_results
が配列を返すことを知っているだけでいいのです。