2014-02-27 21 views
0

我需要這種格式來創建JSON數據:取從兩個MySQL表中的數據導出到JSON

{ 
    "cols": [{ 
     "label": "ID", 
     "type": "number" 
    }, { 
     "label": "Vrsta", 
     "type": "string" 
    }, { 
     "label": "Artikl", 
     "type": "string" 
    }, { 
     "label": "Neto kol", 
     "type": "number" 
    }, { 
     "label": "Bruto kol", 
     "type": "number" 
    }, { 
     "label": "Mera", 
     "type": "string" 
    }, { 
     "label": "Neto iznos", 
     "type": "number" 
    }, { 
     "label": "Bruto", 
     "type": "number" 
    }, { 
     "label": "Porez", 
     "type": "number" 
    }, { 
     "label": "Dobavljac", 
     "type": "string" 
    }, { 
     "label": "Datum", 
     "type": "date" 
    }, { 
     "label": "Skladiste", 
     "type": "string" 
    }, { 
     "label": "Valuta", 
     "type": "string" 
    }, { 
     "label": "Placeno", 
     "type": "string" 
    }, { 
     "label": "Nacin placanja", 
     "type": "string" 
    }, { 
     "label": "Placeni iznos", 
     "type": "number" 
    }, { 
     "label": "Opis", 
     "type": "string" 
    }], 
    "rows": [{ 
     "c": [{ 
      "v": 1 
     }, { 
      "v": "gorivo" 
     }, { 
      "v": "biodizel" 
     }, { 
      "v": 22 
     }, { 
      "v": 22 
     }, { 
      "v": "l" 
     }, { 
      "v": 29 
     }, { 
      "v": 36 
     }, { 
      "v": 20 
     }, { 
      "v": "Nis" 
     }, { 
      "v": "Date(2014, 02, 25)" 
     }, { 
      "v": "Bure 5" 
     }, { 
      "v": "e" 
     }, { 
      "v": "Da" 
     }, { 
      "v": "gotovinsko" 
     }, { 
      "v": 36 
     }, { 
      "v": "kupljeno gorivo za setvu" 
     }] 
    }, { 
     "c": [{ 
      "v": 2 
     }, { 
      "v": "djubrivo" 
     }, { 
      "v": "b432" 
     }, { 
      "v": 5 
     }, { 
      "v": 5 
     }, { 
      "v": "m3" 
     }, { 
      "v": 100 
     }, { 
      "v": 120 
     }, { 
      "v": 20 
     }, { 
      "v": "STR polja" 
     }, { 
      "v": "Date(2014, 02, 25)" 
     }, { 
      "v": "dvoriste iza" 
     }, { 
      "v": "e" 
     }, { 
      "v": "da" 
     }, { 
      "v": "kompenzacija" 
     }, { 
      "v": 120 
     }, { 
      "v": "Djubrenje" 
     }] 
    }] 
} 

,但我這樣做有一個表,此代碼:

