2012-06-29 26 views
13

Tôi tự hỏi nếu có một hàm trong php có thể cho phép tôi đặt tất cả dữ liệu đã chọn trong một mảng. Hiện tại tôi đang sử dụng mysql_fetch_array và như tôi đã đọc trong hướng dẫn sử dụng, hàm đó đã thắng không tìm nạp mọi bản ghi trong bảng.Nhận tất cả các hàng mysql được chọn vào một mảng

$result = mysql_query("SELECT * FROM $tableName");    
$array = mysql_fetch_array($result); 

    echo json_encode($array); 
+2

Những 'mysql _...' chức năng cũ và không an toàn. Bạn nên sử dụng 'mysqli' hoặc các PDO tốt hơn - http://php.net/manual/en/book.mysqli.php, http://php.net/manual/en/book.pdo.php – Raekye

+0

Như Raeki đã nói, mysql là khá cũ, nhưng khác hơn thế, nếu bạn vẫn muốn loop trough kết quả, bạn có thể làm điều đó với mã sau đây: '$ allRows = array(); while ($ row = mysql_fetch_array ($ result) {$ allRows [] = $ row} ' – toske

+2

Vui lòng không sử dụng các hàm' mysql_ * 'cho mã mới. Chúng không còn được duy trì và cộng đồng đã bắt đầu [quá trình phản đối ] (http://goo.gl/KJveJ) Xem [** hộp màu đỏ **] (http://goo.gl/GPmFd)? Thay vào đó bạn nên tìm hiểu về [báo cáo đã chuẩn bị] (http: // goo .gl/vn8zQ) và sử dụng [PDO] (http://php.net/pdo) hoặc [MySQLi] (http://php.net/mysqli). Nếu bạn không thể quyết định, [bài viết này] (http://goo.gl/3gqF9) sẽ giúp bạn lựa chọn. Nếu bạn quan tâm để tìm hiểu, [đây là hướng dẫn PDO tốt] (http://goo.gl/vFWnC) –

Trả lời

39

tôi sẽ đề nghị việc sử dụng MySQLi hoặc MySQL PDO cho hiệu suất và an ninh mục đích, nhưng để trả lời câu hỏi:

while($row = mysql_fetch_assoc($result)){ 
    $json[] = $row; 
} 

echo json_encode($json); 

Nếu bạn chuyển sang mysqli bạn có thể làm:

$json = mysqli_fetch_all ($result, MYSQLI_ASSOC); 
echo json_encode($json); 
5

Bạn có thể thử:

$rows = array(); 
while($row = mysql_fetch_array($result)){ 
    array_push($rows, $row); 
} 
echo json_encode($rows); 
7
  1. Vòng qua các kết quả và đặt mỗi một trong một mảng

  2. sử dụng mysqli_fetch_all() để có được tất cả chúng cùng một lúc

1
$name=array(); 
while($result=mysql_fetch_array($res)) { 
    $name[]=array('Id'=>$result['id']); 
    // here you want to fetch all 
    // records from table like this. 
    // then you should get the array 
    // from all rows into one array 
} 
Các vấn đề liên quan