我是php webservice和JSON的新手。现在我试图从url获取关键字并搜索它是否在数据库中。关键字可以是一个或多个。以jSON格式提供结果。结果将是一些与值相关联的URL。 url将在数据库中。
<?php
include_once('confi.php');
error_reporting(E_ALL);
//Get the variables here
$key_word = isset($_GET['key_word']) ? mysqli_real_escape_string($conn, $_GET['key_word']) : "";
$result = explode(',', $key_word);
print_r($result);
$sql = 'SELECT * FROM `kw` WHERE key_word="'.$key_word.'"';
$Obj='';
$query = mysqli_query($conn,$sql) or trigger_error(mysqli_error()." ".$sql);
while($row = mysqli_fetch_array($query))
{
$key_word = $row['key_word'];
$Url = $row['Url'];
}
}
/* Output header */
header('Content-type: application/json');
$Obj->key_word = "$key_word";
$Obj->Url = "$Url";
$JSON = json_encode($Obj);
echo $JSON;
?>
我为此代码获取null值。请帮我做。
我得到的结果是这样的。它让我分开显示,这两个将有单独的网址。
答案 0 :(得分:1)
试试这样...... 步骤进行:
1.基于逗号将kewords扩展到数组
2.Foreach key find URL
3.制作单独的数组键
4.制作单独的网址数组
5.最后使用json_encode()
创建一个关键数组和网址
6. <?php
include_once('confi.php');
error_reporting(E_ALL);
//Get the variables here
$key_word = isset($_GET['key_word']) ? mysqli_real_escape_string($conn, $_GET['key_word']) : "";
$result = explode(',', $key_word);
// print_r($result);
if (count($result>0)) {
$key_word=array();
$Url=array();
foreach ($result as $res) {
$sql = "SELECT * FROM `kw` WHERE key_word='$res'";
$query = mysqli_query($conn,$sql);
$row = mysqli_fetch_array($query);
array_push($key_word, $row['key_word']);
array_push($Url,$row['Url']);
}
$return = array_combine($key_word, $Url);
print_r($return); // here is your final array
echo json_encode($return); //in json format
}
你的数组以json格式得到结果。
Referenced external data source "(null)" not found.
答案 1 :(得分:0)
你没有得到一些错误或警告吗?
$ Obj var不是对象而是字符串
更改
$Obj='';
通过
$Obj = new stdClass();
并且不要在变量周围使用引号。