前提・実現したいこと
phpでmySQLのwpdbを使ってデータベースの情報を取得したいのですが、固定ページにある国名選択のチェックボックス(html)の情報をうまく受け渡しできません。アドバイスをお願いします。Wordpressの固定ページで作成しており、データベースはphpMyAdminをつかってアップロードしています。
以下のコードでは2015年のある国の件数をカウントしています。
発生している問題・エラーメッセージ
選択した国名($testCountry)をうまくSQL文に埋め込めない
エラーメッセージ
該当のソースコード
html
1function clickBtn2() { 2 let countrystr = ""; 3 const f_country = document.getElementById("form_country"); 4 const country = f_country.country; 5 for (let i = 0; i < country.length; i++) { 6 if (country[i].checked) {//(color2[i].checked === true)と同じ 7 countrystr = country[i].value; 8 break; 9 } 10 } 11 document.getElementById("span_country").textContent = countrystr; 12 13
php
1 // $testCountryにcountrystrの値代入 2 <?php $testCountry = "countrystr"; ?> 3 document.getElementById("span_testCountry").textContent = <?php echo $testCountry; ?>; 4 5 <?php 6 global $wpdb; 7 $query2015 = "SELECT COUNT(*) FROM $wpdb->stats_2015 WHERE Country = 'Japan'"; // OK 8 9 $query2015 = "SELECT COUNT(*) FROM $wpdb->stats_2015 WHERE Country = "; 10 $query2015 .= "'Japan'"; // OK 11 12 $query2015 = "SELECT COUNT(*) FROM $wpdb->stats_2015 WHERE Country = "; 13 $query2015 .= "'$testCountry'"; // 件数が0になってしまう 14 15 $item_count2015 = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->stats_2015 WHERE Country = %s","'$testCountry'")); // NG 16 $item_count2015 = $wpdb->get_var($wpdb->prepare($query2015)); // $query2015の作り方によっては動作しない 17 $item_count2015 = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->stats_2015 WHERE Country = 'Japan'"); // OK 18 ?> 19
試したこと
引用符(", ')の使い方等、試しましたがうまくいきませんでした。宜しくお願いします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/07 09:49