質問編集履歴

1

文章を訂正

2020/08/11 01:30

投稿

ningen
ningen

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,22 +1,12 @@
1
- ### 前提・実現したいこと
1
+ ### 質問事項
2
-
2
+
3
+
4
+
3
- 投稿に言語別タイトルを実装しているのですが、そのテーブル設計と取得で悩んでいます。
5
+ 投稿に言語別タイトルを実装しています。
4
-
5
-
6
-
7
- 現状は「該当のソースコード」のテーブル設計に対して、「試したこと」のSQLとPHPによって言語別タイトルを取得しています。
6
+
8
-
9
-
10
-
11
- これらの方法に問題がないか知りたいです。
7
+
12
-
13
-
14
-
15
- ### 特に懸念している問題
8
+
16
-
17
-
18
-
19
- 特に懸念しているのは「試したこと」のPHPで、言語別タイトルが取得できるかどうかです。
9
+ 以下PHPで、言語別タイトルが取得できるかどうか知りたいです。
20
10
 
21
11
 
22
12
 
@@ -24,7 +14,7 @@
24
14
 
25
15
 
26
16
 
27
- とあるように、このPHPでは$titlesと$lang_idsが言語ごとに同じ位置に来ないと適切に取得できないと思うのですが、「試したこと」のSQLはそれを同じ位置に取得できるでしょうか?
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,'BANANA');
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
- この一件から当該ユーザの言語($his_lang_id)に応じたタイトルを取得するPHPが次の通りです
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