2013-06-06 4 views
1

foreach 루프를 사용하여 테이블을 채울 값을 설정하려고합니다. 어떤 이유로 인해 배열에 null 값이 표시됩니다. 하지만 내가 var에 $ result_list []를 덤프하면 제품 배열이 표시됩니다. 내가 잘못 했나요? 덕분에Mysql 가져 오기 배열 Foreach

$result = mysql_query("SELECT id, product, price FROM products"); 


$result_list = array(); 
while($row = mysql_fetch_array($result)) { 
    $result_list[] = $row; 
} 

foreach($result_list as $row) { 

    $productitems[] = array(
     'id' => $row->id, 
     'product' => $row->product, 
     'price' => $row->price 
    );    
} 

var_dump($productitems); 


array(2) { [0]=> array(3) { ["id"]=> NULL ["product"]=> NULL ["price"]=> NULL } [1]=> array(3) { ["id"]=> NULL ["product"]=> NULL ["price"]=> NULL } } 
+0

이 아니 $ 로우 -> 아이디하지만 $ 행 [ 'ID'] – GGio

+0

마 더 이상 사용되지 않는'mysql_ * '함수를 사용하지 마라. – Voitcus

+0

더 이상 사용되지 않는 것은 무엇입니까? – Brent

답변

6
foreach($result_list as $row) { 

    $productitems[] = array(
     'id' => $row['id'], 
     'product' => $row['product'], 
     'price' => $row['price'] 
    );    
} 

시도해보십시오.

+0

고마워. :) – Brent

1

변경을,

foreach($result_list as $row) { 
    $productitems[] = array(
     'id' => $row['id'], 
     'product' => $row['product'], 
     'price' => $row['price'] 
    ); 
} 

참고 :Please, don't use mysql_* functions in new code. 그들은 더 이상 유지되지 않습니다 and are officially deprecated. red box을 참조하십시오. prepared statements에 대해 자세히 알아보고 PDO 또는 MySQLi - this article을 사용하면 어떤 결정을 내리는 데 도움이됩니다. PDO를 선택하면 here is a good tutorial입니다.

+1

덕분에이 기능이 더 이상 사용되지 않아 감사합니다 : D – Brent

+0

그래, 그래야한다. 다행이다. :) – Rikesh

1

귀하의 질문에 대답을 배열로하지 개체로하지만 여전히 여전히 개체로 액세스하려고 시도 $row->id. 대신 $row['id'], $row['product'], $row['price']을 사용하십시오.

기능을 대신은 PDO와 얼마나 간단한 보면, 예를 들어, PDO 또는 MySQLi를 사용 * mysql_로 사용하지 마십시오 :

$productitems = $pdo->fetchAll(\PDO::FETCH_ASSOC); and then use foreach 
+0

이 조사 할 예정입니다. 답장을 보내 주셔서 감사합니다. – Brent