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

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

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

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

HTML

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

Q&A

解決済

1回答

1020閲覧

このコードのどこに問題があるのか分かりません。。

Robinson

総合スコア8

PHP

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

HTML

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

0グッド

0クリップ

投稿2019/10/30 11:38

PHPで表を作りたいのですが、以下のコードを入力したら、四段になるはずの表が、1行しか表示されません。どこがいけないのでしょうか?

PHP

1<?php 2$plan0=array('id'=>"1", 3 'year'=>2020, 4 'month'=>10, 5 'day'=>30, 6 'content'=>"さらに進める"); 7 8$plan1=array('id'=>"2", 9 'year'=>2021, 10 'month'=>11, 11 'day'=>01, 12 'content'=>"頑張る"); 13$plan2=array('id'=>"3", 14 'year'=>2019, 15 'month'=>11, 16 'day'=>02, 17 'content'=>"もっと進める"); 18$plan3=array('id'=>"4", 19 'year'=>2028, 20 'month'=>10, 21 'day'=>29, 22 'content'=>"もっと進める"); 23 24$plan=array($plan0,$plan1,$plan2,$plan3); 25 26?><!DOCTYPE html> 27<html lang="ja"> 28<head> 29<title>PHP練習</title> 30<meta charset="UTF-8"> 31</head> 32<body bgcolor="e6e6fa"> 33<h1>東京オリンピックまで</h1> 34<h1>あと<?php echo mktime(20,0,0,7,24,2020)-time()?></h1> 35 36<h1>多次元配列</h1> 37 38<table border='1'> 39<tr> 40<td>id</td> 41<td>year</td> 42<td>month</td> 43<td>day</td> 44<td>content</td> 45<td>過去、本日、未来</td> 46</tr> 47 48<?php 49foreach($plan as $key => $value){ 50 // $plansの中身の数だけ繰り返す 51 // $keyにキーが格納され、$valueに値が格納される 52 $array_year[]=$value['year'] ; 53 $array_month[]=$value['month'] ; 54 $array_day[]=$value['day'] ;} 55 56 array_multisort($array_year,SORT_ASC, 57 $array_month,SORT_ASC, 58 $array_day,SORT_ASC, 59 60 $plan);?> 61 62<tr> 63<td><?php echo $plan[$key]['id']?></td> 64<td><?php echo $plan[$key]['year']?></td> 65<td><?php echo $plan[$key]['month']?></td> 66<td><?php echo $plan[$key]['day']?></td> 67<td><?php echo $plan[$key]['content']?></td> 68<td><?php 69 70if(mktime(0,0,0,$value["month"],$value["day"],$value["year"])<strtotime("time")){ 71 echo "過去";} 72 73 echo mktime(0,0,0,$value["month"],$value["year"])?></td> 74</tr> 75 76 77</table> 78 79</body> 80</html>

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

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

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

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

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

azuapricot

2019/10/30 11:41

foreach で表を表示したいなら、 foreach の { } の中に <tr><td></td></tr>を出力するコードがはいっていなきゃいけないのでは? foreachであなたが繰り返してるところをもう一度確認したらどうでしょう。 今のままだと<tr><td></td></tr>は1セットしか出力されていないので、 そりゃ1行しかでないですよねっていう。
azuapricot

2019/10/30 11:42

というかインデントがごちゃごちゃで読みにくいことこの上ないです。 インデントが汚いのはコーディングミスの原因になるのできちんと直しましょう
m.ts10806

2019/10/30 12:01

「問題点」を好き勝手にあげていいならキリがないくらいあります(そこまでの労力はさすがに) プログラムは書いた通りにしか動かないので、1つ1つ確かめていくしかないですよ。 まず自身が書いたプログラムを自身がどこまで把握できているかを記載してください
m.ts10806

2019/10/30 12:02

いずれにしてもタイトルは調整された方が良いでしょう。要件を記載してください。
guest

回答1

0

ベストアンサー

php

1foreach($plan as $key => $value){ 2 // $plansの中身の数だけ繰り返す 3 // $keyにキーが格納され、$valueに値が格納される 4 $array_year[]=$value['year'] ; 5 $array_month[]=$value['month'] ; 6 $array_day[]=$value['day'] ;}

繰り返しって、これで完結しちゃってますが。
繰り返して、最後の$keyが使われて、一行分表示しているのかと。

php

1<?php 2$plan0 = array('id' => '1', 3 'year' => 2020, 4 'month' => 10, 5 'day' => 30, 6 'content' => 'さらに進める', ); 7 8$plan1 = array('id' => '2', 9 'year' => 2021, 10 'month' => 11, 11 'day' => 01, 12 'content' => '頑張る', ); 13$plan2 = array('id' => '3', 14 'year' => 2019, 15 'month' => 11, 16 'day' => 02, 17 'content' => 'もっと進める', ); 18$plan3 = array('id' => '4', 19 'year' => 2028, 20 'month' => 10, 21 'day' => 29, 22 'content' => 'もっと進める', ); 23 24$plan = array($plan0,$plan1,$plan2,$plan3); 25 26?><!DOCTYPE html> 27<html lang="ja"> 28<head> 29<title>PHP練習</title> 30<meta charset="UTF-8"> 31</head> 32<body bgcolor="e6e6fa"> 33<h1>東京オリンピックまで</h1> 34<h1>あと<?php echo mktime(20, 0, 0, 7, 24, 2020) - time()?></h1> 35 36<h1>多次元配列</h1> 37 38<table border='1'> 39<tr> 40<td>id</td> 41<td>year</td> 42<td>month</td> 43<td>day</td> 44<td>content</td> 45<td>過去、本日、未来</td> 46</tr> 47 48<?php 49foreach ($plan as $key => $value) { 50 // $plansの中身の数だけ繰り返す 51 // $keyにキーが格納され、$valueに値が格納される 52 $array_year[] = $value['year']; 53 $array_month[] = $value['month']; 54 $array_day[] = $value['day']; 55} 56 57 array_multisort($array_year, SORT_ASC, 58 $array_month, SORT_ASC, 59 $array_day, SORT_ASC, 60 61 $plan); 62foreach ($plan as $key => $value) { 63 ?> 64 65<tr> 66<td><?php echo $plan[$key]['id']?></td> 67<td><?php echo $plan[$key]['year']?></td> 68<td><?php echo $plan[$key]['month']?></td> 69<td><?php echo $plan[$key]['day']?></td> 70<td><?php echo $plan[$key]['content']?></td> 71<td><?php 72 73if (mktime(0, 0, 0, $value['month'], $value['day'], $value['year']) < strtotime('time')) { 74 echo '過去'; 75} 76 77 echo mktime(0, 0, 0, $value['month'], $value['year'])?></td> 78</tr> 79<?php 80 81} 82?> 83 84</table> 85 86</body> 87</html>

としたら、とりあえず4行分表示しています。

例えば、整形ツールを使ってみると良いです。
PHPソースコード整形(PHP Beautifier,php-cs-fixer)

投稿2019/10/30 11:53

編集2019/10/30 11:57
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問