Kezdőoldal » Számítástechnika » Programozás » MySQL táblából JSON - hogyan?

MySQL táblából JSON - hogyan?

Figyelt kérdés

Van nekem egy ilyen MySQL-táblám:

[link]

szeretnék belőle egy ilyen JSON-objektumot:

[link]


Hogyan lehetne ezt elegánsan megoldani?



2014. okt. 8. 00:33
 1/4 anonim ***** válasza:

<?php


$d = new DOMDocument();

if (@$d->loadHTMLFile(' [link] === TRUE) {

foreach($d->getElementsByTagName('a') as $a) if ($a->nodeValue === 'raw code') {

$s = array(); preg_match_all('/\|\s*(\d+)\s*\|\s*(\d+)\s*\|\s*(.+?)\s*\|/', file_get_contents($a->getAttribute('href')), $g);

for ($i = 0; $i < count($g[0]); ++$i) $s[$g[1][$i]] = array('name' => $g[3][$i], 'pid' => $g[2][$i], 'children' => array());

$r = array(); foreach ($s as &$v) if (array_key_exists($v['pid'], $s)) $s[$v['pid']]['children'][] = &$v; else $r[] = &$v;

unset($s); echo json_encode($r); break;

}

}


?>

2014. okt. 8. 02:37
Hasznos számodra ez a válasz?
 2/4 Drone007 ***** válasza:

#1 hehe ez vicces volt :)

De komolyan: a táblát először is nyilván meg kell nyitnod és ki kell szedned belőle az adatokat. Ez soronként menni is fog mondjuk mysqli vagy pdo segítségével. A sorokat tömbként egy másik tömb elemeiként mented el, majd a végleges több dimenziós tömbre ráengeded a json_encode függvényt és kész is vagy.

2014. okt. 8. 08:50
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:
ó, ha jól emlékszem O(n * n!), úgyhogy produkciós kódban ne használjátok xd
2014. okt. 8. 12:21
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:

No végül megoldottam:

1. Először kilistázom a MYSQL táblában található csomópontokat

{"ID":1,"PID":0,"Name":"John"}

formában:

[link]


2. Majd ezt Javascriptben lekérve:

[link]

alakítom át:

[link]

2014. okt. 11. 14:06

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!