Rss и json скрипты php, извлекающие данные из mysql

У меня есть база данных sql с данными, и я хотел бы создать 2 сценария php для вывода данных в формате rss и json, но я застрял, потому что с кодом что-то не так ... я думаю. Я также хочу, чтобы меня признали во всем мире как форматы rss и json соответственно. Вот два набора кода, которые у меня уже есть ...

Для rss / xml ...

<?php
    header("Content-Type: application/rss+xml; charset=ISO-8859-1");
/* Define db credentials */ 
    $DBHOST = "localhost";
    $DBUSER = "1";
    $DBPASS = "2";
    $DBNAME = "3";
    $rssfeed = '<?xml version="1.0" encoding="ISO-8859-1"?>';
    $rssfeed .= '<rss version="2.0">';
    $rssfeed .= '<channel>';
    $rssfeed .= '<title>RSS Feed</title>';
    $rssfeed .= '<link>http://www.123.net</link>';
    $rssfeed .= '<description>RSS Feed</description>';
    $rssfeed .= '<language>en-us</language>';
    $rssfeed .= '<copyright>Copyright (C) 2018 123.net</copyright>';
/* connect to the db */
   $conn = new mysqli($DBHOST, $DBUSER, $DBPASS, $DBNAME);
if ($conn->connect_error) { trigger_error('Database connection failed: ' . $conn->connect_error, E_USER_ERROR); }
mysqli_set_charset($conn,"utf8");
    $sql = "SELECT * FROM table ORDER BY updated_at DESC LIMIT 5";
$rs = $conn->query($sql);
if ($rs === false) { trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->error, E_USER_ERROR); } else { $row_num = $rs->num_rows; }
$rssfeed .= '<item>';
        $rssfeed .= '<title>' . $title . '</title>';
        $rssfeed .= '<desc>' . $desc . '</desc>';
$rssfeed .= '</item>';
    } 
    $rssfeed .= '</channel>';
    $rssfeed .= '</rss>';
    echo $rssfeed;

Для json ...

<?php
/* Define db credentials */ 
    $DBHOST = "localhost";
    $DBUSER = "1";
    $DBPASS = "2";
    $DBNAME = "3";
/* connect to the db */
   $conn = new mysqli($DBHOST, $DBUSER, $DBPASS, $DBNAME);
if ($conn->connect_error) { trigger_error('Database connection failed: ' . $conn->connect_error, E_USER_ERROR); }
mysqli_set_charset($conn,"utf8");
    $query= "Select * from table ORDER BY updated_at DESC LIMIT 5";
    $result = mysql_query($query) or die ("Could not execute query");
    while ($row = mysql_fetch_array($result)) {
        extract($row);
    }
    header('Content-Type:Application/json');
    echo json_encode($array);
    mysql_free_result($result);
    mysql_close($conn);
 ?>

В вашем json-скрипте вы смешиваете mysqli_* с mysql_*. Заменить звонки mysql_*. И почему вы извлекаете массивы, а не добавляете элементы в $array? И в первом скрипте вы даже не получаете строки. Немного беспорядка.

jeroen 11.04.2018 14:12
1
1
45
1

Ответы 1

Пожалуйста, попробуйте этот код:

$jsonResult = [];

while ($row = mysqli_fetch_array($result)) {
    $jsonResult[] = $row;
}

header('Content-Type:Application/json');
echo json_encode($jsonResult);

Почему вы рекомендуете смешивать два API? Тем более, что один из них - устарел и был удаленный в более новых версиях PHP.

Script47 11.04.2018 14:16

посмотрите, что сказал @jeroen в комментариях к вопросу!

Rajendran Nadar 11.04.2018 14:17

Я пробую этот $ query = "Выбрать * из таблицы ORDER BY updated_at DESC LIMIT 5"; $ result = mysqli_query ($ query) или die («Не удалось выполнить запрос»); $ jsonResult = []; в то время как ($ row = mysqli_fetch_array ($ result)) {$ jsonResult [] = $ row; } заголовок ('Content-Type: Application / json'); эхо json_encode ($ jsonResult); mysql_free_result ($ результат); mysql_close ($ conn); ?> и я получаю «Не удалось выполнить запрос»!

vasilis smyrnios 11.04.2018 14:51

также с mysqli_free_result ($ result); mysqli_close ($ conn) Я получаю ту же ошибку

vasilis smyrnios 11.04.2018 15:04

Я нашел проблему. Я использовал $ result = mysqli_query ($ query) вместо $ result = mysqli_query ($ con, $ query). Я забыл "$ con"

vasilis smyrnios 11.04.2018 16:07

Другие вопросы по теме