web-dev-qa-db-ja.com

データベースクエリはWordpressの外部でうまく機能する

これは私のコードです

<?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();
?>

ここで私は何を間違っていますか?

1
Chaudhry Waqas

さまざまな関数と格闘した後、私は$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>";
?>

参照 リンク

0
Chaudhry Waqas

基本的にbtwn $wpdb->get_results$wpdb->get_varの違いは何ですか、私はあなたのクエリがwhere節を削除した後にうまく働いているのを見ます。

$wpdb->get_resultsが配列を返すことを知っているだけでいいのです。

0
Hari Om Gupta