2013-01-11 2 views
0

php/mysql에서 매우 이상한 동작이 발생합니다. 현재 이름, 주소, 위도, 경도 및 유형 값이있는 위치의 데이터베이스가 있습니다.PHP를 사용하여 XML을 생성 할 때 이상한 행동이 발생했습니다.

나는 코드가 작동하려면 나타나는 데이터베이스

<?php 
require("dbinfo.php"); 

function parseToXML($htmlStr) 
{ 
    $xmlStr=str_replace('<','&lt;',$htmlStr); 
    $xmlStr=str_replace('>','&gt;',$xmlStr); 
    $xmlStr=str_replace('"','&quot;',$xmlStr); 
    $xmlStr=str_replace("'",'&#39;',$xmlStr); 
    $xmlStr=str_replace("&",'&amp;',$xmlStr); 
    return $xmlStr; 
} 

// Opens a connection to a MySQL server 
$connection=mysql_connect (localhost, $username, $password); 
if (!$connection) 
{ 
    die('Not connected : ' . mysql_error()); 
} 

// Set the active MySQL database 
$db_selected = mysql_select_db($database, $connection); 
if (!$db_selected) 
{ 
    die ('Can\'t use db : ' . mysql_error()); 
} 

// Select all the rows in the markers table 
$query = "SELECT * FROM markers WHERE 1"; 
$result = mysql_query($query); 
if (!$result) 
{ 
    die('Invalid query: ' . mysql_error()); 
} 

header("Content-type: text/xml"); 

// Start XML file, echo parent node 
echo '<markers>'; 

// Iterate through the rows, printing XML nodes for each 
while ($row = @mysql_fetch_assoc($result)) 
{ 
    if($row['lat'] != 0 && $row['lng'] !=0) 
    { 
     // ADD TO XML DOCUMENT NODE 
     echo '<marker '; 
     echo 'name="' . parseToXML($row['name']) . '" '; 
     echo 'address="' . parseToXML($row['address']) . '" '; 
     echo 'lat="' . $row['lat'] . '" '; 
     echo 'lng="' . $row['lng'] . '" '; 
     echo 'type="' . $row['type'] . '" '; 
     echo '/>'; 
    } 
} 
// End XML file 
echo '</markers>'; 

?> 

에서 XML을 생성하기 위해 다음 코드를 사용하지만,하고는 기분 경우에만. 때로는 적절한 XML을 생성하지만 대개 아무것도 수행하지 않고 빈 페이지를 반환합니다. 나는 그런 행동을 한 번도 본 적이 없다. 내가 잘못하고있는 것을 누군가는 알고 있는가? 이것이 도움이된다면 나는 이것을 MAMP에서 실행하고있다. 누구가 무슨 일이 일어나는지 알아?

답변

2

@mysql_fetch_assoc ($ result)은 sql 오류를 방지합니다. 무시당하는 약간의 문제가있을 수 있습니다. 그것을 mysql_fetch_assoc ($ result)로 변경하고 무슨 일이 일어나는지 보자.

관련 문제