2011-02-08 6 views
0
$data = mysql_query("SELECT * FROM users); 

이제 데이터는 $data 변수에 저장됩니다. mysql 데이터를 배열에 저장하고 그것을 반환하고 싶습니다.MySQL 쿼리 mysql_fetch_array

$data_array = mysql_fetch_assoc($data); 

이렇게하면 데이터의 첫 번째 행 (첫 번째 배열)이 저장됩니다.

지금 내가해야 할 모든 행을 저장하고 있습니다.

답변

-1
$res = mysql_query($sql); 
    $data = array(); 
    while(($row[] = mysql_fetch_array($res)) !== false) { 
    } 
-1

결과 세트가 크다면 그렇게하는 것이 좋지 않습니다. 이 과정에서 많은 메모리가 인 을 사용할 수 있습니다.

는이 같은 배열 전체를 저장할 수,했다 가졌 :

<?php 

$query="select * from table_xyz"; 
$result = mysql_query($query) or die(mysql_error()); 
$arr_table_result=mysql_fetch_full_result_array($result); 

function mysql_fetch_full_result_array($result) 
{ 
    $table_result=array(); 
    $r=0; 
    while($row = mysql_fetch_assoc($result)){ 
     $arr_row=array(); 
     $c=0; 
     while ($c < mysql_num_fields($result)) {   
      $col = mysql_fetch_field($result, $c);  
      $arr_row[$col -> name] = $row[$col -> name];    
      $c++; 
     }  
     $table_result[$r] = $arr_row; 
     $r++; 
    }  
    return $table_result; 
} 

?> 

Got the code sample from the PHP site합니다.

+2

성령 아니네. 쿼리를 적절하게 작성하여 (* 대신 별칭이있는 필드를 지정하면) 전체 비즈니스를 피할 수 있습니다. 그런 다음 $ 행에는 이러한 필드 별칭이 키로 포함되어 다른 테이블에 포함됩니다. 전체 코드 블록은 약 6 줄로 줄어들 것입니다. –

3

표준 접근법 :

$res = mysql_query($sql); 
    $data = array(); 
    while(($row = mysql_fetch_array($res)) !== false) { 
     $data[] = $row; 
    } 

// now $data is an array with all rows 

http://php.net/manual/en/function.mysql-fetch-array.php

는 행이 더 이상없는 경우가 페치 행에 대응하는, 또는 FALSE 문자열의 배열을 반환.

이 접근법은 mysql_fetch_* 기능과 함께 작동합니다. 추한

1
while ($row = mysql_fetch_assoc($data)) 
    { 
    array_push($data_array,$row); 
    } 
+0

파블로 산토 크루즈 (Pablo Santo Cruz)의 차이점은 무엇입니까? –