Мисля да имплементирам json decode в joomla плъгин който да взема данни от тодалечено url. Преди това обаче реших да пробвам на чисто php с два елементарни файла
Този файл ми зарежда определени данни от таблицата и ги прави в json формат.
get_all_products.php
Получава се този примерен json
След това да речем за теста в index.php файла си слагам следния код
като дам dump на $result ми връща null. Сложих функцията json_last_error(); тя ми връща числото 4. Какъв е проблема? някакви идей? Благодаря предварително
Този файл ми зарежда определени данни от таблицата и ги прави в json формат.
get_all_products.php
PHP:
<?php
include 'functions.php';
/*
* Following code will list all the products
*/
// array for JSON response
$response = array();
$api_key= 123456;
// connecting to db
db_init();
$rs = run_q('SELECT *FROM api_key WHERE api_key='.$api_key.'') or die(mysql_error());
if (!(mysql_num_rows($rs) > 0))
{run_q('INSERT INTO api_key (api_key)
VALUES ('.$api_key.')') or die(mysql_error());}
else {
// get all products from products table
$rs = run_q('SELECT * FROM api_product ap INNER JOIN api_key ak ON (ap.api_key = ak.api_key)
INNER JOIN products p ON (ap.p_id = p.p_id) WHERE ap.api_key='.$api_key.'') or die(mysql_error());
// check for empty result
if (mysql_num_rows($rs) > 0) {
// looping through all results
// products node
$response["products"] = array();
while ($row = mysql_fetch_array($rs)) {
// temp user array
$product = array();
$product["pid"] = $row["p_id"];
$product["name"] = $row["p_name"];
$product["desc"] = $row["p_desc"];
$product["url"] = $row["p_url"];
// push single product into final response array
array_push($response["products"], $product);
}
// success
$response["success"] = 1;
// echoing JSON response
echo json_encode($response);
} else {
// no products found
$response["success"] = 0;
$response["message"] = "No products found for this api key";
// echo no users JSON
echo json_encode($response);
}
}
?>
?>
Получава се този примерен json
Код:
{"products":[{"pid":"1","name":"Ext1","desc":"ext1 desc","url":"www.server\/ext1.zip"},{"pid":"2","name":"Ext2","desc":"ext2 desc","url":"www.server\/ext2.zip"}],"success":1}
След това да речем за теста в index.php файла си слагам следния код
PHP:
<?php
session_start();
include 'functions.php';
myheader('Home');
$contents = file_get_contents('http://localhost/fewo_server/get_all_products.php');
$contents = utf8_encode($contents);
$results = json_decode($contents);
$er=json_last_error();
echo $er;
footer();
?>