MYSQL de aşağıdaki gibi bir tablo var. Bu tablodan aşağıdaki gibi bir JSON elde etmek mümkün mü? Mümkünse sadece SQL ve php ile mi yapabiliriz sanırım.
[
{
"seri":"Naruto",
"random": [
{
"klasor": "300",
"yol": ["1.jpg", "2.jpg", "3.jpg"]
},
{
"klasor": "301",
"yol": ["1.jpg", "2.jpg", "3.jpg"]
}
]
},
{
"seri":"One Piece",
"random": [
{
"klasor": "788",
"yol": ["1.jpg", "2.jpg", "3.jpg"]
},
{
"klasor": "789",
"yol": ["1.jpg", "2.jpg", "3.jpg"]
}
]
}
]
API index.php:
function getMangas () {
$sql = "SELECT seri,klasor,yol FROM okuma";
try {
$db = getConnection();
$stmt = $db->query($sql);
$nArray = array();
while( $mangas = $stmt->fetch(PDO::FETCH_ASSOC) ) {
$nArray[array_unique($mangas["seri"])][] = array('klasor' => array_unique($mangas['klasor']), 'yol' => explode(",", $mangas['yol']));
}
Çözdüm birinden yardım alarak. Çözüm:
while($mangas = $stmt->fetch(PDO::FETCH_ASSOC) ) {
// debug, run this to see what data comes out
//print_r($mangas);
$nArray[$mangas['seri']][$mangas['klasor']]['yol'][] = $mangas['yol'];
// short path: preg_replace('~^.*/~', '', $mangas['yol'])
}
//print_r($nArray); //debug to see the full array
foreach ($nArray as $seri => $d1) {
foreach ($d1 as $klasor => $d2) {
$nArray[$seri][$klasor] = array_unique($d2);
}
}
$i = 0;
foreach ($nArray as $seri => $seriArr) {
$result[$i]['seri'] = $seri;
foreach ($seriArr as $k => $v) {
$result[$i]['randomword'][] = ['klasor' => ($k.''), 'yol' => $v['yol']];
}
$i++;
}