try { 
     /* Establish the database connection */ 
     $conn = new PDO("mysql:host=localhost;dbname=$dbname", $username, $password); 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

     /* select all the weekly tasks from the table googlechart */ 
     $result = $conn->query('SELECT * FROM zalihe'); 

     $rows = array(); 
     $table = array(); 
     $table['cols'] = array(

     array('label' => 'ID', 'type' => 'number'), 
     array('label' => 'Vrsta', 'type' => 'string'), 
    array('label' => 'Artikl', 'type' => 'string'), 
    array('label' => 'Neto kol', 'type' => 'number'), 
     array('label' => 'Bruto kol', 'type' => 'number'), 
    array('label' => 'Mera', 'type' => 'string'), 
     array('label' => 'Neto iznos', 'type' => 'number'), 
    array('label' => 'Bruto', 'type' => 'number'), 
     array('label' => 'Porez', 'type' => 'number'), 
     array('label' => 'Dobavljac', 'type' => 'string'), 
     array('label' => 'Datum', 'type' => 'date'), 
     array('label' => 'Skladiste', 'type' => 'string'), 
     array('label' => 'Valuta', 'type' => 'string'), 
     array('label' => 'Placeno', 'type' => 'string'), 
     array('label' => 'Nacin placanja', 'type' => 'string'), 
     array('label' => 'Placeni iznos', 'type' => 'number'), 
     array('label' => 'Opis', 'type' => 'string') 
    ); 
     /* Extract the information from $result */ 
     foreach($result as $r) { 
      $temp = array(); 
      // the following line will be used to slice the Pie chart 
      $temp[] = array('v' => (int) $r['ID']); 
      $temp[] = array('v' => (string) $r['vrsta']); 
      $temp[] = array('v' => (string) $r['artikl']); 
      $temp[] = array('v' => (int) $r['neto_kol']); 
      $temp[] = array('v' => (int) $r['bruto_kol']); 
      $temp[] = array('v' => (string) $r['jmere']); 
      $temp[] = array('v' => (int) $r['neto_iznos']); 
      $temp[] = array('v' => (int) $r['bruto_iznos']); 
      $temp[] = array('v' => (int) $r['porez']); 
      $temp[] = array('v' => (string) $r['dobavljac']); 
      $temp[] = array('v' => 'Date('.str_replace('-',', ',($r['datum'])).')'); 
      $temp[] = array('v' => (string) $r['skladiste']); 
      $temp[] = array('v' => (string) $r['valuta']); 
      $temp[] = array('v' => (string) $r['placeno']); 
      $temp[] = array('v' => (string) $r['nacin_placanja']); 
      $temp[] = array('v' => (int) $r['placeni_iznos']); 
      $temp[] = array('v' => (string) $r['opis']); 


      // Values of each slice 

      $rows[] = array('c' => $temp); 
     } 

    $table['rows'] = $rows; 

    // convert data into JSON format 
    $jsonTable = json_encode($table); 
    //echo $jsonTable; 
    } catch(PDOException $e) { 
     echo 'ERROR: ' . $e->getMessage(); 
    } 
    echo $jsonTable; 

現在我從那裏,我需要得到的數據也並放在同一個JSON文件多了一個表:

,這表是:

CREATE TABLE IF NOT EXISTS `skladista` (
    `ID` int(11) NOT NULL AUTO_INCREMENT, 
    `naziv` text NOT NULL, 
    `kapacitet` int(11) NOT NULL, 
    `jmere` text NOT NULL, 
    `vlasnistvo` text NOT NULL, 
    `beleske` text NOT NULL, 
    PRIMARY KEY (`ID`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

現在怎麼我可以從第二個表"skladista"到PHP文件添加數據並創建兩個MySQL表一個PHP-JSON文件...

我會很容易地添加「的cols」 becouse它只是「字符串名稱「但後來我需要從第二個表中取數據...

所以如何:mysql表」zalihe「+」skladista「=一個json文件?

請幫忙!

+0

所以我需要新的查詢:$諾維= $ conn->查詢( 'SELECT * FROM skladista'); - 然後我需要每個循環新的,但如何將數據添加到最終結果(json)? – gmaestro

+0

首先準備數組(cols + rows),之後嘗試將它們轉換爲JSON。 – mi6crazyheart

+0

怎麼樣,請告訴我例子 – gmaestro

回答

1

可能是這個小例子可以幫助你..

// Get the max key of your already existed $temp array 
$max_key_val = max(array_keys($temp)); 

// Fetch data from table-skladista 
$data = mysql_query("Your-SQL-query"); 
while($row = mysql_fetch_array($data)) 
{ 
    $temp[$max_key_val++] = array('v' => $row['tbl_col_name']); 
} 

// Then follow your same procedure 
$rows[] = array('c' => $temp); 
$table['rows'] = $rows; 

$jsonTable = json_encode($table); 
+0

我會試試這個代碼 – gmaestro

+0

對於PDO,你必須相應地修改一些代碼。 – mi6crazyheart