Как сохранить данные в виде ассоциативного массива из базы данных MySQL в Stack Overflow

Я хочу добиться сохранения данных в виде ассоциативного массива из базы данных 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
)

)

Он показывает не все результаты, а только последний добавленный результат. Пожалуйста помоги.

2

Решение

Вам действительно не нужно больше никаких сложностей с этим, просто нажмите их нормально:

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.

3

Другие решения

Просто удалите цикл 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;
}
1