2011-05-11 6 views
0

사람이 여기에 $ strnamearray [$ i]를 PHP/MySQL의 쿼리 문제

for($i=0; $i<count($strnamearray); $i++){ 
echo $strnamearray[$i]."<br />"; 

$cordcquery = "SELECT `lat` , `lng` FROM `traffic` WHERE `strname` = '{$strnamearray[$i]}' LIMIT 0 , 30;"; 
$cordresult = mysql_query($cordcquery); 

if (!$cordresult) 
{ 
    die('Invalid strncquery: ' . mysql_error()); 
} 

while($cordrow = @mysql_fetch_assoc($cordresult)){ 
    echo $cordrow['lng'].",".$cordrow['lat']; 
    echo "<br />"; 
} 
} 

몇 가지 이름을 포함하는 배열입니다 --- 다음 코드로 잘못 무엇인지 말해 줄 수. 이 PHP 코드를 실행 한 후에 오류가 표시되지 않습니다. 하지만 문제는 내가 원하는 출력을 얻지 못하고 있다는 것입니다 ...

+1

글쎄, 도움이된다. 테이블에 무엇이 있습니까? 배열에 무엇이 있습니까? 당신이 얻는 결과는 무엇입니까? mysqli 나 PDO 대신 준비된 문장을 2011 년에 mysql을 사용하는 이유는 무엇입니까? SQL 인젝션 공격을 받기를 열망합니까? – chx

+0

@chx : mysql을 통해 mysqli를 사용할 때 약간의 이점이있다. 모든 코드가 OOP이거나 항상 그래야하지는 않습니다. – Orbling

+0

우선, "$ cordcquery"는 무엇을 표시합니까? 수동으로 실행할 수 있습니까? SQL을 처리 할 때 출력되는 쿼리가 명령 줄이나 쿼리 창에 입력되어 실행되는지 항상 확인합니다. 둘째로, 이것은 아무런 결과가 아니지만 기능 앞에 "@"를 사용하면 오류 메시지가 표시되지 않습니다. – mardala

답변

0

이것은 더 많은 정보가 있지만 두 가지가있는 여기 어두운 곳에서 찍은 사진입니다.

  1. echo $cordcquery

    는 반드시 SQL 잘 보이는 만들기 위해 당신은 MYSQL에서 직접 실행할 수 있습니다. 내가 말할 수있는 것에서는 변수에 무엇이 있는지 모른 채 잘 모르겠습니다.

  2. LIMIT 0, 30 대신 LIMIT 30을 사용하십시오. 같은 일을해야하지만 어떤 버전의 php와 mysql을 사용하여 LIMIT 오프셋, 행 수을 사용하는지에 따라 약간의 어색함을 보았습니다. 내가 기억할 수있는 것은 오프셋을 취하고 행 수를 구문 분석하지 않으므로 정보를 반환하지 않는다는 것입니다.

이 정보가 도움이되는지 알려주세요.