пытаясь поместить данные api в базу данных с помощью php?

Я вытаскиваю предложения из api Groupon, и я понятия не имею, как взять данные и поместить их в базу данных с php, я знаю, как показать его в html, но не в базе данных, мне нужно втянуть его в базы данных, поэтому я больше контролирую информацию, если кто-то знает, как это сделать или знает лучший способ, я все глаза, lol, спасибо

<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> 

Related of "пытаясь поместить данные api в базу данных с помощью php?"

теория

Ну, я просто начну работать в этом процессе …

Во-первых, узнайте, с каким драйвером вы сталкиваетесь, и изучите, как PHP взаимодействует с ними. Посмотрите на этот список и начните читать … http://www.php.net/manual/en/refs.database.php

Отправка данных в PHP-скрипт для обработки остального зависит от того, как вы получили данные. Вот некоторые основные потоки …

  • Потяните его с помощью jQuery и используйте AJAX для отправки, как только вы получите его на скрипт php, чтобы сохранить его. (Требуется дополнительный HTTP-запрос)
  • Потяните его с помощью PHP, сохраните его в БД, затем отформатируйте и выведите на той же странице. (Замедляет время загрузки начальной страницы)
  • Потяните его с помощью jQuery, отформатируйте его и разрешите пользователю нажимать кнопку, которая затем будет использовать эту запись в скрипте сохранения PHP (более гибкий, но значительно увеличивающий количество запросов)

После того, как вы сможете получить соединение с вашей базой данных, вам просто нужно сохранить его в таблице с помощью SQL-запроса (скорее всего, используя INSERT или UPDATE). С данными JSON я предпочитаю сохранять его в столбце с типом данных TEXT. Единственный реальный риск здесь заключается в том, что вы должны быть уверены, что можете проверить данные. ОСОБЕННО, ЕСЛИ ДАННЫЕ БУДУТ ПРЕДОСТАВЛЯТЬСЯ НА PHP от JAVASCRIPT / AJAX SOURCE!

Вытягивание данных с этой точки – это просто использование инструкции SQL «SELECT». Модули базы данных 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> 

Теперь, когда вы отправите все данные, которые вы получили (неповрежденными) из groupon, в отдельный скрипт php, используя вызов AJAX 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, содержащую массив результатов. И каждая из записей этого массива будет действительным объектом так же, как и группа. Надеюсь, это поможет!