• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[Web SQL]1. "Ausgabeproblem" / 2. "1 zu n Beziehungen"

Dexter1997

Neues Mitglied
Folgender Fehler:
"footbar" und "logmsg" werden wie gewünscht ausgegeben, allerdings nicht "Hallo"


Code:
<html>
    <body>
        <script>
            var db = openDatabase('neueDb', '1.0', "Test DB", 2 * 1024 * 1024);

                db.transaction(function (tx) {
                       tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
                    tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "foobar")');
                    tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "logmsg")');
                    tx.executeSql('INSERT INTO LOGS (id, log) VALUES (3, "hallo")');
                });

                db.transaction(function (tx) {
                    tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
                            var len = results.rows.length, i;

                            for (i = 0; i < len; i++) {
                                alert(results.rows.item(i).log);
                            }
                    }, null);
            });
        </script>
    </body>
</html>
 
Werbung:
Folgender Fehler:
"footbar" und "logmsg" werden wie gewünscht ausgegeben, allerdings nicht "Hallo"


Code:
<html>
    <body>
        <script>
            var db = openDatabase('neueDb', '1.0', "Test DB", 2 * 1024 * 1024);

                db.transaction(function (tx) {
                       tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
                    tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "foobar")');
                    tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "logmsg")');
                    tx.executeSql('INSERT INTO LOGS (id, log) VALUES (3, "hallo")');
                });

                db.transaction(function (tx) {
                    tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
                            var len = results.rows.length, i;

                            for (i = 0; i < len; i++) {
                                alert(results.rows.item(i).log);
                            }
                    }, null);
            });
        </script>
    </body>
</html>

Ich mag mich ja täuschen, aber WebSQL ist mMn. kein Standard und wird es auch nicht.
 
Werbung:
Ich danke für die Antwort! Bei mir dasselbe, in anderen Umgebungen funktioniert der Code nur bei der problematischen Umgebung nicht. Seltsam.

Mein aktueller Code:
HTML:
<html>
    <body>
        <script>
            var db = openDatabase('neueDb', '1.0', "Test DB", 2 * 1024 * 1024);
            var hallo = "hallo1234";

                db.transaction(function (tx) {
                       tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (log)');
                    tx.executeSql('INSERT INTO LOGS (log) VALUES ("foobar")');
                    tx.executeSql('INSERT INTO LOGS (log) VALUES ("logmsg")');
                    tx.executeSql('INSERT INTO LOGS (log) VALUES (' + hallo + ')');
                });

                db.transaction(function (tx) {
                    tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
                            var len = results.rows.length, i;

                            for (i = 0; i < len; i++) {
                                alert(results.rows.item(i).log);
                            }
                    }, null);
            });
        </script>
    </body>
</html>
 
Werbung:
Dann hätte ich noch eine Frage: Ich kann ja den einzutragenden Wert von einer Variablen abhängig machen, zum Beispiel so:
Code:
tx.executeSql('INSERT INTO TABELLE (WERT) VALUES (?)', [Variable]

Wie kann ich aber nicht nur den einzutragenden Wert, sondern auch die Tabelle von eine Variable abhängig machen?
Ich probierte folgendes:
Code:
tx.executeSql('INSERT INTO ? (fileName) VALUES (?)', [chosenTable, Variable]);
Das hat aber nicht funktioniert.
Wie kann ich das tun?

Ich danke für alle Antworten!
 
Dann hätte ich noch eine Frage: Ich kann ja den einzutragenden Wert von einer Variablen abhängig machen, zum Beispiel so:
Code:
tx.executeSql('INSERT INTO TABELLE (WERT) VALUES (?)', [Variable]

Wie kann ich aber nicht nur den einzutragenden Wert, sondern auch die Tabelle von eine Variable abhängig machen?
Ich probierte folgendes:
Code:
tx.executeSql('INSERT INTO ? (fileName) VALUES (?)', [chosenTable, Variable]);
Das hat aber nicht funktioniert.
Wie kann ich das tun?

Ich danke für alle Antworten!

Ich denke nicht dass das geht da es keinen Sinn macht.
Jede Tabelle hat ein anderes Schema - das ist der einzige Grund mehrere Tabellen zu erstellen.

Einzige Möglichkeit für dein Vorhanden ist wohl String Concatenation - dann allerdings auf SQL Injection achten (Weiß gerade nicht ob Client-Side Injection überhaupt gefährlich sein kann):
Code:
'INSERT INTO '+tableName+' ... '

Aber wie jetzt schon doppelt erwähnt in diesem Thread - du reitest ein totes Pferd.
 
  • Like
Reaktionen: JPM
Hallo Freunde der Sonne,

ich habe zurzeit zwei Tabellen:

Kunde (id, name, vorname)
Kauf(id des Kunden, gegenstand) (so soll es zumindest sein)

Ich habe allerdings von Datenbanken und SQL allgemein wenig Ahnung und finde so keinen richtigen Anschluß an die Literatur, weswegen ich euch fragen, wollte:

Wie kriege ich das hin, daß ich in der Tabelle "Kauf" auch wirklich die id des Kunden mit dem Gegenstand verbinden kann, bzw. wie kann ich in Web-SQL eine Beziehung herstellen?

Ich danke vom Herzen für alle Antworten!
 
Werbung:
Zurück
Oben