2014-12-15 7 views
-5

print_r commant를 사용하여 내 출력foreach 루프가 제대로 작동하지 않습니다 (PHP) 여기

enter image description here

내 코드

$query = mysql_query("SELECT * FROM accommodation_vacancies WHERE accommodation_id = '$accom'"); 
$results = mysql_fetch_array($query); 
if($query === FALSE) { 
    die(mysql_error()); 
} else { 
    print_r($results); 
    foreach ($results as $result) { 
     echo $result['start_date']; echo "<br/>"; 
    }   
} 

입니다 그리고 여기에 볼 수있는 변수 $results 작품 제대로 쿼리가 제대로 작동합니다, 나는 foreach 루프에 실수가 있다고 생각합니다. 감사합니다.

+3

[mysql_ *'functions] (http://stackoverflow.com/questions/12859942/why-shouldnt-use-mysql-functions-in-php)를 사용하지 마십시오. 더 이상 사용하지 않습니다. (공식적으로 권장되지 않음) (https://wiki.php.net/rfc/mysql_deprecation). 대신 [prepared statements] (http://en.wikipedia.org/wiki/Prepared_statement)에 대해 알아보고 [PDO] (http://us1.php.net/pdo) 또는 [MySQLi] (http : //)를 사용하십시오. us1.php.net/mysqli). –

답변

6

단일 결과 만 가져 오는 중입니다. 대신 while 루프를 사용하십시오.

while ($result = mysql_fetch_array($query)) { 

사이드 노트 : 주석에 명시된 바와 같이 mysql_* 기능은 더 이상 사용되지 않습니다. 이 사용되지 않는 메소드를 사용하여 mysql을 사용하는 방법을 배워서는 안된다. PHP는 향후 버전에서 제거 될 것이므로 코드가 작동하지 않을 것입니다. 배우면 mysqli_* 또는 PDO를 사용하십시오.

+0

그렇지만 다른 경우에는 결과가 1보다 클 수 있습니다. – user3537552

+0

얼마나 많은 결과가 있는지는 중요하지 않습니다. 당신이하는 방식으로 당신은 오직 하나를 가져옵니다. 나머지는 버려집니다. 모든 결과를 가져 오는 일반적인 방법은 while 루프입니다. –

+0

오케이! 대단히 감사합니다! – user3537552

관련 문제