안녕하세요.
퓨어 갤러리 스킨으로 제품 게시판을 만들었는데요,
카테고리 2에 있는 데이터를 랜덤으로 4개정도 뽑아와서 document.php쪽에 앉히고 싶습니다.
어떻게 접근을 해야할지 몰라 글 남깁니다.
<?php
$dbc = mysqli_connect('localhost', 'user_name', 'password', 'db_name');
$query = 'select * from wp_kboard_board_option order by rand() limit 4' ;
$data = mysqli_query($dbc, $query);
while($row = mysqli_fetch_array($data)){
print_r($row);
echo "<br/>";
}
?>
이런식으로 짜서 옵션데이터7개를 무작위로 불러오는것 까지는 성공하였습니다.
힌트를 주신다면 응용해서 완성해보도록 하겠습니다.
감사합니다.
감사합니다!!
k보드 관리자님의 도움으로 완성하였습니다.
다른분들도 이글을보고 많은 도움이 되셨으면 좋겠네요!!
안녕하세요.
1. foreach 문 안에서 html 코드를 추가해주시면 됩니다. (아래 코드 참고)
2. 게시글 상세 페이지에서 카테고리는 $content->category1 와 $content->category2 코드를 사용해보세요.
3. $content->uid 로 현재 보고 있는 상세 페이지의 uid를 알 수 있습니다.
위 질문들을 토대로 예제를 작성해봤습니다.
아래의 코드를 적용해보세요.
<?php
global $wpdb;
$results = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}kboard_board_content
WHERE category1 = '{$content->category1}'
AND category2 = '{$content->category2}'
AND uid != {$content->uid}
ORDER BY RAND()
LIMIT 4");
?>
<ul>
<?
$additional_list = array();
foreach($results as $row):
$test = new KBContent();
$test->initWithUID($row->uid);
$tmp = array(
"title" => $test->title,
"uid" => $test->uid,
"product_single" => $test->option->product_single ,
"tablespac1"=> $test->option->tablespac1
);
$additional_list[] = $tmp;
?>
<li class="goods_float">
<a class="" href="<?php echo $url->set('uid', $test->uid)->set('mod', 'document')->toString()?>#kboard-document">
<div class="goods" style="background-image:url('<?php echo $tmp['product_single']; ?>');"></div>
<p> <?php echo $tmp['title'] ?> </p>
<p> <?php echo $tmp['tablespac1'] ?> </p>
</a>
</li>
<div style="clear:both"></div>
<?php endforeach?>
</ul>
적용 후에도 원하는 결과가 나오지 않으신다면 댓글로 남겨주세요.
고맙습니다.
<?php
global $wpdb;
$results = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}kboard_board_content
WHERE category1 = '거성산업'
AND category2 = '장의자'
AND uid != 1
ORDER BY RAND()
LIMIT 4");
$additional_list = array();
foreach($results as $row){
$content = new KBContent();
$content->initWithUID($row->uid);
$tmp = array(
"title" => $content->title,
"uid" => $content->uid,
"product_single" => $content->option->product_single ,
"tablespac1"=> $content->option->tablespac1
);
$additional_list[] = $tmp;
}
?>
<ul>
<li class="goods_float">
<a class="" href="<?php echo $url->set('uid', $content->uid)->set('mod', 'document')->toString()?>#kboard-document">
<div class="goods" style="background-image:url('<?php echo $tmp['product_single']; ?>');"></div>
<p> <?php echo $tmp['title'] ?> </p>
<p> <?php echo $tmp['tablespac1'] ?> </p>
</a>
</li>
<div style="clear:both"></div>
</ul>
이런식으로 코드를 재구성해 거성산업이라는 카테고리속에 장의자라는 카테고리를 찾아서 현재의 uid가 1이아닌 값을 4개 랜덤으로 뿌려라 라고 짜봤는데요.
1. 이런경우에 하나의 html ( ul > li ) 안에 반복문으로 돌리려면 어떤 방법이 있을까요?
2. 쿼리에서 지금은 카테고리1 = 거성산업, 카테고리2 = 장의자로 직접 지정했지만
현재 카테고리1,2 를 인식하게 쿼리를 짜려면 어떻게 수정하면 좋을까요?
3. 마찬가지로 쿼리에서 uid 가 1이 아닌것을 찾았지만 현재 uid를 인식하여 나오지 않게 하려면 어떻게 수정하면 좋을까요?
현재 1개의 제품출력까지는 잘 나오고있습니다.
아래처럼 해보시면 어떨까요?
<?php
global $wpdb;
$results = $wpdb->get_results("select * from {$wpdb->prefix}kboard_board_option where content_uid='{$content->uid}' and (option_key='tablespac3' or option_key='product_single') order by rand() limit 4");
foreach($results as $row){
$content = new KBContent();
$content->initWithUID($row->content_uid);
echo $content->title;
echo $content->option->tablespac3;
echo $content->option->product_single;
}
?>
감사합니다.
kboard_board_content 안에있는 uid를 파악하여
kboard_board_option 안에있는 content_uid값이 일치하는 애들한테서
kboard_board_content 안에있는title과
kboard_board_option 안에있는 option_key값중
텍스트 tablespac3(텍스트)과 product_single(이미지)를 가져온다
최종결과물은
document.php에
<ul>
<li>
<a href="<a href="<?php echo $url->set('uid', $content->uid)->set('mod', 'document')->toString()?>#kboard-document">
<div style="background-image:url("<?php echo '결과물' ?>")
<div><?php echo '결과물' ?></div>
<div><?php echo '결과물' ?></div>
</a>
</li>
이런식으로 하면 되지않을까 싶기는한데..
하단에 4개를 어떻게 지정할지와 <a>태그속 url이 현재 접속된 uid랑 겹치게되지않을까 고민이되네요..
그래도 꼭 완성해보겠습니다. 도움주시면 감사하겠습니다.
결과적으로 문서 하단쪽에 어떻게 나와야하는지 이미지 올려보도록 하겠습니다. 감사합니다.
안녕하세요~^^
카테고리2와 옵션 데이터를 어떤 식으로 연결하고자 하는지 (원하시는지) 잘 이해는 안 갑니다.
일단 mysqli_connect 등 함수 사용 대신 wpdb 클래스를 사용해서 쿼리를 요청해주세요.
아래는 wpdb 클래스를 사용해서 쿼리를 요청하고 결과를 바탕으로 게시글 제목까지 출력하는 예제 코드입니다.
<?php
global $wpdb;
$results = $wpdb->get_results("select * from {$wpdb->prefix}kboard_board_option order by rand() limit 4");
foreach($results as $row){
$content = new KBContent();
$content->initWithUID($row->content_uid);
echo $content->title;
}
?>
스킨의 document.php 파일에 추가해서 응용해보시겠어요?
아니면 좀 더 구체적으로 설명을 해주시겠어요?
저희가 밀린 업무가 많아서 아주 세세하게는 답변드리기 어렵지만 도움드리겠습니다.
고맙습니다.