簡體   English   中英

使用json / php api將數據從mysql db轉換為表

[英]convert data from mysql db to table using an json/php api

我正在嘗試使用JSON和PHP腳本制作自己的api,該腳本可以成功運行(api.mystem.tk/product),但是我想將該數據轉換為帶有以下列的html表:id,名稱和日期。

我的問題,如何? 我已經包含了我的代碼,您可以在api.mystem.tk/product的控制台中觀看JSON輸出。 我已刪除了腳本中的所有私人詳細信息,並將其替換為#______。

api.php

<?php
  $connect = mysqli_connect('#host', '#user', '#password', '#db');
  if(!isset($_GET['function'])) {
    die('Some error occurred!');
  }
  function GetProducts($db) {
    $sql = mysqli_query($db, 'SELECT * FROM php_test ORDER BY Id ASC LIMIT 
      0, 10');
    $data = array();
    if (mysqli_num_rows($sql) > 0) {
      while ($row = mysqli_fetch_array($sql)) {
        $data[] = $row["Id"];
        $data[] = $row["Name"];
        $data[] = $row["Date"];
      }
    }
    $data = json_encode($data);
    echo $_GET['jsonCallback'].'('.$data.')';
  }
  if (function_exists($_GET['function'])) {
    $_GET['function']($connect);
  }
  echo $data;
?>

函數 .js:

$(function(){
  var functionName = 'GetProducts';
  function LoadData() {
    $.getJSON("http://api.mystem.tk/product/api.php? 
    function="+functionName+"&jsonCallback=?", function(data) {
      var all_data = [];
      $.each(data, function(k, name){
        var array_data = '<div class="names">'+name+'</div>';
        all_data.push(array_data);
      });
      $('#data').append(all_data);
      console.log(data);
    });
  }
  LoadData();
});

索引 .php:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title> API TEST </title>
    <meta name="viewport" content="width=device-width,initial- 
      scale=1,maximum-scale=1,user-scalable=0">
    <script src="https://code.jquery.com/jquery-3.3.1.min.js" 
      integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" 
      crossorigin="anonymous"></script>
  </head>
  <body>
    <div id="data"></div>
    <script type="text/javascript" src="function.js"></script>
  </body>
</html>

using jQuery.parseJSON() jQuery function. 您需要使用jQuery.parseJSON() jQuery函數在解析JSON數據。 您可以從以下網址閱讀簡要文檔: jQuery.parseJSON()

添加的代碼:

<script>

var obj = JSON.stringify([
    {
        "id":'1',
        "name":'Jhon Doe',
        "date":'April 14,2018'
    },
    {
        "id":'2',
        "name":'Coder',
        "date":'April 23, 2018'
    }
]);
var jsontoparse = JSON.parse(obj);
var i = obj.length;
var j=0;
while(j<=i){
    console.log(jsontoparse[j].id);
    j = j+1;
}
</script>

所以我嘗試使用$ .parseJSON代替$ getJSON,但是沒有成功的控制台:

Uncaught SyntaxError: Unexpected token <
at m (jquery-3.3.1.min.js:2)
at Function.globalEval (jquery-3.3.1.min.js:2)
at text script (jquery-3.3.1.min.js:2)
at Ut (jquery-3.3.1.min.js:2)
at k (jquery-3.3.1.min.js:2)
at XMLHttpRequest.<anonymous> (jquery-3.3.1.min.js:2)

我已經改變了這個:

$data[] = $row["Id"];
$data[] = $row["Name"];
$data[] = $row["Date"];

對此:

$data[] = array(
  'id' => $row["Id"],
  'name'=> $row["Name"],
  'date'=> $row["Date"]
)

更具體點...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM