0 امتیاز
قبل در برنامه نویسی توسط (843 امتیاز)
می خواهم اطلاعات موجود در دیتابیس mysql را پس از خواندن از دیتابیس به json تبدیل کنم.

2 پاسخ

+1 امتیاز
قبل توسط (1.9هزار امتیاز)
ویرایش شده قبل توسط

برای این کار در خود PHP می توان خیلی آسان از دو تابع زیر استفاده کرد :

  • json_encode
  • json_decode

و برای تبدیل کل آن می توانید از این توابع استفاده کنید مانند :

$menu = $dbConnection->prepare("SELECT * FROM menu WHERE parent = 0");
$menu->execute();
var_dump(json_encode($menu->fetchAll()));

خروجی :

خوب حالا یک طور دیگه فرص بر این شما نیاز دارید به یک مقدار خاص دسترسی داشته باشید این گونه می توانید به مقدار موجود دسترسی پیدا کنید من از Object استفاده کردم شما می توانید با تغییر fetchobject به fetch->(PDO::FETCH_ASSOC) به صورت آرایه بگیرید خوب این هم مثال :

$menu = $dbConnection->prepare("SELECT * FROM menu");
$menu->execute();
while ($menus = $menu->fetchObject()) {
        $menus = json_encode($menus->label);
        print $menus.'<br />';

}

خروجی :

برای رفع مشکل UTF در JSON متد json_encode را با پارامتر JSON_UNESCAPED_UNICODE پر کنید :

   $menus = json_encode($menus->label, JSON_UNESCAPED_UNICODE);

 

قبل توسط (0 امتیاز)
من اطلاعاتم رو دیتابیس فارسیه ولی خروجی جیسون که میگیرم علامت سوال میشه چیکارکنم؟
0 امتیاز
قبل توسط (1.1هزار امتیاز)

تابعی با نام json_encode در PHP وجود دارد که می تواند با اعمال تغییراتی در آرایه ای که از نتیجه query اجرا شده بر روی MySQL بدست آمده است، آن را یه فرمت JSON تبدیل کند:

<?php
    //Create Database connection
    $db = mysql_connect("localhost","root","root");
    if (!$db) {
        die('Could not connect to db: ' . mysql_error());
    }
 
    //Select the Database
    mysql_select_db("test_json",$db);
    
    //Replace * in the query with the column names.
    $result = mysql_query("select * from employee", $db);  
    
    //Create an array
    $json_response = array();
    
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        $row_array['id_employee'] = $row['id_employee'];
        $row_array['emp_name'] = $row['emp_name'];
        $row_array['designation'] = $row['designation'];
        $row_array['date_joined'] = $row['date_joined'];
        $row_array['salary'] = $row['salary'];
        $row_array['id_dept'] = $row['id_dept'];
        
        //push the values in the array
        array_push($json_response,$row_array);
    }
    echo json_encode($json_response);
    
    //Close the database connection
    fclose($db);
 
?>

سوالات مشابه

0 امتیاز
1 پاسخ 464 بازدید
0 امتیاز
2 پاسخ 695 بازدید
0 امتیاز
0 پاسخ 367 بازدید
0 امتیاز
1 پاسخ 625 بازدید
0 امتیاز
1 پاسخ 748 بازدید
0 امتیاز
0 پاسخ 639 بازدید
0 امتیاز
0 پاسخ 532 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط keynet (0 امتیاز)
+1 امتیاز
2 پاسخ 1.8هزار بازدید
0 امتیاز
1 پاسخ 359 بازدید
...