2013-01-18 6 views
1

누구에게 말해도 MySQL의 모든 결과가 배열에서 끝나지 않는 이유는 무엇입니까?MySQL 결과가 PHP 배열

참고 :이 이전 코드Don't use mysql_* functions in new code입니다. 더 이상 유지 관리되지 않으며 deprecation process이 시작되었습니다. red box을 참조하십시오. prepared statements에 대해 자세히 알아보고 PDO 또는 MySQLi - this article을 사용하면 어떤 결정을 내리는 데 도움이됩니다. PDO를 선택하면 here is a good tutorial입니다.

$result = mysql_query("select * from groups order by id desc"); 

if ($row = $result->fetch()) { 
$groups[] = $row; 
} 
+2

[** 새 코드 **에서 mysql_ * 함수를 사용하지 마십시오 (http : /bit.ly/phpmsql). 더 이상 유지 관리되지 않으며 공식적으로 사용되지 않습니다 (https://wiki.php.net/rfc/mysql_deprecation). [** 빨간색 상자 **] (http://j.mp/Te9zIL)를 참조하십시오. 대신 [* prepared statements *] (http://j.mp/T9hLWi)에 대해 알아보고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용하십시오. mysqli) - [이 기사] (http://j.mp/QEx8IB)는 어떤 결정을 내리는 데 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 튜토리얼입니다] (http://j.mp/PoWehJ). –

+0

공지 사항을 포함하도록 편집했습니다. –

+0

감사합니다. @FrankPresenciaFandos – KeithDert

답변

2

당신이 결과 집합을 통해이 반복되지 않습니다이 코드입니다. 대신이 방법을 사용해보세요.

이 결과에서 다음 행은 내가 대한 mysql_로 코드를 변경 제안하고 싶습니다

을 설정 꺼냅니다 : 가져 오기 때문에

while ($row = $result->fetch()) {  
$groups[] = $row; 
} 
+0

감사합니다. 매우 – KeithDert

3

사용 while하지 if

while ($row = $result->fetch()) { 
    $groups[] = $row; 
} 
+0

매우 감사합니다. – KeithDert

0

php manual에 설명 된대로 행을 페치 (fetch) PDO

$db = new PDO("..."); // Creates the PDO object. Put the right arguments for your connection. 
$statement = $db->prepare("SELECT * FROM groups ORDER BY id DESC"); 
$statement->execute(); 
while ($groups = $statement->fetch()) 
    { 
    // Do whatever you want to do 

    } 
+0

감사합니다. – KeithDert