質問編集履歴
3
追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -293,7 +293,7 @@ | |
| 293 293 |  | 
| 294 294 | 
             
            echo 'キャラ名:'.$row['キャラ名'].'<br />';
         | 
| 295 295 | 
             
            echo $row['技-1'].'<br />';
         | 
| 296 | 
            -
            echo $row['技- | 
| 296 | 
            +
            echo $row['技-2'].'<br />';
         | 
| 297 297 | 
             
            echo $row['レベル-1'].'<br />';
         | 
| 298 298 | 
             
            echo $row['レベル-2'].'<br />';
         | 
| 299 299 |  | 
2
追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -247,4 +247,57 @@ | |
| 247 247 | 
             
            とか表示させたいのです。
         | 
| 248 248 |  | 
| 249 249 |  | 
| 250 | 
            -
            技(私の場合ではskillとyear)は人によって複数あるので、ある分だけを表示させたいです。
         | 
| 250 | 
            +
            技(私の場合ではskillとyear)は人によって複数あるので、ある分だけを表示させたいです。
         | 
| 251 | 
            +
             | 
| 252 | 
            +
             | 
| 253 | 
            +
            ---
         | 
| 254 | 
            +
            6/27 0:28 追記
         | 
| 255 | 
            +
             | 
| 256 | 
            +
            GROUP_CONCATでやりたいことに**似た**ことができました。
         | 
| 257 | 
            +
             | 
| 258 | 
            +
            
         | 
| 259 | 
            +
             | 
| 260 | 
            +
             | 
| 261 | 
            +
            ```ここに言語を入力
         | 
| 262 | 
            +
            $en = filter_input(INPUT_GET, 'EN');
         | 
| 263 | 
            +
            $sql = "SELECT name.id, name AS 'キャラ名', user_id,GROUP_CONCAT(skill) AS '技',GROUP_CONCAT(level) AS 'レベル' FROM name LEFT JOIN skill ON name.id = skill.user_id WHERE name.id = '$en' GROUP BY name.id";
         | 
| 264 | 
            +
            $stmt = $pdo->prepare($sql);
         | 
| 265 | 
            +
            $stmt->execute();
         | 
| 266 | 
            +
             | 
| 267 | 
            +
            var_dump($sql);
         | 
| 268 | 
            +
             | 
| 269 | 
            +
            foreach ($stmt as $row) {
         | 
| 270 | 
            +
            	echo '<br /><br />';
         | 
| 271 | 
            +
            	echo 'キャラ名:'.$row['キャラ名'].'<br />';
         | 
| 272 | 
            +
            	echo 'キャラ名:'.$row['技'].'<br />';
         | 
| 273 | 
            +
            	echo 'キャラ名:'.$row['レベル'].'<br />';
         | 
| 274 | 
            +
            }
         | 
| 275 | 
            +
            ```
         | 
| 276 | 
            +
             | 
| 277 | 
            +
            
         | 
| 278 | 
            +
             | 
| 279 | 
            +
            これは、$row['レベル']内に該当のものがすべて入ってるのですべて出力されますが
         | 
| 280 | 
            +
             | 
| 281 | 
            +
            キャラ名:ナルト
         | 
| 282 | 
            +
            技名     レベル
         | 
| 283 | 
            +
            螺旋丸    LV50
         | 
| 284 | 
            +
            螺旋手裏剣  LV80
         | 
| 285 | 
            +
             | 
| 286 | 
            +
            という風に分けて表示したいので、
         | 
| 287 | 
            +
            $row['技']内や$row['レベル']内に該当のものがすべて入ってるイメージではなく
         | 
| 288 | 
            +
             | 
| 289 | 
            +
            螺旋丸なら螺旋丸
         | 
| 290 | 
            +
            螺旋手裏剣なら螺旋手裏剣
         | 
| 291 | 
            +
            ひとつひとつに割り当てられてるイメージでした。
         | 
| 292 | 
            +
             | 
| 293 | 
            +
             | 
| 294 | 
            +
            echo 'キャラ名:'.$row['キャラ名'].'<br />';
         | 
| 295 | 
            +
            echo $row['技-1'].'<br />';
         | 
| 296 | 
            +
            echo $row['技-1'].'<br />';
         | 
| 297 | 
            +
            echo $row['レベル-1'].'<br />';
         | 
| 298 | 
            +
            echo $row['レベル-2'].'<br />';
         | 
| 299 | 
            +
             | 
| 300 | 
            +
             | 
| 301 | 
            +
            のような。
         | 
| 302 | 
            +
             | 
| 303 | 
            +
            とりあえず分けて表示したいのですがどうしたらよいでしょうか?
         | 
1
追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -173,4 +173,78 @@ | |
| 173 173 | 
             
              `cont_date` varchar(255) NOT NULL,
         | 
| 174 174 | 
             
              `introduction` text NOT NULL,
         | 
| 175 175 | 
             
              PRIMARY KEY (`id`)
         | 
| 176 | 
            -
            ) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8 |
         | 
