2016-11-13 104 views
-2

我已經看到了其他解決方案,但是他們並沒有像下面描述的那樣將數據放到php數組中。將mysql數據庫轉換爲特定格式的php數組

我有一個數據庫稱爲:用戶

在數據庫中有許多例如愛麗絲,鮑勃

每個表具有以下例如, ID,姓名,年齡

我想獲得的所有數據,並把它變成一個PHP數組,像這樣:

Array 
(
[db_users] => Array 
    (
    [0] => Array 
     (
      [id] => 1 
      [name] => alice 
      [age] => 34 
     ) 
    [1] => Array 
     (
      [id] => 2 
      [name] => bob 
      [age] => 42 
     ) 
    ) 
) 
+3

WOW:數據庫設計災難,如果您的描述是準確的 – RiggsFolly

+0

如果您看到其他解決方案...他們都包含代碼。如果您不顯示我們,我們不知道您嘗試過哪些方法無效。這不是一個代碼寫入服務 – charlietfl

回答

1

你應該有1臺名爲Usersnameid,和age愛麗絲,鮑勃等。人。在該表中獲得一行。現在你有一個簡單的查詢將返回你想要的數組。

SELECT * FROM Users 

下面是MySQL的

CREATE TABLE Users (
    id INT PRIMARY KEY AUTO_INCREMENT, 
    name VARCHAR(255), 
    age INT 
); 

INSERT INTO Users (name, age) VALUES 
    ('Alice', 34), 
    ('Bob', 42); 

爲例架構下面是使用PDO

<?php 

// returns an intance of PDO 
// https://github.com/jpuck/qdbp 
$pdo = require __DIR__.'/example_DhBXcw_A.pdo.php'; 

$sql = 'SELECT * FROM Users'; 

$array = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC); 

print_r($array); 

結果在這個輸出

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [name] => Alice 
      [age] => 34 
     ) 

    [1] => Array 
     (
      [id] => 2 
      [name] => Bob 
      [age] => 42 
     ) 

) 
爲例
0

在這裏你有一些幫助。 注意:我還沒有測試過這個代碼,它只是你可以使用的東西。

<?php 
    $result = []; 
    $connection = new PDO("host","dbname","username","password"); 

    $tables = $connection->prepare("show table"); 
    //add ' from [your database name]' to get the tables from specific db. 
    $tables->execute(); 

    foreach($tables->fetchAll() as $table){ 
     $query = $connection->prepare("SELECT * FROM $table"); 
     $query->execute(); 
     //or do another foreach to do some fance stuff, no idea what this outputs. 
     array_push($result,array($table => $query->fetchAll())); 
    } 
?> 
相關問題