0

I need to create REST API in PHP. I take JSON data from https://jsonplaceholder.typicode.com/ . Now I need to put all that data in table HTML. It is one array, inside with other 200 array. How can i create all row automaticly, without typing whole code by hands.

This is the code how i take data from https://jsonplaceholder.typicode.com/ :

 <?php

$url = 'https://jsonplaceholder.typicode.com/todos/';
$cURL = curl_init();
curl_setopt($cURL, CURLOPT_URL, $url);
curl_setopt($cURL, CURLOPT_HTTPGET, true);
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);

curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Accept: application/json'
));

$result = curl_exec($cURL);
curl_close($cURL);
$arrays =  json_decode($result);
?>

I tried like this:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>JSON</title>
  <link rel="shortcut icon" type="image/x-icon" href="icon.ico">
  <meta name="description" content="HTML, PHP, JSON, REST API">
  <style>table, th, td {border: 1px solid black;}</style>
</head>
  <body>
    <?php foreach ($arrays as $key => $value)  {    ?>
      <div  style="width:80px;border:2px solid black;height:20px;"> <?php echo 'User ID: ' . $value -> userId ?> </div><br /> 
      <div style="width:50px;border:2px solid black;height:20px;"> <?php echo 'ID: ' . $value -> id ?> </div><br /> 
      <div style="width:550px;border:2px solid black;height:20px;"> <?php echo 'Title: ' . $value -> title ?> </div><br /> 
      <div style="width:90px;border:2px solid black;height:20px;"> <?php echo 'Completed: ' . $value -> completed ?> </div><br /> 
      <br />   <?php  } ?>

        <table table style="width:100%"; table class="data-table">

                     <tr>
                          <th> User ID:</th> <th>ID:</th> <th>Title:</th><th>Completed</th>
                      </tr>

                     <tr>
                         <td><?php echo $value -> userId ?> </td> <td><?php echo $value -> id ?> </td> <td><?php echo $value -> title ?> </td><td><?php echo $value -> completed ?> </td>
                      </tr>

                      <tr>
                         <td><?php echo $value -> userId ?> </td> <td><?php echo $value -> id ?> </td> <td><?php echo $value -> title ?> </td><td><?php echo $value -> completed ?> </td>
                     </tr>

               </table>

  </body>
</html>

But i dont know to do it by once for all 200 row. Any suggestion?

0

1 Answer 1

0

use foreach() one more time and put <table> outside of it:

<!doctype html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
            <title>JSON</title>
            <link rel="shortcut icon" type="image/x-icon" href="icon.ico">
            <meta name="description" content="HTML, PHP, JSON, REST API">
            <style>table, th, td {border: 1px solid black;}</style>
        </head>
    <body>
        <?php foreach ($arrays as $value)  {    ?>
            <div  style="width:80px;border:2px solid black;height:20px;"> <?php echo 'User ID: ' . $value -> userId ?> </div><br /> 
            <div style="width:50px;border:2px solid black;height:20px;"> <?php echo 'ID: ' . $value -> id ?> </div><br /> 
            <div style="width:550px;border:2px solid black;height:20px;"> <?php echo 'Title: ' . $value -> title ?> </div><br /> 
            <div style="width:90px;border:2px solid black;height:20px;"> <?php echo 'Completed: ' . $value -> completed ?> </div><br /> 
            <br />   
        <?php  } ?>

        <table style="width:100%"; class="data-table">
            <tr>
                <th> User ID:</th> 
                <th>ID:</th> 
                <th>Title:</th>
                <th>Completed</th>
            </tr>
            <?php foreach ($arrays as $value)  {    ?>
                <tr>
                    <td><?php echo $value -> userId ?> </td> 
                    <td><?php echo $value -> id ?> </td> 
                    <td><?php echo $value -> title ?> </td>
                    <td><?php echo $value -> completed ?> </td>
                </tr>
            <?php  } ?>
       </table>
  </body>
</html>

Note:- I am not sure that you want first foreach() inside <body> or not? so please check and if not needed then remove it.

Sign up to request clarification or add additional context in comments.

Comments