質問編集履歴
1
文章を訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,22 +1,12 @@
|
|
1
|
-
###
|
1
|
+
### 質問事項
|
2
|
-
|
2
|
+
|
3
|
+
|
4
|
+
|
3
|
-
投稿に言語別タイトルを実装してい
|
5
|
+
投稿に言語別タイトルを実装しています。
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
6
|
+
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
8
|
+
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
9
|
+
以下PHPで、言語別タイトルが取得できるかどうか知りたいです。
|
20
10
|
|
21
11
|
|
22
12
|
|
@@ -24,7 +14,7 @@
|
|
24
14
|
|
25
15
|
|
26
16
|
|
27
|
-
とあるように、このPHPでは$titlesと$lang_idsが言語ごとに同じ位置に来ないと適切に取得できないと思うのですが、
|
17
|
+
とあるように、このPHPでは$titlesと$lang_idsが言語ごとに同じ位置に来ないと適切に取得できないと思うのですが、以下のSQLのSELECTは、それを同じ位置に取得できるでしょうか?
|
28
18
|
|
29
19
|
|
30
20
|
|
@@ -34,11 +24,17 @@
|
|
34
24
|
|
35
25
|
|
36
26
|
|
37
|
-
|
27
|
+
・同じ順番で取得できるから大丈夫
|
28
|
+
|
38
|
-
|
29
|
+
・稀にズレるからこうした方がいい
|
30
|
+
|
31
|
+
といったアドバイスを頂戴したく思っています。
|
32
|
+
|
33
|
+
|
34
|
+
|
39
|
-
###
|
35
|
+
### SQL
|
40
|
-
|
36
|
+
|
41
|
-
テーブル設計はこ
|
37
|
+
テーブル設計およびレコード取得のSQLはこうなっています。
|
42
38
|
|
43
39
|
```SQL
|
44
40
|
|
@@ -102,18 +98,12 @@
|
|
102
98
|
|
103
99
|
(2,1,'ばなな'), (2,2,'banana'),
|
104
100
|
|
105
|
-
(3,99,'
|
101
|
+
(3,99,'mandarine');
|
106
102
|
|
107
103
|
|
108
104
|
|
109
105
|
```
|
110
106
|
|
111
|
-
|
112
|
-
|
113
|
-
### 試したこと
|
114
|
-
|
115
|
-
取得のSQLとPHPはこちらです。
|
116
|
-
|
117
107
|
```SQL
|
118
108
|
|
119
109
|
SELECT
|
@@ -148,16 +138,28 @@
|
|
148
138
|
|
149
139
|
```
|
150
140
|
|
141
|
+
### PHP
|
142
|
+
|
143
|
+
言語別タイトルを取得するPHPはこちらです。
|
144
|
+
|
145
|
+
|
146
|
+
|
151
147
|
```PHP
|
152
148
|
|
153
149
|
/*
|
154
150
|
|
155
|
-
|
151
|
+
上記SQLの結果です
|
152
|
+
|
153
|
+
このように「りんご」の位置に「1」が来て「apple」の位置に「2」が来れば
|
154
|
+
|
155
|
+
$his_lang_title = $titles[$key];
|
156
|
+
|
157
|
+
で取得できるのですが…
|
158
|
+
|
159
|
+
この順番は上記SQLでズレることはないでしょうか?
|
156
160
|
|
157
161
|
*/
|
158
162
|
|
159
|
-
// 上記SQLの結果で、このように「りんご」の位置に「1」が来て、「apple」の位置に「2」が来れば問題ないのですが…
|
160
|
-
|
161
163
|
$rows = array( array(
|
162
164
|
|
163
165
|
"post_id" => "1",
|
@@ -168,17 +170,13 @@
|
|
168
170
|
|
169
171
|
));
|
170
172
|
|
171
|
-
// ひとまず対象を一件とします
|
172
|
-
|
173
173
|
$row = $rows[0];
|
174
174
|
|
175
175
|
|
176
176
|
|
177
177
|
/*
|
178
178
|
|
179
|
-
|
179
|
+
当該ユーザの言語($his_lang_id)に応じたタイトルを取得します
|
180
|
-
|
181
|
-
$titlesと$lang_idsが言語ごとに同じ位置に来ないと適切に取得できないことを特に懸念しています
|
182
180
|
|
183
181
|
*/
|
184
182
|
|
@@ -186,11 +184,9 @@
|
|
186
184
|
|
187
185
|
$his_lang_id = 1;
|
188
186
|
|
189
|
-
// 言語別
|
187
|
+
// 言語別情報
|
190
|
-
|
188
|
+
|
191
|
-
$titles = explode( ',', $row['titles'] );
|
189
|
+
$titles = explode( ',', $row['titles'] );
|
192
|
-
|
193
|
-
// 言語別タイトルのID
|
194
190
|
|
195
191
|
$lang_ids = explode( ',', $row['lang_ids'] );
|
196
192
|
|