我正在从Groupon的api中提取交易,我不知道如何获取数据并将其放入带有php的数据库中,我知道如何在html中显示它,但不是在数据库中,我需要将它拉进数据库,这样我就可以更好地控制信息了,如果有人知道怎么做或知道更好的方式,我全都是眼睛,哈哈,谢谢
<script type='text/javascript'>
$(function () {
$.getJSON("https://api.groupon.com/v2/deals.json?callback=?",
{
client_id: "b252ad3634a4ab2985b79d230ccc4e49a3ea9d19",
show: "all",
division_id: "los-angeles"
})
.done(function (data) {
console.log(data);
// do whatever processing you need to do to the data
// right here, then drop it in the div
$.each(data.deals, function (i, v) {
$title = $("<h2/>", {
html: v.title,
class: "heading"
});
$img = $("<img/>", {
src: v.mediumImageUrl
});
$deal = $("<div/>", {
html: v.highlightsHtml + v.pitchHtml
});
$("#main").append($deal);
$deal.prepend($title, $img);
});
});
});
</script>
答案 0 :(得分:1)
<强>理论强>
好吧,我刚刚开始贯穿整个过程...
首先,了解您正在处理的驱动程序,并研究PHP如何与它们进行交互。看看这个清单并开始阅读...... http://www.php.net/manual/en/refs.database.php
将数据发送到PHP脚本以处理其余部分取决于您获取数据的方式。以下是一些基本流程......
在获得与数据库的连接之后,您只需使用SQL查询将其保存到表中(最有可能使用INSERT或UPDATE)。使用JSON数据,我更喜欢将其保存到数据类型为TEXT的列中。这里唯一真正的风险是您必须确保可以验证数据。特别是如果数据是从JAVASCRIPT / AJAX源提供给PHP的话!
从该点拉取数据只是使用“SELECT”sql语句。 PHP的数据库模块将提取这些数据并将其放入一个可爱的数组中,使操作变得简单。
<强>实施例强>
现在就是理论,继承了一些行动。我将选择第一流的想法。现在这个将它保存到数据库中。我没有做任何花哨的检查或真的拉。但这将向您展示如何将ajaxing和保存到php的工作原理。
视图-deals.html
<script type='text/javascript'>
$(function () {
$.getJSON("https://api.groupon.com/v2/deals.json?callback=?",
{
client_id: "b252ad3634a4ab2985b79d230ccc4e49a3ea9d19",
show: "all",
division_id: "los-angeles"
}).done(function (data) {
console.log(data);
// do whatever processing you need to do to the data
$.post('save-deals.php',{dealData: data}, function(finishData) {
//This is an optional function for when it has finished saving
});
// Your formatting comes next
....
});
</script>
现在,将使用AJAX Post调用将您从groupon获得的所有数据(完整)发送到单独的php脚本。我使用post,好吧,因为这就是它的用途。
保存-deals.php
ob_start(); //I like output-buffering because if we need to change headers mid script nothing dies
$DealData = isset( $_POST['dealData'] )?$_POST['dealData']:die("Malformed form data!");
if($DealData!='') {
$DB = new mysqli("example.com", "user", "password", "database");
if ($DB->connect_errno) {
echo "Failed to connect to MySQL: " . $DB->connect_error;
}
$DealData = $DB->real_escape_string($DealData); //Sanitize it for MySQL
if (!$DB->query("INSERT INTO deals(data) VALUES ($DealData)") {
echo "Insert failed: (" . $DB->errno . ") " . $DB->error;
} else {
//AT THIS POINT IT SHOULD HAVE BEEN INSERTED!
//You could return a success string, or whatever you want now.
}
} else {
http_response_code("400");
die("Bad Request, please check your entry and try again");
}
ob_end_flush(); //Close up the output-buffer
关于该脚本需要注意的一些重要事项是ob_ *函数是完全可选的。 DealData的设置方式是一种非常简便的方法,用于检查帖子数据是否包含该值,并正确设置它;如果没有,那就给出错误。
下一个脚本将向您展示如何从数据库中提取数据,并根据需要对其进行操作。它还会将数据作为JSON信息返回,因此可以与javascript $.getJSON()
调用一起使用。这主要是一个参考片段
操纵-deals.php
//First connect to the database!
$DB = new mysqli("example.com", "user", "password", "database");
if ($DB->connect_errno) die("Failed to connect to MySQL: " . $DB->connect_error);
//Get ALL the entries!
if(!$results = $DB->query("SELECT * FROM data")) die("Failed to retrieve data! ".$DB->error);
//Decode the datas!
$returnResults = [];
while($entry = $results->fetch_assoc()) {
$JSON = json_decode($entry['data']);
//Manipulate however you wish!
$JSON->whatever->tags[1]->you->want = "whatever value";
//Add it to the results!
$returnResults[] = $JSON;
}
echo json_encode($returnResults);
最后一节只是为了好玩。它将导出包含结果数组的json字符串。并且每个数组的条目都是一个有效的对象,正如groupon给你的那样。希望有所帮助!