簡體   English   中英

如何在php中從mysql數據庫將數據存儲為關聯數組

[英]how to store data as an associative array from mysql database in php

我想實現將數據作為關聯數組從mysql數據庫中的數據存儲在php中,但是當我僅以數組形式顯示結果時,它會向我顯示mysql表中最后插入的結果。 我的代碼:-

public function displayresult(){
    $result = mysql_query('SELECT * FROM user');
    $num = mysql_num_rows($result);
    if(mysql_num_rows($result) > 0){
        for($i=0;$i<=$num;$i++){        
            while($row=mysql_fetch_array($result)){
                $data[$i]['name']=$row['name'];
                $data[$i]['contact']=$row['contact'];
            }
        }
    }
    return $data;
}
print_r(displayresult());

以上代碼顯示的結果是:

 Array
  (
  [0] => Array
    (
        [name] => jason
        [contact] => 4098979774
    )

)

它並不會顯示所有結果,而只會顯示最后插入的結果。 請幫忙。

您真的不需要其他麻煩,只需正常推動它們即可:

public function displayresult(){
    $result = mysql_query('SELECT * FROM user');
    $num = mysql_num_rows($result);
    if(mysql_num_rows($result) > 0){  
        while($row = mysql_fetch_assoc($result)){ // use fetch_assoc 
            $data[] = array('name' => $row['name'], 'contact' => $row['contact']);
        }  
    }
    return $data;
}
print_r(displayresult());

或者更好:

public function displayresult(){
    $result = mysql_query('SELECT name, contact FROM user');
    $num = mysql_num_rows($result);
    if(mysql_num_rows($result) > 0){  
        while($row = mysql_fetch_assoc($result)){
            $data[] = $row;
        }  
    }
    return $data;
}
print_r(displayresult());

注意:順便說一下,如果可能,請使用更好的擴展名,即mysqli或PDO。

只需從代碼中刪除for循環即可。 當您擁有foor循環時,內部的while循環將使用結果,並且與所有數據相關的數據都將插入到同一索引中。

public function displayresult(){
    $result = mysql_query('SELECT * FROM user');
    $num = mysql_num_rows($result);
    if(mysql_num_rows($result) > 0){
        /* loop removed */       
        while($row=mysql_fetch_array($result)){
            $data[]=array("name"=>$row['name'],"contact"=>$row['contact']);
        }

    }
    return $data;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM