테스트 사이트 - 개발 중인 베타 버전입니다

php 정의되지 않은 변수..

LEE1234 4년 전 조회 5,542

구글맵에 마커찍는 거 하고 있는데 mainpage.php에서 $data['idx'], $data['lng'], $data['lat'] 가 정의되지 않은변수라고 오류가 나오네요... lib.php파일에 db연동하는 코드 넣었구 mysql에도 lat필드랑 lng필드에 값 다 넣었는데 왜 오류가 나는걸까요..? 정말 모르겠습니다.. 혹시 몰라 lib.php 파일도 올리겠습니다.

lib.php(DB연동 부분)

</p>

<p><?</p>

<p> </p>

<p>    error_reporting(1);</p>

<p>    ini_set("display_errors", 1);</p>

<p>

 </p>

<p>    $connect = mysqli_connect("localhost", "root", "1234", "carsharing") or die("MySQL 접속 실패!! ");</p>

<p> </p>

<p>    if(mysqli_connect_error()){</p>

<p>        echo "mysql 접속중 오류가 발생했습니다. ";</p>

<p>        echo mysqli_connect_error();</p>

<p>    }</p>

<p>

mainpage.php

<?</p>

<p>  include "lib.php";</p>

<p>?></p>

<p> </p>

<p><!DOCTYPE html></p>

<p><html></p>

<p>  <head></p>

<p>    <title>Simple Map</title></p>

<p>    <script src="<a href="https://polyfill.io/v3/polyfill.min.js?features=default"></script>" target="_blank" rel="noopener noreferrer">https://polyfill.io/v3/polyfill.min.js?features=default"></script></a></p>

<p>    <style type="text/css"></p>

<p>      /* Always set the map height explicitly to define the size of the div</p>

<p>       * element that contains the map. */</p>

<p>      #map {</p>

<p>        height: 100%;</p>

<p>      }</p>

<p> </p>

<p>      /* Optional: Makes the sample page fill the window. */</p>

<p>      html,</p>

<p>      body {</p>

<p>        height: 100%;</p>

<p>        margin: 0;</p>

<p>        padding: 0;</p>

<p>      }</p>

<p>    </style></p>

<p>    <script></p>

<p>      let map;</p>

<p> </p>

<p>      function initMap() {</p>

<p>        map = new google.maps.Map(document.getElementById("map"), {</p>

<p>          center: { lat: 37.67606384745595, lng: 126.74730456163915 },</p>

<p>          zoom: 15,</p>

<p>        });</p>

<p> </p>

<p>    const myLatLng = { lat: 37.67606384745595, lng: 126.74730456163915 };</p>

<p> </p>

<p>    new google.maps.Marker({</p>

<p>    position: myLatLng,</p>

<p>    map,</p>

<p>    title: "Hello World!",</p>

<p> </p>

<p>  });</p>

<p> </p>

<p>  <?</p>

<p>  $query = "select * from map ";</p>

<p>  $result = mysqli_query($connect, $query);</p>

<p> </p>

<p>  while($data = mysqli_fetch_array($result)){</p>

<p>  ?></p>

<p>    const myLatLng<?=$data['idx']?> = { lat: <?=$data['lat']?>, lng: <?=$data['lng']?> }; //오류</p>

<p> </p>

<p>    new google.maps.Marker({</p>

<p>    position: myLatLng<?=$data['idx']?>, //오류 Undefined variable: data in <b>C:\xampp\htdocs\mainpage.php</b> on line <b>49</b>
</p>

<p>    map,</p>

<p>    title: "<=$data['title']?>",</p>

<p>    });</p>

<p><? } ?></p>

<p>      }</p>

<p>    </script></p>

<p>  </head></p>

<p>  <body></p>

<p>    <div id="map"></div></p>

<p> </p>

<p>    <!-- Async script executes immediately and must be after any DOM elements used in callback. --></p>

<p>    <script</p>

<p>      src="<a href="https://maps.googleapis.com/maps/api/js?key=AIzaSyADE6zw1xt9mEbQYvRuJS7_rGDX5Su0Et0&callback=initMap&libraries=&v=weekly"" target="_blank" rel="noopener noreferrer">https://maps.googleapis.com/maps/api/js?key=AIzaSyADE6zw1xt9mEbQYvRuJS7_rGDX5Su0Et0&callback=initMap&libraries=&v=weekly"</a></p>

<p>      async</p>

<p>    ></script></p>

<p>  </body></p>

<p></html>

댓글을 작성하려면 로그인이 필요합니다.

답변 6개

LEE1234
4년 전

감사합니다 해결했습니다!

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

엑스엠엘
4년 전
무엇이 문제였나 궁금하네요. :)

댓글을 작성하려면 로그인이 필요합니다.

sad4u
4년 전

데이터베이스 연동이 안되는거 같네요. 연동되는지 확인부터 필요합니다.

while($data = mysqli_fetch_array($result)) 도달하기 전에

먼저 print_r($result) 로 먼저 확인한번 해보세요

 


 
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

4년 전

'map' 테이블이 없거나 'map' 테이블에 'idx', 'lng', 'lat' 칼럼이 없을 가능성이 큽니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

플래토
4년 전
while($data = mysqli_fetch_array($result)){
  ?>

이 부분에서

 

 

while($data = mysqli_fetch_array($result)){
   print_r($data);
  ?>

를 해보세요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

db table "map"에

idx, lat,lng
 

이런 컬럼이 있는걸까요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

L
LEE1234
4년 전
네 컬럼들 다 만들어 놓고 테스트용으로 데이터도 하나 넣어놓았습니다... 혹시 db연동이 안되고 있어서 그럴수도 있을까요?
L
LEE1234
4년 전
db연동은 그렇다 치고 구글맵도 안나오고있는상황입니다..

댓글을 작성하려면 로그인이 필요합니다.

 const myLatLng<?=$data['idx']?> = { lat: <?=$data['lat']?>, lng: <?=$data['lng']?> }; //오류
 

브라우저 소스보기"에서 위 부분이 어떻게 나타나나요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

L
LEE1234
4년 전
<b>Notice</b>: Undefined variable: data in <b>C:\xampp\htdocs\mainpage.php</b> on line <b>49</b><br />
= { lat: <br />
<b>Notice</b>: Undefined variable: data in <b>C:\xampp\htdocs\mainpage.php</b> on line <b>49</b><br />
, lng: <br />
<b>Notice</b>: Undefined variable: data in <b>C:\xampp\htdocs\mainpage.php</b> on line <b>49</b><br />
};
이렇게 나옵니다 ㅠㅠ 변수 세개를 다 인식을 못하는것같아요

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인