2017-06-21 3 views
0

Ich habe vor ein paar Tagen ein question gepostet, aber ich bin mir nicht sicher, dass ich mein Problem richtig herausgestellt habe, also möchte ich es auf eine andere Weise entlarven. Ich möchte den Inhalt der MySQL-Datenbank in eine IndexedDB-Datenbank senden. Ich habe dies auf der PHP-Seite:Von MySQL zu IndexedDB mit Ajax

$con = mysqli_connect("localhost", "root", $mypassword, $myDB); 
if (!$con) { 
    die("Connection failed: " . mysqli_error($con)); 
} 

$sql = "SELECT * FROM table1"; 

$result = mysqli_query($con, $sql); 

$to_encode = array(); 
while($row = mysqli_fetch_array($result)) { 
    $to_encode[] = $row; 
} 

echo json_encode($to_encode); 

mysqli_close($con); 

und auf der JavaScript-Seite:

$.getJSON('./php/database.php', function(data) { 
    $.each(data, function (key, value) { 
      // Populate the IndexedDB database here  
    }); 
}); 

Ich bin ziemlich neu in Entwicklung und vor allem mit IndexedDB so habe ich eine harte Zeit, das zu verstehen verarbeiten. Ich bin mir nicht einmal sicher, ob es möglich ist, das zu tun, was ich will. Kann mir bitte jemand helfen?

+0

Zumindest ist es etwas möglich, oder nicht? – EricF

Antwort

0

Ohne etwas über Ihre Datenbank zu wissen, ist es schwer, Ihnen einen Code zu geben, der "einfach funktioniert".

Ich schlage vor, Sie werfen einen Blick auf die following example, die Ihnen zeigt, wie Sie die native IndexedDB API verwenden.

Ich schlage Ihnen auch vor (wenn Sie es einfacher machen möchten), eine Bibliothek zu verwenden, um IndexedDB zu verwalten. Zum Beispiel Dexie.

Denken Sie daran, dass Sie zuerst ein Schema erstellen müssen, das die Darstellung Ihrer Daten darstellt (in mysql, der Struktur der Tabelle). Sobald das Schema erstellt ist, können Sie mit dem Hinzufügen von Daten zur IndexedDB beginnen.

Ich hoffe es hilft

+0

Die Datenbank (MySQL) hat 30 Spalten und 297 Zeilen, also gibt es hier eine Menge zu zeigen und deshalb habe ich versucht, auf den Punkt zu kommen. Der Grund, warum ich die Frage stelle, ist, dass ich, wenn ich die Anweisung "$ .getJSON" verwende, ein großes riesiges JSON-Objekt habe, aber ich weiß nicht, was ich damit machen soll, wenn es Zeit ist, es mit IndexedDB zu verwenden. – EricF

+0

Nun, wie ich in der Antwort sagte, müssen Sie zuerst das Schema erstellen. Sie müssen das manuell schreiben, da Ihre JSON-Antwort die Zeilen, aber nicht das Schema enthält. Sobald das Schema erstellt ist, können Sie alle Ihre Zeilen einfügen (die JSON, die Sie bekommen haben), aber es muss entsprechend der von Ihnen verwendeten IndexedDB-Bibliothek korrekt formatiert sein. – ajimix

+0

Vielen Dank! Ich werde das versuchen :) – EricF