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

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

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

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

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

Q&A

0回答

262閲覧

PHPとJavaScriptによるselect値の変更❸(コードはPHP、CSSのみ)

Chandler_Bing

総合スコア673

MySQL

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

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

1グッド

1クリップ

投稿2018/12/28 07:59

講義のインスタンス化クラスです

PHP

1<?php 2 3class ClassInstance 4{ 5 public $classId; 6 public $availableMajor; 7 public $className; 8 public $teacherId; 9 public $credit; 10 public $teacherName; 11 public $teacherDepartment; 12 public $date; 13 14 public function __construct($classId, $availableMajor, $className, $teacherId, $credit, $teacherName, $teacherDepartment, $date) 15 { 16 $this ->classId = $classId; 17 $this ->availableMajor = $availableMajor; 18 $this ->className = $className; 19 $this ->teacherId = $teacherId; 20 $this ->credit = $credit; 21 $this ->teacherName = $teacherName; 22 $this ->teacherDepartment = $teacherDepartment; 23 $this ->date = $date; 24 } 25} 26

モデルクラスです

PHP

1 2<?php 3 4require_once("ClassInstance.php"); 5 6$dsn = 'mysql:host=localhost:8889;dbname=college;charest=utf8'; 7$user = 'tennisuser'; 8$password = 'password'; 9 10function connectdb() 11{ 12 global $dsn,$user,$password;/*関数外で宣言された関数*/ 13 14 try { 15 $db = new PDO($dsn, $user, $password); 16 $db ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 17 $db ->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 18 } catch (PDOException $e) { 19 $db = $e ->getMessage(); 20 } 21 return $db; 22} 23 24function postvalue($key) 25{ 26 $value = ''; 27 28 if (isset($_POST[$key])) { 29 $value = $_POST[$key]; 30 } 31 return $value; 32} 33 34function getvalue($key) 35{ 36 $value = ''; 37 38 if (isset($_GET[$key])) { 39 $value = $_GET[$key]; 40 } 41 return $value; 42} 43 44function sessionvalue($key) 45{ 46 $value = ''; 47 48 if (isset($_SESSION[$key])) { 49 $value = $_SESSION[$key]; 50 } 51 return $value; 52} 53 54function h($value) 55{ 56 return htmlentities($value, ENT_QUOTES, 'UTF-8'); 57} 58 59/*生徒のstudentIdによって以下の値を返します。主にDB検索で使用する為です。*/ 60function getStudentMajor($studentId) 61{ 62 if (mb_strpos($studentId, 'AD') !== false) { 63 $studentMajor = 'AD01'; 64 } 65 66 if (mb_strpos($studentId, 'EC') !== false) { 67 $studentMajor = 'EC01'; 68 } 69 70 if (mb_strpos($studentId, 'ED') !== false) { 71 $studentMajor = 'ED01'; 72 } 73 74 if (mb_strpos($studentId, 'EL0') !== false) { 75 $studentMajor = 'EL01'; 76 } 77 78 if (mb_strpos($studentId, 'EL2') !== false) { 79 $studentMajor = 'EL02'; 80 } 81 82 if (mb_strpos($studentId, 'IS') !== false) { 83 $studentMajor = 'IS01'; 84 } 85 86 if (mb_strpos($studentId, 'LA') !== false) { 87 $studentMajor = 'LA01'; 88 } 89 return $studentMajor; 90} 91/*学部(AD01,EC01など)と、開講日時に当てはまるクラスを取得します*/ 92function getAvailableClasses($studentMajor, $date) 93{ 94 $datesarray = array( 95 'Mon1','Mon2','Mon3','Mon4','Mon5', 96 'Tue1','Tue2','Tue3','Tue4','Tue5', 97 'Wed1','Wed2','Wed3','Wed4','Wed5', 98 'Thu1','Thu2','Thu3','Thu4','Thu5', 99 'Fri1','Fri2','Fri3','Fri4','Fri5'); 100 foreach ($datesarray as $datearray) { 101 if ($datearray = $date) { 102 try { 103 $db = connectdb(); 104 $sql = 105 "SELECT * FROM available 106 LEFT JOIN classes ON available.`class_id` = classes.`class_id` 107 LEFT JOIN teachers ON classes.`teacher_id` = teachers.`teacher_id` 108 LEFT JOIN classdates ON classes.`class_id` = classdates.`class_id` 109 WHERE (available.major = ? OR available.major = 'ALL') AND classdates.date = ?"; 110 $stmt = $db ->prepare($sql); 111 $stmt->bindParam(1, $studentMajor, PDO::PARAM_STR); 112 $stmt->bindParam(2, $date, PDO::PARAM_STR); 113 $stmt ->execute(); 114 $results = $stmt ->fetchAll(); 115 } catch (PDOException $e) { 116 echo "エラー:" . $e ->getMessage(); 117 } 118 break; 119 } 120 } 121 return $results; 122} 123 124/*一つ上のgetAvailableClassesメソッドで取得したクラスでcredit(単位数)が4のクラスがあれば、それは週に2回の開講の為 125同じ講師、同じクラスID、同じ講義名のクラスがもうひとつ存在するのでそれを取得する*/ 126function getPartnerClasses($studentMajor, $date, $teacherId, $classId) 127{ 128 $datesarray = array( 129'Mon1','Mon2','Mon3','Mon4','Mon5', 130'Tue1','Tue2','Tue3','Tue4','Tue5', 131'Wed1','Wed2','Wed3','Wed4','Wed5', 132'Thu1','Thu2','Thu3','Thu4','Thu5', 133'Fri1','Fri2','Fri3','Fri4','Fri5'); 134 foreach ($datesarray as $datearray) { 135 if ($datearray = $date) { 136 try { 137 $db = connectdb(); 138 $sql = 139 "SELECT * FROM available 140 LEFT JOIN classes ON available.`class_id` = classes.`class_id` 141 LEFT JOIN teachers ON classes.`teacher_id` = teachers.`teacher_id` 142 LEFT JOIN classdates ON classes.`class_id` = classdates.`class_id` 143 WHERE (available.major = ? OR available.major = 'ALL') AND classdates.date NOT IN (?) AND teachers.`teacher_id` = ? AND classes.`class_id` = ?"; 144 $stmt = $db ->prepare($sql); 145 $stmt->bindParam(1, $studentMajor, PDO::PARAM_STR); 146 $stmt->bindParam(2, $date, PDO::PARAM_STR); 147 $stmt->bindParam(3, $teacherId, PDO::PARAM_INT); 148 $stmt->bindParam(4, $classId, PDO::PARAM_INT); 149 $stmt ->execute(); 150 $results = $stmt ->fetchAll(); 151 } catch (PDOException $e) { 152 echo "エラー:" . $e ->getMessage(); 153 } 154 break; 155 } 156 } 157 return $results; 158} 159 160/*上二つのメソッドgetAvailableClassesとgetPartnerClassesを使用しその値でClassInstanceを生成する。 161また、$classesArrayにはcreditが2以下のクラスのみが入り、$partnerClassesArrayにはcreditが4のクラスがセットで入る。*/ 162function classInstantiation($studentMajor, $date) 163{ 164 $classesArray = array(); 165 $partnerClassesArray = array(); 166 $availableClasses = getAvailableClasses($studentMajor, $date); 167 foreach ($availableClasses as $availableClass) { 168 if ($availableClass['credit'] == 4) { 169 $partnerClasses = getPartnerClasses($studentMajor, $date, $availableClass['teacher_id'], $availableClass['class_id']); 170 foreach ($partnerClasses as $partnerClass) { 171 $partnerClassesArray[] = new ClassInstance( 172 $partnerClass['class_id'], 173 $partnerClass['major'], 174 $partnerClass['classname'], 175 $partnerClass['teacher_id'], 176 $partnerClass['credit'], 177 $partnerClass['teachername'], 178 $partnerClass['department'], 179 $partnerClass['date'] 180 ); 181 } 182 } 183 $classesArray[] = new ClassInstance( 184 $availableClass['class_id'], 185 $availableClass['major'], 186 $availableClass['classname'], 187 $availableClass['teacher_id'], 188 $availableClass['credit'], 189 $availableClass['teachername'], 190 $availableClass['department'], 191 $availableClass['date'] 192 ); 193 } 194 return array($classesArray, $partnerClassesArray); 195}

