2012-03-30 3 views
0

У меня есть база данных mysql, из которой мне требуется rss-канал его содержимого. я требовать эквивалент этого в формате JSON:mysql results from json

mysql_select_db("mydb", $con); 
$result = mysql_query("select date, title, description, url from blah where type = 'OFFERS' order by ref desc"); 

echo '<?xml version="1.0"?> 
<rss version="2.0"> 
<channel> 

<title></title> 
<description></description> 
<link></link>'; 

while($row = mysql_fetch_array($result)) 
    { 
    echo " 
    <item> 
    <title>" . $row['title'] . "</title> 
    <description>" . $row['description'] . "</description> 
    <link>" . $row['url'] . "</link> 
    <image>" . $row['date'] . "</image> 
    </item>"; 
    } 

до сих пор ближе всего я мог добраться до работы заключается в следующем:

<?php 

$host="localhost"; 
$username="username"; 
$password="password"; 
$db_name="mydb"; 

$con=mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 
$sql = "select date, title, description, url from blah where type = 'OFFERS' order by ref desc"; 
$result = mysql_query($sql); 
$json = array(); 
if(mysql_num_rows($result)){ 
while($row=mysql_fetch_row($result)){ 
$json['title'][]=$row; 
} 
} 

mysql_close($db_name); 

echo json_encode($json); 

?> 

любая помощь будет оценена

ответ

1
while ($row = mysql_fetch_assoc($result)) { 
    $json[] = $row; 
} 

echo json_encode($json); 
+0

идеально. Спасибо за вашу помощь –

1

As mysql_fetch_row возвращает как ключи массива, так и индексы, лучше использовать mysql_fetch_assoc. Это приведет только к возврату ключей.

Также вы выбираете элементы, а не заголовки. Поэтому используйте $json['items'] вместо $json['title'].

Кроме того, в rss есть иная информация. вы можете добавить их в $json.

Полученный код,

$json=array(); 
$json['title'] = 'My JS/RSS'; 
$json['link'] = "http://". $_SERVER['HTTP_HOST']. $_SERVER["REQUEST_URI"]; 
$json['description'] = ""; 
$json['itmes'] = array(); 
while($row=mysql_fetch_assoc($result)){ 
    $json['items'][]=$row; 
}