[英]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.