CSS

1html { 2 font-family: sans-serif; 3} 4 5html * { 6 box-sizing: border-box; 7} 8 9body { 10 margin: 0 0 0 0; 11 padding: 0 0 0 0; 12} 13 14header { 15 height: 65px; 16 width: 100%; 17 background-color: rgba(34, 49, 52, 0.9); 18 position: fixed; 19 z-index: 10; 20} 21 22h1, h2, h3, h4, h5, h6 { 23 margin: 0 0 0 0; 24 padding: 0 0 0 0; 25} 26 27.container { 28 width: 960px; 29 padding: 0 15px; 30 margin: 0 auto; 31} 32 33.headerright { 34 float: right; 35} 36 37.menus { 38 padding-top: 100px; 39} 40 41.menu { 42 margin: 0px; 43 padding: 0px; 44 text-align: center; 45 font-weight: bold; 46} 47 48.menu:after { 49 content: ""; 50 clear: both; 51 display: block; 52 border-bottom: #dda0dd 6px solid; 53} 54 55.menu a { 56 color: #000000; 57 display: block; 58 padding-top: 10px; 59 text-decoration: none; 60 font-family: Arial, Helvetica, sans-serif; 61 border-top-left-radius: 12px; 62 border-top-right-radius: 12px; 63} 64 65.menu01, .menu02, .menu03, .menu04, .menu05 { 66 border: 0; 67 padding: 0px; 68 margin: 0px; 69 float: left; 70 display: inline-block; 71 list-style-type: none; 72 cursor: pointer; 73 width: 20%; 74} 75 76.menu01 a { 77 background-color: #dda0dd; 78 color: #ffffff; 79} 80 81.menu a :active { 82 color: #00bfff; 83} 84 85.main{ 86 margin-top: 100px; 87} 88 89table { 90 width: 100%; 91 border-collapse: collapse; 92} 93 94th, td { 95 border: solid 1px #808080; 96 padding: 5px 10px; 97 text-align: center; 98} 99 100th, .time { 101 background-color: #dda0dd; 102 color: #000000; 103} 104 105.time { 106 text-align: center; 107} 108 109select { 110 -webkit-appearance: none; 111 -moz-appearance: none; 112 appearance: none; 113} 114 115select::-ms-expand { 116 display: none; 117} 118 119.selectwrap { 120 height: 28px; 121 width: 100%; 122 font-weight: bold; 123 color: #808080; 124 width: 90px; 125} 126 127.message { 128 color: #f08080; 129 opacity: 0.8; 130 font-weight: normal; 131 margin-top: 10px; 132} 133
bochan2👍を押しています

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

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

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

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

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

m.ts10806

2018/12/28 08:01 編集

ひとつ前の質問につけた指摘見てます? 同じ内容であれば1質問にまとめてください。ルール違反です。
退会済みユーザー

退会済みユーザー

2018/12/28 08:16

これだけがみえるようになった(w
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問