php sql호출 관련 질문입니다 ㅠ
본문
그누분들이 어제 도와주셔서.. 앞단위는 해결했으나..
뒤에 또 난관에 봉착을 해버렸어요...
윗 부분은 아래 코드로 해결했으나..
<?
$color_group_union = "
SELECT distinct color1 FROM g5_write_color where color1 != ''
UNION
SELECT distinct color1 FROM g5_write_color where color1 != ''
UNION
SELECT distinct color2 FROM g5_write_color where color2 != ''
UNION
SELECT distinct color3 FROM g5_write_color where color3 != ''
"
$color_group = union_sql_query($color_group_union); // color1~4 합치고 중복제외 나열
?>
<div class="color_wrap">
<?php for($i=0; $row_color=sql_fetch_array($color_group); $i++) { ?>
<div><?php echo $row_color['color1']?></div>
<? } ?>
</div>
이제 아래 이미지 처럼 뽑으려 하니(결론이미지, 희망)
문제가 많이 발생하드라구요
<?
$color_group_union = "
SELECT distinct color1 FROM g5_write_color where color1 != ''
UNION
SELECT distinct color1 FROM g5_write_color where color1 != ''
UNION
SELECT distinct color2 FROM g5_write_color where color2 != ''
UNION
SELECT distinct color3 FROM g5_write_color where color3 != ''
"
$color_group = union_sql_query($color_group_union); // color1~4 합치고 중복제외 나열
$name_sql = "SELECT * FROM g5_write_color";
$name_group =sql_query($name_sql);
?>
<div class="color_wrap">
<?php for($i=0; $row_color=sql_fetch_array($color_group); $i++) { ?>
<div>
<h1><?php echo $row_color['color1']?>
<ul>
<?php for($i=0; $row_name=sql_fetch_array($name_group); $i++) { ?>
<?php if($row_name['color1']==$row_color['color1']){ ?>
<li><?php echo $row_name['name']?></li>
<? } ?>
<? } ?>
</ul>
</div>
<? } ?>
</div>
1. if절에서 첫째 for문의 color1(union된 값)과 둘째 for문의 color1을 비교할 때
둘째 for문은 union이 아니기때문에 첫째 필드값만 조사, 또 union을 써야하나요..?ㅠ
2. 첫째 for문은 돌아가는데 둘째 for문에서 한번돌 고 끝나버리드라구요..
아래는 현재 상황입니다 ㅠ
작은 조언이라도 ㅠ 감사하겟습니다..
!-->!-->답변 3
참고로 이렇게 나옵니다.
MariaDB > select distinct 'aa' aa, bo_subject from g5_board;
+----+-----------------+
| aa | bo_subject |
+----+-----------------+
| aa | 공지사항 |
| aa | 자유게시판 |
| aa | 갤러리 |
+----+-----------------+
7 rows in set (0.00 sec)
위 그림을 보시면 $i 가 바로 아래에서 다시 사용되기 때문에 루프가 중단됩니다.
다음과 같이 하단을 고치세요
<ul>
<?php for($j=0; $row_name=sql_fetch_array($name_group); $j++) { ?>
<?php if($row_name['color1']==$row_color['color1']){ ?>
<li><?php echo $row_name['name']?></li>
<? } ?>
<? } ?>
</ul>
SELECT distinct color1 FROM g5_write_color where color1 != ''
UNION
SELECT distinct color1 FROM g5_write_color where color1 != ''
UNION
SELECT distinct color2 FROM g5_write_color where color2 != ''
UNION
SELECT distinct color3 FROM g5_write_color where color3 != ''
"
1,2,3,4를 쓰신 거 맞죠?
답변을 작성하시기 전에 로그인 해주세요.