質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

2185閲覧

データベースをHTMLテーブルとして表示させたい

SND

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/08/16 04:11

前提・実現したいこと

mysqlのデータをワードプレスでHTMLテーブルとして一覧表示したい。
1カラム目が顧客名、2カラム~6カラムは数値(スコア)とaタグが入力されています。(例:<a href="#">50.4</a>)
スコアが入力されている各カラムはソート機能を実装し、顧客名をHTML上で検索出来るようにしたい。

発生している問題・エラーメッセージ

データベースの1レコード目をthで出力し、それ以降のレコード(300レコードほど)をtdで表示させる方法がわからず質問させていただきました。 現在下記コードはプラグイン「Insert PHP Code Snippet」を使いショートコードを投稿ページへ貼り付けています。

該当のソースコード

<?php global $wpdb; $rows = $wpdb->get_results("SELECT * FROM $wpdb->score"); $result = "<table><tbody>"; foreach($rows as $row){ $result .= "<tr><th>" . $row->name ."</th><th>" . $row->point1 ."</th><th>" . $row->point2 ."</th><th>" . $row->point3 ."</th><th>" . $row->point4 ."</th><th>" . $row->point5 ."</th></tr>"; } $result .= "</tbody></table>"; print $result; ?>

補足情報

データベース、PHPの知識がほぼ全くないため上記ソースコードはコピペしたものを手探りでいじり、ようやくテーブル出力までたどり着いたという現状です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

やり方はいくつもありますが、
PHPが7.3未満であれば以下の様にするのが分かりやすいかも。
見慣れない関数は最初に
PHPマニュアル
で検索して、サンプルを読むようにするのが良いです。

PHP

1 2<?php 3global $wpdb; 4 5$rows = $wpdb->get_results("SELECT * FROM $wpdb->score"); 6 7//最初の要素と最後の要素を配列から切り出す 8$first_row = array_shift($rows); 9 10$result = "<table><tbody>"; 11 12//ここに$first_row(最初の行)を使ってthを記述してください 13 14 15//2行目以降は元のコードのthをtdに変更してください 16foreach($rows as $row){ 17 $result .= "<tr><th>" . $row->name ."</th><th>" . $row->point1 ."</th><th>" . $row->point2 ."</th><th>" . $row->point3 ."</th><th>" . $row->point4 ."</th><th>" . $row->point5 ."</th></tr>"; 18} 19$result .= "</tbody></table>"; 20 21print $result; 22 23

PHP7.3以上なら
【PHP】foreachで配列の最初と最後の処理を制御する
が参考になると思います。

また

データベース、PHPの知識がほぼ全くないため上記ソースコードはコピペしたものを手探りでいじり、ようやくテーブル出力までたどり着いたという現状です。

という事であれば、まずは書籍でもweb教材でも良いのでPHPの基本を学習されることを強くお勧めします。
もし、回答や参考リンクのコードが読めない状態だと、質問掲示板で質問と回答も成立しません(そのまま動くコードが必要であれば、仕事として発注するしかないです)し、調べ方やデバッグ方法を学習しない状態での開発は非常に効率が悪いです。

投稿2021/08/16 04:39

tanat

総合スコア18727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

WordPressに詳しいわけではないですが、get_results()が返すのはレコード毎に連番の配列っぽいので、0番目がth、1番目以降がtdって具合にすれば良いのでは。

php

1foreach($rows as $index=>$row){ 2 if($index===0){ 3 4 }else{ 5 6 } 7} 8

カウンタ設けても良いですけど。

php

1$i=0; 2foreach($rows as $row){ 3 if($i===0){ 4 5 }else{ 6 7 } 8 $i++; 9} 10

投稿2021/08/16 04:26

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問