🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL

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

PHP

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

Q&A

解決済

2回答

1282閲覧

phpで表組みにデータを表示させたい

bunbun007

総合スコア11

MySQL

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

PHP

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

0グッド

0クリップ

投稿2019/10/03 09:14

編集2019/10/03 09:23

前提・実現したいこと

phpとmysqlの組み合わせです。
やりたいことは表組みにsqlのデータを表示させたい。
配列変数を使ってやろうとしているのですがうまくいきません。

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

php自体が動かずエラーも表示されません

該当のソースコード

php

1<?php 2 3 $result = mysqli_query("SELECT * FROM TRKR WHERE id='{$_SESSION["id"]}' "); 4 $result = $mysqli->query($query); 5 $mysqli->close(); 6 7 while($row = $result->fetch_array(MYSQLI_ASSOC)){ 8 $data[] = $row; 9 } 10 11 $dat = array(); 12 foreach($data as $value){ 13 for($i=0; $i< count($data);$i++;){ 14 for($j=0; $j< count($data);$j++;){ 15 $dat[$i][$j] = $value; 16 } 17 } 18 19 ?> 20 21 22<table width="98%" border="1"> 23 <tr> 24 <td>&nbsp;</td> 25 <td bgcolor="#FFFFCC">1</td> 26 <td bgcolor="#FFFFCC">2</td> 27 <td bgcolor="#FFFFCC">3</td> 28 <td bgcolor="#FFFFCC">4</td> 29 <td bgcolor="#FFFFCC">5</td> 30 </tr> 31 <tr> 32 <td bgcolor="#FFFFCC">区分</td> 33 <td><?php echo $dat[0][0];?></td> 34 <td><?php echo $dat[1][0];?></td> 35 <td><?php echo $dat[2][0];?></td> 36 <td><?php echo $dat[3][0];?></td> 37 <td><?php echo $dat[4][0];?></td> 38 </tr> 39 <tr> 40 <td bgcolor="#FFFFCC"></td> 41 <td><?php echo $dat[0][1];?></td> 42 <td><?php echo $dat[1][1];?></td> 43 <td><?php echo $dat[2][1];?></td> 44 <td><?php echo $dat[3][1];?></td> 45 <td><?php echo $dat[4][1];?></td> 46 </tr> 47 <tr> 48 <td bgcolor="#FFFFCC">期間</td> 49 <td><?php echo $dat[0][2];?></td> 50 <td><?php echo $dat[1][2];?></td> 51 <td><?php echo $dat[2][2];?></td> 52 <td><?php echo $dat[3][2];?></td> 53 <td><?php echo $dat[4][2];?></td> 54 </tr> 55 <tr> 56 <td bgcolor="#FFFFCC">条件</td> 57 <td><?php echo $dat[0][3];?></td> 58 <td><?php echo $dat[1][3];?></td> 59 <td><?php echo $dat[2][3];?></td> 60 <td><?php echo $dat[3][3];?></td> 61 <td><?php echo $dat[4][3];?></td> 62 </tr> 63</table> 64 65?>

試したこと

いといろやったのですがわかりませんでした

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

yoorwm

2019/10/03 09:19

> php自体が動かずエラーも表示されません まず、php自体のセットアップはされていますか?
退会済みユーザー

退会済みユーザー

2019/10/03 09:22

phpの動作環境はどうなっていますか? パソコン上、それともレンタルサーバー? WindowsならXAMPP、MacならMAMPを入れれば割と容易に立ち上げられるけど。 いろいろとやったことも、丁寧に書き出してみてね、やったことを書けないってことはやってないと思われても仕方ないよ。
bunbun007

2019/10/03 09:26

環境はレンタルサーバーです。 仰るとおりです。これ以上、私の能力ではいじれませんでした。
bunbun007

2019/10/03 09:27

簡単案phpはきちんと動きます
bunbun007

2019/10/03 09:28

誤字です。失礼しました。書き直します 簡単なphpはきちんと動きます
guest

回答2

0

ベストアンサー

自分のパソコン上などでテストもせずレンタルサーバーにて実行するのは、
もしも無限ループなど作って過大な負荷をかけて他の利用者に迷惑を掛ける事にもなるため、
かならず手元のパソコンでテスト環境を用意し一定の動作を確認した上で、
レンタルサーバーに置くようにします。

WindowsパソコンであればXAMPP
MacならMAMPというパッケージソフトをインストールすることで、
webサーバーソフト、php、データベースのmysqlなど
web開発に欠かせないものが一揃い入ります。

データベースmysqlを利用するのにmysqliドライバーを使おうとしているようですが、
mysqli_connectを使って
データベースに接続する手順が見当たりません。
mysqliを使ったデータベース接続からクエリー実行してデータベース接続終了までの一連の流れを
[PHP] mysqli使い方まとめ(MySQL接続~SELECT実行まで) - Qiita
でおさらいしてください。

$data = array(); // <--- 初期化しないと、Noticeエラーにつながる while($row = $result->fetch_array(MYSQLI_ASSOC)){ $data[] = $row; }

に出てくる$dataを全く初期化せずに使うのはよろしくありません。

$dat = array(); foreach($data as $value){ for($i=0; $i< count($data);$i++;){ for($j=0; $j< count($data);$j++;){ $dat[$i][$j] = $value; } }

ここでは$datを初期化していてよろしい。
しかし、phpではいわゆる二次元配列は作れず、
配列の要素に配列を持つ、配列の配列は作れます。
配列の配列は、出来てしまえば二次元配列のように使えますが、
配列の要素を初期化せず値を詰めるのはNoticeエラーにつながるため、
初期化も丁寧に行います。

$dat = array(); // <-- 要素ゼロのカラ配列として初期化 foreach ($data as $row){ $arr = array(); // <-- 1行分を溜め込むための一時的な配列を初期化 foreach ($row as $col) { $arr[] = $col; // <-- 1行の中のカラムを一つずつ配列に足していく } $dat[] = $arr; // <-- 1行分溜め込んだ配列を保持。 } var_dump($dat); // <-- どういうふうに格納しているか、テストしてみてね

forループを使わずにforeachループで実現させる手もありますね。
これで、$dat[$i][$j]みたいにしてアクセス可能な、配列の配列$datができるはずです。

投稿2019/10/03 10:13

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

bunbun007

2019/10/03 10:21

アドバイス誠にありがとうございます レンタルサーバーの使い方に関してはごもっともです。気をつけます。 データベース接続はソースにはいれませんでした。 これで試してみます。 ありがとうございました。
bunbun007

2019/10/04 06:33

アドバイスして頂きましたコードでやってみましたらうまくいきました ありがとうございました
guest

0

区分、称、期間、条件がその順番で4レコードだけ抽出される保証があるのでしょうか?
であれば繰り返し部分をforeachでまとめれば

PHP

1$dat=[ 2 ["区分1","区分2","区分3","区分4","区分5",], 3 ["称1","称2","称3","称4","称5",], 4 ["期間1","期間2","期間3","期間4","期間5",], 5 ["条件1","条件2","条件3","条件4","条件5",], 6]; 7 8$table =<<<eof 9<table width="98%" border="1"> 10<thead> 11<tr> 12 <td>&nbsp;</td> 13 <td bgcolor="#FFFFCC">1</td> 14 <td bgcolor="#FFFFCC">2</td> 15 <td bgcolor="#FFFFCC">3</td> 16 <td bgcolor="#FFFFCC">4</td> 17 <td bgcolor="#FFFFCC">5</td> 18 </tr> 19</thead> 20<tbody> 21 22eof; 23$list=["区分","称","期間","条件",]; 24foreach($dat as $key=>$arr){ 25 $table.="<tr>\n"; 26 $table.="<td bgcolor=\"#FFFFCC\">{$list[$key]}</td>\n"; 27 foreach($arr as $val){ 28 $table.="<td>{$val}</td>\n"; 29 } 30 $table.="</tr>\n"; 31} 32$table.="</tbody>\n"; 33$table.="</table>\n"; 34print $table; 35

投稿2019/10/03 09:58

yambejp

総合スコア116688

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

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

bunbun007

2019/10/03 10:05

最大で50レコードの固定ですが、sqlからデータを取得してphpで配列にいれて表示させたいのです。 sqlから取得したデータをphpで配列に入れ込むところがよくわかりません。
yambejp

2019/10/03 10:07

> sqlから取得したデータをphpで配列に入れ込むところ だからそれは「区分、称、期間、条件」などご自身がスタティックに書いた項目が 実際のデータベース上にどういった感じで収まっているかによります。 テーブルの構造とデータを例示していただくのが速いと思いますがどうでしょう?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問