質問編集履歴

1

同じコードを利用しようとしたらエラーが起こり、解決しない

2017/05/19 17:14

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,49 @@
1
1
  ###前提・実現したいこと
2
2
 
3
+
4
+
5
+ 追記:以下内容でこのページは遷移できたのですが、別のページも同じようにしたら文字化けが起こるのと、二行目以降の一覧データが入っていないようなエラーが起こっています。
6
+
7
+
8
+
9
+ $i = 0;
10
+
11
+ while($row = mysqli_fetch_row($result)){
12
+
13
+ $engineer_id = $row[0];
14
+
15
+ $engineer_name = $row[1];
16
+
17
+ $entry_day = $row[2];とした時に、この中の変数を二回以上使うと何かエラーが起こるのでしょうか?
18
+
19
+
20
+
21
+ また、<script type="text/javascript">
22
+
23
+ function moveDetail(number) {
24
+
25
+ document.frmMoveDetail.engineer_id.value=number;
26
+
27
+ document.frmMoveDetail.submit();
28
+
29
+ }
30
+
31
+ </script>の意味がよくわかっておらず、意味を教えていただければと思いました。
32
+
33
+
34
+
35
+ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
36
+
37
+
38
+
39
+
40
+
41
+ 以下前回の質問
42
+
43
+ 〜〜〜
44
+
45
+
46
+
3
47
  PHPとmysqlを利用して対象のデータベーステーブルから情報一覧をtableで表示します。
4
48
 
5
49
  そして、tableの行をクリックすると、対象の行がhoverにより色が変わって、対象の内容の詳細画面へ飛ぶというシステムを作っています。
@@ -10,6 +54,8 @@
10
54
 
11
55
 
12
56
 
57
+ 〜〜〜
58
+
13
59
 
14
60
 
15
61
 
@@ -20,6 +66,12 @@
20
66
 
21
67
 
22
68
 
69
+ 今回の動作しないコード↓
70
+
71
+
72
+
73
+
74
+
23
75
  <!DOCTYPE html>
24
76
 
25
77
  <html lang="ja">
@@ -28,6 +80,204 @@
28
80
 
29
81
  <meta charset="utf-8">
30
82
 
83
+ <title>一覧</title>
84
+
85
+ <style type="text/css">
86
+
87
+ .list {
88
+
89
+ border : blue;
90
+
91
+ border-style : solid;
92
+
93
+ width:1200px;
94
+
95
+ }
96
+
97
+ .list td {
98
+
99
+ border-top:solid 1px;
100
+
101
+ border-top:solid 1px;
102
+
103
+ line-height:18px;
104
+
105
+
106
+
107
+ }
108
+
109
+ .list tr:hover {
110
+
111
+ background-color:red;
112
+
113
+ }
114
+
115
+ </style>
116
+
117
+ <body>
118
+
119
+ <table>
120
+
121
+ <tr>
122
+
123
+ <th>エンジニア番号</th><th>技術者名</th><th>入社日</th>
124
+
125
+ </tr>
126
+
127
+ <#ENGINEERLIST#>//phpで変換予定
128
+
129
+ <form method="post" id="frmMoveDetail" name="frmMoveDetail" action="engineer_detail.php">
130
+
131
+
132
+
133
+ <input type="hidden" id="engineer_id" name="engineer_id" value="<#ENGINEERID#>">
134
+
135
+ </form>
136
+
137
+ </body>
138
+
139
+ <script type="text/javascript">
140
+
141
+ function moveDetail(number) {
142
+
143
+ document.frmMoveDetail.engineer_id.value=number;
144
+
145
+ document.frmMoveDetail.submit();
146
+
147
+ }
148
+
149
+ </script>
150
+
151
+ </html>
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+ <?php
162
+
163
+
164
+
165
+ $link=mysqli_connect(DB_SERVER,DB_ACCOUNT_ID,DB_ACCOUNT_PW,DB_NAME);
166
+
167
+ if (!$link) {
168
+
169
+ echo "接続エラー"
170
+
171
+ exit;
172
+
173
+ }
174
+
175
+ mysqli_set_charset($link,"utf8");//utf8にセット
176
+
177
+
178
+
179
+ $query = 'select * from engineer_info where 1 order by engineer_id';
180
+
181
+
182
+
183
+
184
+
185
+ $engineer_line = "";//変数を初期化する
186
+
187
+
188
+
189
+ if($result = mysqli_query($link,$query)){
190
+
191
+
192
+
193
+ $i = 0;
194
+
195
+ while($row = mysqli_fetch_row($result)){
196
+
197
+ $engineer_id = $row[0];
198
+
199
+ $engineer_name = $row[1];
200
+
201
+ $entry_day = $row[2];
202
+
203
+
204
+
205
+
206
+
207
+ $engineer_line.="<tr onclick='moveDetail(".$engineer_id[$i].")'><td>".$engineer_id[$i]."</td>
208
+
209
+ <td>".$engineer_name[$i]."</td>
210
+
211
+ <td>".$entry_day[$i]."</td></tr>\n";
212
+
213
+
214
+
215
+ $i++;
216
+
217
+
218
+
219
+ }
220
+
221
+ mysqli_free_result($result);
222
+
223
+ }
224
+
225
+ mysqli_close($link);
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+ $fp = fopen('./engineer_list.html','r');//htmlを読み込み
234
+
235
+
236
+
237
+ while(!feof($fp)){
238
+
239
+
240
+
241
+ $html_line = fgets($fp);
242
+
243
+ $html_line1 = str_replace('<#LOGINNAME#>',$shain_mei,$html_line);
244
+
245
+ $html_line2 = str_replace('<#ENGINEERID#>','.$engineer_id.',$html_line1);
246
+
247
+ $lines = str_replace('<#ENGINEERLIST#>',$engineer_line,$html_line2);
248
+
249
+
250
+
251
+ echo $lines;
252
+
253
+ }
254
+
255
+ fclose($fp);
256
+
257
+ exit();
258
+
259
+ ?>
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+ 以下前回質問をさせていただき遷移できた方法↓
270
+
271
+
272
+
273
+ <!DOCTYPE html>
274
+
275
+ <html lang="ja">
276
+
277
+ <head>
278
+
279
+ <meta charset="utf-8">
280
+
31
281
  <title>情報一覧</title>
32
282
 
33
283
  <style type="text/css">
@@ -274,19 +524,37 @@
274
524
 
275
525
 
276
526
 
277
-
278
-
279
- 調べた資料ではPHPの中で、<input type='submit' value='info' onclick='mov
280
-
281
- eDetail(".$contract_id[$i].")' />というmoveDetailという関数を利用しているのですが、これだと<tr>を選択して詳細へ飛ぶというシステムではないのではないかと思ったのですが、、、。
527
+ <tr onclick='moveDetail(".$engineer_id[$i].")'><td>".$engineer_id[$i]."</td><td>".$engineer_name[$i]."</td>
528
+
282
-
529
+ に対してPHP Notice: Uninitialized string offset: 1 in /home/vagrant/contract_kadai2/engineer_list.php on line 40というエラーが起こっているため、ここあたりのengineer_id[$i]がうまく機能していない?と思い、いじって見ましたが変化ない状態です。
530
+
531
+
532
+
283
-
533
+ また、ターミナルから直接insert intoにして追加しても一つ目の行のデータにはid番号が表示されますが、二行目以降がidが表示されなくなります。
534
+
284
-
535
+ 以下二つデータがある中でソースを確認した時の表示です。
536
+
285
- リンク先飛ぶことまずできおりません
537
+ moveDetail()id入っいない
286
-
287
- 初心者できちんと質問になっているかもわかりませんが、どなたかご教授いただければと思います。
538
+
288
-
539
+
540
+
289
- よろしくお願い致します
541
+ かつ�と文字化けが起こる
542
+
543
+ ただ、一つ目の行をクリックして詳細画面へ行くと、文字化けも起こらずに、一つ目のidのデータが抽出されて出てきていました。
544
+
545
+
546
+
547
+ <tr onclick='moveDetail(1)'><td>1</td>
548
+
549
+ <td>�</td>
550
+
551
+ <td>2</td><td>�</td></tr>
552
+
553
+ <tr onclick='moveDetail()'><td></td>
554
+
555
+ <td>�</td>
556
+
557
+ <td>0</td><td>�</td></tr>
290
558
 
291
559
 
292
560