마커 생성하기

이명진·2022년 3월 22일

현재 마커가 나타나는 방식은 php에 직접 작성을 해서 불러오는 방식이다.
이름이나 죄표, 주소 등등을 DB에서 불러오기는 하지만 틀을 직접 짜놨고 마커의 수만큼 코드의 길이를 차지한다.

var positions = [
          {
            index: 1,
            title: '올래곱창',
            latlng: new kakao.maps.LatLng(<?php echo $row["location"] ?>),
            content: '<div class="overlaybox">' +
            '    <div class="boxtitle"><?php echo $row["restaurantName"]?></div>' +
            '    <div class="first">' +
            '        <div class="triangle"></div>' +
            '        <div class="categori"><?php echo $row["categori"]?></div>' +
            '    </div>' +
            '    <div class="instaId"><?php echo $row["instaId"]?></div>' +
            '    <ul class="information">' +
            '        <li class="address">' +
            '            <div class="addr">주소</div>' +
            '            <div class="addr1"><?php echo $row["addr1"]?></div>' +
            '            <div class="addr2"><?php echo $row["addr2"]?></div>' +
            '        </li>' +
            '        <li class="review">' +
            '            <div class="review1">한줄평</div>' +
            '            <div class="review2"><?php echo $row["review"]?></div>' +
            '        </li>' +
            '    </ul>' +
            '</div>'
          },

마커 하나당 이정도의 길이를 차지하고 마커가 추가될 떄 마다 수정할 수 없으니 이를 반복문으로 작성하여 표시해야한다.

restaurants테이블를 select * 해서 num_rows()로 전체 결과의 수 만큼 반복해서 작성해보려고 한다.

DB에서 특정 행을 추출하는 방법이다.

select @rownum:=@rownum+1, A.* from restaurants A, (select @rownum:=0) R;

idx = 2 인 행을 삭제했지만 행 순서대로 나오는 걸 확인할 수 있다.

@rownum 으로 값을 가져와서 해당 행에 해당하는 값만 호출하기

<?php
include"./inc/dbcon.php";

$sql = "select * from restaurants;";
echo $sql;

$result = mysqli_query($dbcon,$sql);
$row = mysqli_num_rows($result);
echo "<br>";
echo $row;

$sql = "select R.* from (select @rownum:=@rownum+1 as row, A.* from restaurants A where (@rownum:=0)=0) R where row = 2;";
echo "<br>";
echo $sql;

$set = "set @rownum = 0;";
mysqli_query($dbcon,$set);
$result = mysqli_query($dbcon,$sql);
$row = mysqli_fetch_assoc($result);
echo "<br>";
echo $row["addr1"];


?>

profile
프론트엔드 뉴비

0개의 댓글