| 176 | 
            +
            ) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8 |
         | 
| 177 | 
            +
             | 
| 178 | 
            +
            ---
         | 
| 179 | 
            +
             | 
| 180 | 
            +
            【追記】
         | 
| 181 | 
            +
            重複したカラムを取得する方法はASで別名を付けることで解決しました。
         | 
| 182 | 
            +
            2回表示されているものは下記のSQL文に修正することで解決しました。
         | 
| 183 | 
            +
             | 
| 184 | 
            +
            ```sql
         | 
| 185 | 
            +
            SELECT UD.id,created,name5,name6,birth_year,birth_month,birth_day,gender,pref,city,
         | 
| 186 | 
            +
            skill,US.year AS skill_year,
         | 
| 187 | 
            +
            quali,UQ.year AS quali_year,day,
         | 
| 188 | 
            +
            lang,lang_deg,
         | 
| 189 | 
            +
            major_category,major_skill,cont_date,introduction
         | 
| 190 | 
            +
            FROM user_data UD
         | 
| 191 | 
            +
            LEFT JOIN user_skill US ON UD.id = US.user_id
         | 
| 192 | 
            +
            LEFT JOIN user_quali UQ ON UD.id = UQ.user_id
         | 
| 193 | 
            +
            LEFT JOIN user_lang UL ON UD.id = UL.user_id
         | 
| 194 | 
            +
            LEFT JOIN user_pr UP ON UD.id = UP.user_id
         | 
| 195 | 
            +
            WHERE UD.id = '$en'
         | 
| 196 | 
            +
            GROUP BY UD.id;
         | 
| 197 | 
            +
            ```
         | 
| 198 | 
            +
            2回表示されなくなった結果、本当は2つあるスキルが1つしか表示されなくなりました。
         | 
| 199 | 
            +
             | 
| 200 | 
            +
            
         | 
| 201 | 
            +
             | 
| 202 | 
            +
            GROUP BYでスキルが1つしかない状態ですが、実際にはDBに2フィールド登録されています。
         | 
| 203 | 
            +
             | 
| 204 | 
            +
            
         | 
| 205 | 
            +
             | 
| 206 | 
            +
             | 
| 207 | 
            +
             | 
| 208 | 
            +
             | 
| 209 | 
            +
            これはどう対処したらよろしいのでしょうか?
         | 
| 210 | 
            +
             | 
| 211 | 
            +
            規模を小さくして考えるとこうなります。
         | 
| 212 | 
            +
             | 
| 213 | 
            +
            +-----------+------+----+----------+------------+
         | 
| 214 | 
            +
            | ninjya_id  |name | id  | skill_id   | skill_name |
         | 
| 215 | 
            +
            +-----------+------+----+----------+------------+
         | 
| 216 | 
            +
            |     1         |ナルト|  1  |     1       |    螺旋丸    |
         | 
| 217 | 
            +
            +-----------+------+----+----------+------------+
         | 
| 218 | 
            +
            |     1         |ナルト|  2  |     1       |超大玉螺旋丸|
         | 
| 219 | 
            +
            +-----------+------+----+----------+------------+
         | 
| 220 | 
            +
            |     2         |サスケ|  3  |     2       |    千鳥     |
         | 
| 221 | 
            +
            +-----------+------+----+----------+------------+
         | 
| 222 | 
            +
            |     2         |サスケ|  4  |     2       |    天照     |
         | 
| 223 | 
            +
            +-----------+------+----+----------+------------+
         | 
| 224 | 
            +
            |     2         |サスケ|  5  |     2       |    月読     |
         | 
| 225 | 
            +
            +-----------+------+----+----------+------------+
         | 
| 226 | 
            +
             | 
| 227 | 
            +
             | 
| 228 | 
            +
            【名前】
         | 
| 229 | 
            +
            ナルト
         | 
| 230 | 
            +
             | 
| 231 | 
            +
            【技】
         | 
| 232 | 
            +
            螺旋丸
         | 
| 233 | 
            +
            超大玉螺旋丸
         | 
| 234 | 
            +
             | 
| 235 | 
            +
             | 
| 236 | 
            +
            とか
         | 
| 237 | 
            +
             | 
| 238 | 
            +
             | 
| 239 | 
            +
            【名前】
         | 
| 240 | 
            +
            サスケ
         | 
| 241 | 
            +
             | 
| 242 | 
            +
            【技】
         | 
| 243 | 
            +
            千鳥
         | 
| 244 | 
            +
            天照
         | 
| 245 | 
            +
            月読
         | 
| 246 | 
            +
             | 
| 247 | 
            +
            とか表示させたいのです。
         | 
| 248 | 
            +
             | 
| 249 | 
            +
             | 
| 250 | 
            +
            技(私の場合ではskillとyear)は人によって複数あるので、ある分だけを表示させたいです。
         | 
