
Wenn du viel mit Datenbanken entwickelst, kommst du schnell an einen Punkt, wo VIEWS eine wichtige Rolle spielen. Deshalb habe ich diesem Thema einen eigenen Blogbeitrag spendiert.
Hier folgen ein paar Tipps zum Thema (MySQL / MariaDB) Views. Dabei handelt es sich nur um Fingerzeige, die keinen Anspruch auf Vollständigkeit haben. Natürlich kann ich kein $conn->query(); absetzen, ohne vorher ein Verbindungsobjekt zur Datenbank zu erstellen etc. Aber ich gehe jetzt mal davon aus, dass du ein intelligentes Wesen bist, das bereit ist, mitzudenken und das unten Stehende als Gedankenanregung zu verstehen.
Ich gehe hier nicht darauf ein, wie du einen View erstellst, das weißt du bestimmt schon.
Hier geht es um Themen, die einer gründlichen Recherche bedürfen, und für die es vielleicht auch nicht so auf die Schnelle Hilfe im Netz gibt.
Mit phpMyAdmin ist das sehr einfach möglich: In der SQL Eingabeaufforderung einfach diesen Befehl absetzen:
SHOW CREATE VIEW name_des_views
—————————————————————————————————————–
Wie kann ich Rechte am View an einen User übertragen, um z.B. ein ALTER VIEW mit einem bestimmten User zu realisieren? (der View hat beim Erstellen die Rechte des Erstellers / meistens root, und kann von einem anderen User nicht geändert werden)
Mit phpMyAdmin wiederum sehr einfach möglich:
Einfach den View auswählen, auf Struktur gehen und dort auf View/Ansicht bearbeiten.
—————————————————————————————————————–
Wie kann ich Teile des Views mit Hilfe von Javascript/AJAX und PHP ändern?
Auf der Client-Seite: Du übergibst den Änderungsparameter ( z.B. ein Datum, das die Viewdaten mit diesem Datum aktualisieren soll ) an ein PHP-Skript:
var xhr = new XMLHttpRequest(); xhr.open(“GET”, “name_des_serverskripts?datum=”+dateSelected, true); xhr.send(null);
Nachdem die Antwort vom Server erhalten wurde kannst du z.B. die Seite neu laden, um die geänderten View-Daten anzuzeigen:
if (xhr.readyState == 4 && xhr.status == 200) { document.location.href=“deineSeiteMitViewDaten”;}
Auf der Server-Seite: Du ermittelst den Übergabeparameter ( hier datum ) und erzeugst den ALTER Befehl, um die View upzudaten:
if (isset($_GET[“datum”])) { $myDate = $_GET[“datum”]; } $sql = “ALTER VIEW name_deiner_view as SELECT spaltenname1, spaltenname2, … FROM `view_bezugstabelle` where datum > $myDate”;
Anschließend kann mit dem Ausführen des SQL Befehls die VIEW DEFINITION neu gesetzt werden: $conn->query($sql); Das PHP-Skript sollte mit der Übergabe eines Wertes an das aufrufende XMLHttpRequest-Objekt abgeschlossen werden, damit eine korrekte Statusüberprüfung ermittelt werden kann (xhr.readyState und xhr.status): echo ($rückgabewert);