Отображение JSON из API и HTML-таблицы с использованием PHP

0

Я понимаю, что есть что-то очень простое, что я здесь отсутствует. Кроме того, я очень новичок в php, поэтому, пожалуйста, имейте это в виду, когда отвечаете :)

Я пытаюсь отобразить результаты вызова API в таблице html. Вот мой код:

// construct the query with our apikey and the query we want to make
$endpoint = 'http://www.coinmine.pw/api.php?method=coinprofit';
// setup curl to make a call to the endpoint
$session = curl_init($endpoint);
// indicates that we want the response back
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// exec curl and get the data back
$data = curl_exec($session);
// remember to close the curl session once we are finished retrieveing the data
curl_close($session);
// decode the json data to make it easier to parse the php
$search_results = json_decode($data, true);
if ($search_results === NULL) die('Error parsing json');
//print_r($search_results);

echo '<table>';
foreach ($search_results as $coin) {

$name = $coin["name"];
$profit = $coin["profit"];

echo '<tr><td>' . $name . '</tr></td>';
echo '<tr><td>' . $profit . '</tr></td>';

}
echo '</table>';

Все вышеприведенные выходы относятся к прибыли имени прибыли по умолчанию, но без отдельных строк таблицы.

В идеале я бы хотел, чтобы весь api-вызов был в таблице, но я просто пытаюсь сначала отобразить это, чтобы я мог понять, что делает всю таблицу.

Бонусные баллы, если кто-то может указать мне в правильном направлении, чтобы таблица сортировалась по каждому столбцу.

  • 1
    echo '<tr><td>' . $name . '</tr></td>'; & echo '<tr><td>' . $profit . '</tr></td>'; должно быть echo '<tr><td>' . $name . '</td></tr>'; & echo '<tr><td>' . $profit . '</td></tr>';
  • 1
    Для бонусных баллов: DataTables - это удобный инструмент для создания сортируемых таблиц по столбцам. Он использует некоторый JavaScript, но очень прост в настройке.
Теги:

1 ответ

1
Лучший ответ

Вы закрываете <tr> перед закрытием дочернего <td>. Должно быть:

echo '<tr><td>' . $name . '</td></tr>';
echo '<tr><td>' . $profit . '</td></tr>';

Но похоже, что каждая $coin должна быть собственной строкой, и в этом случае она должна быть:

echo '<tr><td>'.$name.'</td><td>'.$profit.'</td></tr>';
  • 0
    Я не могу поверить, что я сделал это, лол. Впервые в php, а не в html :) Это все еще не решило проблему, хотя. Это отображается так же.
  • 0
    Вы хотите ряд для каждой $coin ? Вы не должны оборачивать оба $name и $profit в свои собственные <tr> , у вас должно быть два <td> обернутых в один <tr> . Обновил мой ответ.
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню