こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

WordPress独自データベースからのデータ取得

WordPressのデータベースに独自のテーブルを作りました。
(テーブル名abc、カラム2個=nemeとaddress)
ここからデータ取得をしたいです。

とりあえず下記のコードでnameとaddressのデータを取得できました。

<?php
global $wpdb;
$rows = $wpdb->get_results("SELECT * FROM $wpdb->abc");
foreach ($rows as $row) {
echo "$row->name" . "$row->address";
}
?>

次にnameとaddressをhtmlのテーブルに挿入しようとして下記のようにしましたがダメでした。

<?php
global $wpdb;
$rows = $wpdb->get_results("SELECT * FROM $wpdb->abc");
foreach ($rows as $row) {
<table><tbody><tr>
<td>echo "$row->name" .</td>
<td>"$row->address" ;</td>
</tr></tbody></table>
}
?>

うまくテーブルの中に納まるにはどうすればよいでしょうか?


ちなみに以前、WordPressではなくSQLとPHPで作ったときは下記のコードで動きました。

<?php
function connect() {
return new PDO("mysql:dbname=abc;host=xxx","sd_dbyyy","zzz",
array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`"));
}
<?php foreach ($rows as $row) { ?>
<table><tbody><tr>
<td><?php echo ($row['name']) ?></td>
<td><?php echo ($row['address']) ?></td>
</tr></tbody></table>
<?php } ?>
?>


WordPressのデータベースを使うのは初心者ですので勝手がわかりません。
何卒アドバイスのほど、よろしくお願いします。

投稿日時 - 2020-10-16 15:55:10

QNo.9811915

困ってます

質問者が選んだベストアンサー

ダメでした、というのは、PHPのエラーになったのでしょうか。
以前作られたのと同じように、
HTMLの部分とPHPの部分を分けたら大丈夫な気がします。
WordPressの環境がないので動作確認はしていませんが、
こんな感じになるかと。
<?php
global $wpdb;
$rows = $wpdb->get_results("SELECT * FROM $wpdb->abc");
foreach ($rows as $row) {?>
<table><tbody><tr>
<td><?php echo $row->name;?> .</td>
<td><?php echo $row->address;?></td>
</tr></tbody></table>
<?php }?>
とは言え、これはレコード数分のテーブルができてしまいます。
もしか、ひとつのテーブルにまとめたいのであれば、こんな感じかな。
<?php
global $wpdb;
$rows = $wpdb->get_results("SELECT * FROM $wpdb->abc");?>
<table><tbody>
<?php foreach ($rows as $row) {?>
<tr>
<td><?php echo $row->name?> .</td>
<td><?php echo $row->address?></td>
</tr>
<?php }?>
</tbody></table>

投稿日時 - 2020-10-18 11:37:06

お礼

ご指摘の通りで動きました!
ありがとうございました。

私の書いていたコードは微妙なところで間違っていました。
教えていただかなければ気が付かなかったと思います。

また、ひとつのテーブルにまとめる場合のコードまで教えて頂き感謝しております。
本当にありがとうございました。

投稿日時 - 2020-10-19 15:02:59

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問