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

質問編集履歴

2

エラー行にコメントを挿入しました。

2018/11/10 14:53

投稿

phpsyoshinsya
phpsyoshinsya

スコア156

title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  ### 発生している問題・エラーメッセージ
7
7
  上記のエラーメッセージが出ている行は
8
- $de->fetch_assoc();
8
+ $db->fetch_assoc();
9
9
  となっており、
10
10
  $result=$db->query("select count(*) from reserveslot where date>={$row["date"]}"); // $row["date"]は上で select * from todayから取得しています
11
11
 
@@ -43,7 +43,7 @@
43
43
  $row=$result->fetch_assoc();
44
44
 
45
45
  $result=$db->query("select count(*) from reserveslot where date>={$row["date"]}");
46
- $row=$result->fetch_assoc();
46
+ $row=$result->fetch_assoc(); // エラー行
47
47
  if($row["count"]==0){
48
48
  $result=$db->query("select * from today");
49
49
  $row=$result->fetch_assoc();

1

コメント欄に書いたソースコードをここに書き直しました。

2018/11/10 14:53

投稿

phpsyoshinsya
phpsyoshinsya

スコア156

title CHANGED
File without changes
body CHANGED
@@ -35,8 +35,91 @@
35
35
  maxday int)
36
36
  default charset=sjis");
37
37
 
38
+ function product_reserve_time(){
39
+ $db=new mysqli("localhost","username","password","dbname");
40
+ $db->set_charset("sjis");
41
+ $result=$db->query("select* from today");
42
+ print $db->error;
43
+ $row=$result->fetch_assoc();
44
+
45
+ $result=$db->query("select count(*) from reserveslot where date>={$row["date"]}");
46
+ $row=$result->fetch_assoc();
47
+ if($row["count"]==0){
48
+ $result=$db->query("select * from today");
49
+ $row=$result->fetch_assoc();
50
+ $time=(int)$row["date"];
51
+
52
+ $db->query("insert into reserve_info (date) values({$row["date"]})");
53
+ print $db->error;
54
+ for($i=0;$i<6;$i++){
55
+ $db->query("insert into reserveslot (date) values('{$time}')");
56
+ $time=$time+86400;
57
+ print $db->error;
58
+ }
59
+ }
60
+ if($row["count"]!=0&&$row["count"]<7){
61
+ $count=(int)$row["count"];
62
+ $count=7-$count;
63
+ $result=$db->query("select * from reserveslot order by date desc order by date desc limit 1");
64
+ print $db->error;
65
+ $row=$result->fetch_assoc();
66
+ $time=(int)$row["date"];
67
+ for($i=0;$i<$count;$i++){
68
+ $time=$time+86400;
69
+ $db->query("insert into reserveslot (date) values('{$time}')");
70
+ print $db->error;
71
+ }
72
+ }
73
+
74
+ $result=$db->query("select * from reserveslot where date>=(select date from today) limit 7");
75
+ print $db->error;
76
+ while($row=$result->fetch_assoc()) {
77
+ printf("<input type=\"radio\" name=\"date\" value=\"%s\">%s月%s日",$row["date"],idate("m",$row["date"]),idate("d",$row["date"]));
78
+ printf("<select name=\"%s\"><option>----</option>",$row["date"]);
79
+ if($row["rs1"]==0) print "<option value=\"1\">19:00</option>";
80
+ if($row["rs2"]==0) print "<option value=\"2\">20:30</option>";
81
+ if($row["rst3"]==0) print "<option value=\"3\">22:00</option>";
82
+ if($row["rt4"]==0) print "<option value=\"4\">23:30</option>";
83
+ if($row["rs5"]==0) print "<option value=\"5\">25:00</option>";
84
+ if($row["rs6"]==0) print "<option value=\"6\">26:30</option>";
85
+ if($row["rs7"]==0) print "<option value=\"7\">28:00</option>";
86
+ print "</select><br><br>";
87
+ }
88
+ $db->close();
89
+ }
90
+
91
+ function updtrs(){
92
+ $query="update table reserveslot set ";
93
+ switch($_SESSION["time"]){
94
+ case "1":
95
+ $query.="rs1=1 ";
96
+ break;
97
+ case "2":
98
+ $query.="rs2=1 ";
99
+ break;
100
+ case "3":
101
+ $query.="rs3=1";
102
+ break;
103
+ case "4":
104
+ $query.="rs4=1 ";
105
+ break;
106
+ case "5":
107
+ $query.="rs5=1 ";
108
+ break;
109
+ case "6":
110
+ $query.="rs6=1 ";
111
+ break;
112
+ case "7":
113
+ $query.="rs7=1 ";
114
+ break;
115
+ }
116
+ $query.="where date='".$_SESSION["date"]."'";
117
+ $db=new mysqli("localhost","username","password","dbname");
118
+ $db->query("{$query}");
119
+ $db->close();
120
+ }
38
121
  ```
39
-
122
+ 最初からこのようにすればよかったかもしれませんね。
40
123
  ### 試したこと
41
124
  intとvarcharの間でwhereを使っているのがダメなのかと思いましたが、mysqlのオンラインマニュアルにはそんな記述は見つけられず、手詰まりになっています。
42
125
  目が全く見えないので、できる限りこの掲示板で解決できるよう、URLだけのご紹介だけでなく、今後も同じことで引っかからないように基本的にわかっていなさそうなこともフォローしていただいたり、できる限り修正箇所をどのように修正すればいいのか丁寧にお知らせいただけると助かります。ご理解とご協力のほどお願いいたします。