teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ご指摘いただいた質問の爪の甘さを再度見直して修正しました。

2021/08/12 10:07

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,23 +1,153 @@
1
1
  ### 前提・実現したいこと
2
- データーベースに入れた写真を開始年のみ設定した場合にその年以降の写真を全て取り出す機能を作りたいです。エラーは出ていないのですが、反映されないのでご指導お願いいたします。
2
+ データーベースに入れた写真を開始年のみ設定した場合にその年以降の写真を全て取り出す機能を作りたいです。上手く反映されないのでご指導お願いいたします。 
3
+ ちなみにパソコンはMACを使っております。
4
+ 反映されないという状況は下記の写真の通りです。(開始年を指定して表示を押した結果になっています。)
3
5
 
6
+ ![イメージ説明](1e7f96e829e91b88a20d115d130f9718.png)
7
+
8
+ 成功の場合は下記のように写真が表示されるはずです。(この成功例は開始年と終了年のどちらも指定した時のものです)
9
+ ![イメージ説明](b00305edf06bcc357429ed386903fe7d.png)
10
+
4
11
  ### 発生している問題・エラーメッセージ
5
12
 
6
- ```
7
- エラーメッセージ
13
+ 写真の代わりに「条件に合うデタがありません:」というメッセージが表示されます。
8
- ```
9
14
 
10
15
  ### 該当のソースコード
16
+ どこから載せればいいのか迷ったので全て載せます。
17
+ ```php
18
+ <HTML>
19
+ <HEAD>
20
+ <META HTTP-EQUIV="content-type" CONTENT="text/HTML;charset=utf-8">
21
+ <TITLE>写真アルバム</TITLE>
22
+ <STYLE type="text/css">
23
+ img.album_photo{
24
+ width:500px;
25
+ height:auto;
26
+ max-width:100%;
27
+ max-height:100%;
28
+ }
29
+ </STYLE>
30
+ </HEAD>
31
+ <BODY>
32
+
33
+ <?php
34
+ include('./exif_tool/php');
35
+
36
+ print <<<_HTML_
37
+ <FORM method="POST" action="$_SERVER[PHP_SELF]">
38
+ 期間:
39
+ <SELECT name="fromyear">
40
+ <OPTION value=""selected>--</OPTION>
41
+ <OPTION value="2011">2011</OPTION>
42
+ <OPTION value="2012">2012</OPTION>
43
+ <OPTION value="2013">2013</OPTION>
44
+ <OPTION value="2014">2014</OPTION>
45
+ <OPTION value="2015">2015</OPTION>
46
+ <OPTION value="2016">2016</OPTION>
47
+ <OPTION value="2017">2017</OPTION>
48
+ <OPTION value="2018">2018</OPTION>
49
+ <OPTION value="2019">2019</OPTION>
50
+ <OPTION value="2020">2020</OPTION>
51
+ </SELECT>年
52
+
53
+ <SELECT name="toyear">
54
+ <OPTION value=""selected>--</OPTION>
55
+ <OPTION value="2010">2010</OPTION>
56
+ <OPTION value="2011">2011</OPTION>
57
+ <OPTION value="2012">2012</OPTION>
58
+ <OPTION value="2013">2013</OPTION>
59
+ <OPTION value="2014">2014</OPTION>
60
+ <OPTION value="2015">2015</OPTION>
61
+ <OPTION value="2016">2016</OPTION>
62
+ <OPTION value="2017">2017</OPTION>
63
+ <OPTION value="2018">2018</OPTION>
64
+ <OPTION value="2019">2019</OPTION>
65
+ <OPTION value="2020">2020</OPTION>
66
+ </SELECT>年
11
67
 
68
+
69
+ <BR>
70
+ 場所:<INPUT type="text" name="location"><BR>
12
- $query="SELECT*FROM`1780`WHERE";
71
+ <SELECT name="favorite">
72
+ <OPTION value=""selected>すべて</OPTION>
73
+ <OPTION value="1">お気に入りのみ</OPTION>
74
+ </SETECT><BR>
75
+ <INPUT type="submit" name="album" value="表示">
76
+ </FORM>
13
- $change=0;
77
+ _HTML_;
78
+
79
+ if(isset($_POST['album'])){
80
+ include('db_login.php');
14
81
 
82
+ $dbconnect = mysqli_connect($db_host, $db_username, $db_password, $db_database);
83
+ if(mysqli_connect_errno()){
84
+ die("MySQLに接続できません:<BR>".mysqli_error($dbconnect));
85
+ }
86
+
87
+ if(!mysqli_set_charset($dbconnect,"utf8")){
88
+ die("日本語の設定ができません:<BR>".mysqli_error($dbconnect));
89
+ }
90
+
91
+
92
+ $query="SELECT*FROM`1719018`WHERE";
93
+ $change=0;
94
+
15
95
  if($_POST['fromyear']){
16
96
  $query=$query."photo_date>='".$_POST['fromyear']."-1-1'"."ORDER BY photo_date";
17
97
  $change=1;
18
98
  }
99
+
19
100
 
101
+ if (!$change){
102
+ $query=$query.photo_date<='"2021"-12-31'"."ORDER BY photo_date";
103
+
104
+ }
105
+
106
+
107
+ if(!$result){
108
+ die("データを取得できません:<BR>".mysqli_error($dbconnect));
109
+ }
110
+
111
+ if(!mysqli_num_rows($result)){
112
+ die("条件に合うデータがありません:<BR>");
113
+ }
114
+
115
+
116
+ while($result_row = mysqli_fetch_row($result)){
117
+ print"<IMG src=\"./photo/".$result_row[0]."\"class=\"album_photo\">";
118
+ print date("Y年n月j日",strtotime($result_row[1]));
119
+ print $result_row[3];
120
+ }
121
+ mysqli_close($dbconnect);
122
+ }
123
+ ?>
124
+
125
+
126
+
127
+
128
+ </BODY>
129
+ </HTML>
130
+ ```
131
+
20
132
  ### 試したこと
21
133
 
22
134
 
23
- ### 補足情報(FW/ツールのバージョンなど)
135
+ ### 補足情報(FW/ツールのバージョンなど)
136
+ 元々正常に作ってあるプログラムに今問題となっている機能を加えたいです。以下に書いてあるコード以外はしっかり機能しています。
137
+ ```php
138
+
139
+ $query="SELECT*FROM`1719018`WHERE";
140
+ $change=0;
141
+
142
+ if($_POST['fromyear']){
143
+ $query=$query."photo_date>='".$_POST['fromyear']."-1-1'"."ORDER BY photo_date";
144
+ $change=1;
145
+ }
146
+
147
+
148
+ if (!$change){
149
+ $query=$query.photo_date<='"2021"-12-31'"."ORDER BY photo_date";
150
+
151
+ }
152
+
153
+ ```