Datenbank mit FTP oder SFTP anzeigen – Core PHP

[ad_1]

In diesem Artikel erfahren Sie, wie Sie Ihre Datenbank anzeigen können, wenn Sie nur Zugriff auf FTP erhalten haben. phpMyAdmin Auf cPanel kann leicht zugegriffen werden. In diesem Tutorial zeigen wir Ihnen jedoch, wie Sie die Datenbank ohne das anzeigen können cPanel Zugriff.

Wenn Sie an einem PHP-Projekt arbeiten und nur erhalten haben FTP oder SFTP Details von Ihrem Kunden oder Projektbesitzer, dann wäre es ein Problem für Sie, die tatsächlichen Daten auf der Live-Site zu sehen. Sie müssen Abfragen ausführen, um Daten zur Datenbank hinzuzufügen, zu bearbeiten, anzuzeigen oder zu löschen. Natürlich können Sie die Datenbank exportieren und in Ihren lokalen Host importieren, um die Struktur anzuzeigen. Aber was ist, wenn Sie einige Spalten oder eine ganz neue Tabelle auf der Live-Site hinzufügen müssen, dann wäre es schwierig und zeitaufwändig für Sie. Deshalb haben wir ein Skript erstellt, mit dem Sie:

  • Alle Tabellen in der Datenbank anzeigen
  • Neue Tabelle hinzufügen
  • Durchsuchen Sie jede Tabelle (mit Paginierung)
  • Fügen Sie einer bestimmten Tabelle neue Spalten hinzu
  • Löschen Sie Spalten aus einer bestimmten Tabelle
  • Fügen Sie neue Zeilen in die Tabelle ein
  • Zeilen bearbeiten und löschen

Sie müssen nur einen Ordner mit Ihrem FTP in Ihrem Projekt erstellen, wo immer Sie auf die Datenbank zugreifen möchten, und mit dem Erstellen von Dateien in diesem Ordner beginnen. Sie können direkt von Ihrem Browser aus auf diesen Ordner zugreifen. Nur Sie kennen den Pfad dieses Ordners, seit Sie ihn erstellt haben. Darüber hinaus muss eine Verbindung zur Datenbank hergestellt werden, bevor eine Aktion ausgeführt werden kann, und Sie können die Datenbankanmeldeinformationen über FTP abrufen.

Es folgt unsere Dateistruktur:

Sie können die Entwurfsvorlage herunterladen von hier.

Mit Datenbank verbinden

Zuerst erstellen wir ein Formular, von dem aus Sie eine Verbindung zur Datenbank herstellen können, da das Skript den Benutzernamen, das Kennwort und den Datenbanknamen nicht kennt. Da Sie bereits über einen FTP-Zugang verfügen, können Sie diese Werte finden.

<!-- index.php -->

<form action="connect.php" method="post">
    <p>
        <input name="username" type="text" required>
    </p>

    <p>
        <input name="password" type="password" required>
    </p>

    <p>
        <input name="database" type="text" required>
    </p>

    <p>
        <button name="submit_connect" type="submit">
            Connect
        </button>
    </p>
</form>

Das Skript benötigt nur den Namen des Datenbankbenutzers, das Kennwort des Benutzers und den Namen der Datenbank. Wenn dieses Formular gesendet wird, werden die Daten an die Datei connect.php gesendet. Jetzt müssen wir diese Datei erstellen und das Formular verarbeiten:

<?php

    // connect.php

    session_start();

    if (isset($_POST["submit_connect"]))
    {
        $username = $_POST["username"];
        $password = $_POST["password"];
        $database = $_POST["database"];

        $conn = mysqli_connect("localhost", $username, $password, $database) or die(mysqli_connect_error());

        $_SESSION["phpmyadmin_username"] = $username;
        $_SESSION["phpmyadmin_password"] = $password;
        $_SESSION["phpmyadmin_database"] = $database;
        $_SESSION["phpmyadmin_connected"] = true;

        header("Location: tables.php");
        exit();
    }
?>

Geben Sie den Benutzernamen, das Passwort und den Datenbanknamen Ihrer korrekten Datenbank ein und senden Sie das Formular ab. Wenn die Anmeldeinformationen in Ordnung sind, wird die Datenbank verbunden und die Sitzung gestartet. Wir verwenden PHP-Sitzungen, da nach dem Verbinden der Datenbank die Sitzungsvariablen auf allen anderen Seiten benötigt werden, um alle datenbankbezogenen Funktionen wie das Abrufen aller Tabellen, das Erstellen neuer Tabellen, Browsertabellen usw. auszuführen. Wenn die Datenbank erfolgreich verbunden wurde, werden alle Werte angezeigt des Formulars werden zusammen mit einer zusätzlichen Variablen separat in Sitzungsvariablen gespeichert phpmyadmin_connected. Der Wert ist true und wird nur verwendet, um festzustellen, ob der Benutzer angemeldet ist oder nicht. Wenn Sie die gewünschten Datenbankaktionen ausgeführt haben, können Sie die Verbindung sicher trennen und über die URL wird nicht mehr darauf zugegriffen.

Trennen

Nachdem Sie eine Verbindung hergestellt haben, können Sie Aktionen im Zusammenhang mit der Datenbankstruktur ausführen. Jetzt müssen wir die Möglichkeit haben, die Verbindung zur Datenbank zu trennen, da jemand versucht, von Ihrem Laptop, auf dem die Sitzung noch erstellt wird, auf die URL zuzugreifen, und einige Daten aus der Datenbank löschen oder alle Ihre Tabellen löschen kann.

Erstellen Sie ein Ankertag an einer beliebigen Stelle in Ihrem index.php beschriftet Ausloggen. Wenn Sie darauf klicken, entfernen Sie einfach die obigen Sitzungsvariablen aus $ _SESSION Array.

<a href="logout.php">Logout</a>

Jetzt in deinem logout.php Gehen Sie einfach wie folgt vor:

<?php
    
    // logout.php

    session_start();

    unset($_SESSION["phpmyadmin_username"]);
    unset($_SESSION["phpmyadmin_password"]);
    unset($_SESSION["phpmyadmin_database"]);
    unset($_SESSION["phpmyadmin_connected"]);

    header("Location: index.php");
    exit();
?>

Alle Tabellen anzeigen

Jeder Entwickler, der an FTP oder SFTP arbeitet, muss zunächst alle in dieser Datenbank erstellten Tabellen anzeigen. Sie müssen also nur eine neue Datei mit dem Namen erstellen tables.php in dem Ordner, den Sie im ersten Abschnitt erstellt haben, und zeigen Sie alle Tabellen in Tabellenform an:

<?php
    
    // tables.php

    $conn = mysqli_connect("localhost", $_SESSION["phpmyadmin_username"], $_SESSION["phpmyadmin_password"], $_SESSION["phpmyadmin_database"]) or die(mysqli_connect_error());    
?>

<table>
    <tr>
        <th>name</th>
        <th>actions</th>
    </tr>

    <?php
        $result = mysqli_query($conn, "SHOW TABLES");
        while ($row = mysqli_fetch_object($result)):
            $table_name = $row->{"Tables_in_" . $_SESSION["phpmyadmin_database"]};
    ?>
        <tr>
            <td><?php echo $table_name; ?></td>
            <td>
                <a href="view-table.php?name=<?php echo $table_name; ?>">
                    Browse
                </a>

                <a onclick="return confirm('Are you sure you want to drop this table ?');" href="delete-table.php?name=<?php echo $table_name; ?>">
                    Drop table
                </a>
            </td>
        </tr>

    <?php endwhile; ?>
</table>

Zuerst stellen wir mithilfe von Anmeldeinformationen aus Sitzungen eine Verbindung zur Datenbank her. Wenn die Sitzungswerte falsch sind oder wenn Sie die Verbindung getrennt haben, sind die Werte nicht vorhanden. In beiden Fällen stellt die Datenbank keine Verbindung her. Wenn die Anmeldeinformationen korrekt sind, wird die Datenbank verbunden und ein Tabellen-Tag mit 1 Zeile für Überschrift und 2 Zellen (Name und Aktionen) erstellt.

TABELLEN ANZEIGEN ist eine SQL-Abfrage, die alle Tabellen in der Datenbank zurückgibt. In jeder von dieser Abfrage zurückgegebenen Zeile haben wir einen Schlüssel mit dem Namen Tables_in_databasename wo Name der Datenbank ist der Name Ihrer Datenbank. Wir speichern das bereits in der Sitzungsvariablen, damit wir es von dort abrufen können. Dieser Schlüssel hat den Wert des Tabellennamens. Dies ist alles, was wir benötigen, um weitere Aktionen auszuführen.

In der zweiten Zelle erstellen wir 2 Schaltflächen (Tabelle durchsuchen und löschen). Zuerst werden wir die Ansichtsfunktion diskutieren, da das Durchsuchen der Datenbank die wichtigste Funktion ist, die jeder Entwickler benötigt, der an FTP arbeitet. Sie können einige Stile auf Ihr Tabellen-Tag anwenden, wenn Sie möchten:

<style>
    table, th, td {
        border: 1px solid black;
        border-collapse: collapse;
    }
    th, td {
        padding: 10px;
    }
</style>

Einzelne Tabelle durchsuchen

Erstellen Sie eine Datei mit dem Namen view-table.phpHier erhalten wir den Tabellennamen von der URL und zeigen alle Spalten und Zeilen daraus an. Wir müssen zwei Abfragen ausführen, eine zum Abrufen von Spalten und eine zum Abrufen von Zeilen:

<?php
    
    // view-table.php

    $conn = mysqli_connect("localhost", $_SESSION["phpmyadmin_username"], $_SESSION["phpmyadmin_password"], $_SESSION["phpmyadmin_database"]) or die(mysqli_connect_error());
    $name = $_GET["name"];

    $rows = array();
    $columns = array();

    $page_number = isset($_GET["page"]) ? $_GET["page"] : 1;
    $record_per_page = 100;
    $start_from = ($page_number - 1) * $record_per_page;

    $result = mysqli_query($conn, "SELECT * FROM " . $name . " LIMIT " . $start_from . ", " . $record_per_page);
    while ($row = mysqli_fetch_object($result))
    {
        array_push($rows, $row);
    }

    // Getting total number of records
    $result = mysqli_query($conn, "SELECT COUNT(*) AS total FROM " . $name);
    $total = mysqli_fetch_object($result)->total;
     
    // Calculating number of pagination links required
    $pages = number_format($total / $record_per_page);

    $result = mysqli_query($conn, "SHOW COLUMNS FROM " . $name);
    while ($row = mysqli_fetch_object($result))
    {
        array_push($columns, $row);
    }
?>

<table>
    <tr>
        <?php foreach ($columns as $column): ?>
            <th><?php echo $column->Field; ?></th>
        <?php endforeach; ?>
    </tr>

    <?php foreach ($rows as $row): ?>
        <tr>
            <?php foreach ($columns as $column): ?>
                <td><?php echo $row->{$column->Field}; ?></td>
            <?php endforeach; ?>
        </tr>
    <?php endforeach; ?>
</table>

<ul class="pagination">
    <?php for ($a = 1; $a <= $pages; $a++): ?>
        <li class="<?php echo $a == $page_number ? 'active' : ''; ?>">
            <a href="view-table.php?name=<?php echo $name; ?>&page=<?php echo $a; ?>">
                <?php echo $a; ?>
            </a>
        </li>
    <?php endfor; ?>
</ul>

Wir verwenden die Paginierung zum Durchsuchen der Daten, da wir nicht wissen, wie viele Daten eine Tabelle enthält. Wenn wir versuchen, alle Daten auf einmal zu laden, kann Ihr Browser abstürzen. Lassen Sie uns jeden Schritt diskutieren.

Zuerst stellen wir eine Verbindung zur Datenbank her und erhalten dann den Namen von der URL mithilfe der in PHP integrierten GET-Variablen. Wenn Sie dann zwei Arrays erstellen, eines für Zeilen und eines für Spalten, speichern wir die Daten in Arrays, da wir diese mehrmals benötigen. Dann erhalten wir Daten aus der Datenbank als 100 Datensätze pro Seite. Wir haben einen ausführlichen Artikel über die Implementierung der Paginierung geschrieben. Schau dir das an.

Dann erhalten wir alle Spalten der ausgewählten Tabelle. Dann erstellen wir ein Tabellen-Tag und zeigen alle Spalten in der ersten Zeile als Überschrift an. Wenn Sie sich vorwärts bewegen, sehen Sie 2 Schleifen, eine in einer anderen. Zuerst durchlaufen wir jede Zeile und erstellen eine tr Tag durchläuft dann jede Spalte und zeigt den Wert von an $ row Variable mit dem Schlüssel von $ column Variable. {} Der Operator wird verwendet, um den Objektschlüssel mit einer anderen Variablen abzurufen.

Schließlich erstellen wir eine ungeordnete Liste, um die Anzahl der Seiten anzuzeigen. Dies hängt von der Anzahl der Datensätze pro Seite ab, die Sie festlegen record_per_page führt zu weniger Seiten, niedriger die record_per_page führt zu mehr Seiten. Wir wenden auch eine Klasse mit dem Namen an aktiv Beim Listenelement der aktuellen Seite hebt Bootstrap standardmäßig das Listenelement hervor, das eine „aktive“ Klasse hat.

Zeile in Tabelle bearbeiten

Nachdem Sie die Daten aus der Datenbanktabelle durchsucht haben, können Sie an jeder Zeile 2 Schaltflächen (Bearbeiten, Löschen) erstellen, wie Sie es für Tabellen getan haben. Sie können diese Schaltflächen erstellen, indem Sie eine erstellen td Tag direkt nach dem $ Spalten Schleife:

<a href="edit-row.php?name=<?php echo $name; ?>&id=<?php echo $row->id; ?>">
    Edit row
</a>

<a onclick="return confirm('Are you sure you want to delete this row ?');" href="delete-row.php?name=<?php echo $name; ?>&id=<?php echo $row->id; ?>">
    Delete row
</a>

Erstellen Sie nun eine Datei mit dem Namen edit-row.php und zuerst alle Werte dieser Zeile in Eingabefeldern anzeigen. In dieser Datei erhalten wir den Tabellennamen und die ID der Zeile, die aktualisiert werden muss:

<?php

    // edit-row.php
    // make sure to connect with database as in previous step

    $name = isset($_GET["name"]) ? $_GET["name"] : "";
    $id = isset($_GET["id"]) ? $_GET["id"] : "";

    if (isset($_POST["submit_edit_row"]))
    {
        $sql = "UPDATE " . $name . " SET ";
        
        foreach ($_POST as $key => $value)
        {
            if ($key == "submit_edit_row")
            {
                continue;
            }
            $input =  mysqli_real_escape_string($conn, $value);
            $sql .= $key . " = '" . $input . "', ";
        }
        
        $sql = rtrim($sql, ", ");
        $sql .= " WHERE id = " . $id;

        $result = mysqli_query($conn, $sql);
    }

    $columns = array();
    $result = mysqli_query($conn, "SELECT * FROM " . $name . " WHERE id = " . $id);
    $data_row = mysqli_fetch_object($result);

    $result = mysqli_query($conn, "SHOW COLUMNS FROM " . $name);
    while ($row = mysqli_fetch_object($result))
    {
        array_push($columns, $row);
    }
?>

<form action="edit-row.php?name=<?php echo $name; ?>&id=<?php echo $id; ?>" method="post">
    <?php
        foreach ($columns as $column):
            if ($column->Field == "id")
            {
                continue;
            }
    ?>
        <div class="form-group">
            <input name="<?php echo $column->Field; ?>" value="<?php echo $data_row->{$column->Field}; ?>" type="text">
        </div>
    <?php endforeach; ?>
    
    <button name="submit_edit_row" type="submit">
        Edit row
    </button>
</form>

Dadurch werden alle aktuellen Werte dieser Zeile in Eingabefeldern angezeigt. Beim Senden werden die Werte in der Datenbank aktualisiert. Wir überspringen das ID-Feld in Eingabefeldern, da dies der Primärschlüssel ist, und wir sollten es nicht im Eingabefeld anzeigen, da jemand möglicherweise versehentlich seinen Wert aktualisiert.

Erstellen Sie eine neue Tabelle

Wenn Sie jemals nur mit FTP-Zugriff gearbeitet haben, benötigen Sie möglicherweise diese Funktion. Angenommen, der Client möchte eine neue Funktion hinzufügen, und für diese Funktion ist eine neue Tabelle in der Datenbank erforderlich. Anschließend können Sie ein Formular zur Eingabe des Tabellennamens erstellen. Beim Senden wird eine Tabelle mit diesem Namen in der Datenbank erstellt.

<?php

    // add-table.php
    // make sure to connect with database

    if (isset($_POST["submit_add_table"]))
    {
        $name = mysqli_real_escape_string($conn, $_POST["name"]);

        mysqli_query($conn, "CREATE TABLE IF NOT EXISTS " . $name . "(
            id INTEGER PRIMARY KEY NOT NULL AUTO_INCREMENT
        );");
    }
?>

<form action="add-table.php" method="post">
    <input name="name" type="text" required>

    <button name="submit_add_table" type="submit">
        Create table
    </button>
</form>

Dadurch wird eine neue Tabelle in der Datenbank erstellt, falls diese noch nicht mit demselben Namen vorhanden ist. Es wird nur 1 Auto-Inkrement-Schlüssel haben, der ein Primärschlüssel dieser Tabelle sein wird. Im nächsten Schritt erfahren Sie, wie Sie der Tabelle weitere Spalten hinzufügen.

Spalte in Tabelle hinzufügen

Wenn Sie dem Projekt weitere Funktionen hinzufügen, müssen Sie möglicherweise auch neue Spalten in die aktuelle Tabelle einfügen. Sie können dies einfach tun, indem Sie den Namen der Spalte und des Datentyps abrufen und mit hinzufügen ÄNDERN Befehl. Erstellen Sie eine neue Datei mit dem Namen add-column.php Der URL-Parameter enthält einen Tabellennamen, auf den wie folgt zugegriffen werden kann:

<a href="add-column.php?name=<?php echo $name; ?>">Add column</a>

Wobei $ name der Name der Tabelle ist, in der Sie eine neue Spalte hinzufügen möchten.

<?php

    // add-column.php
    // make sure to connect with database

    $name = isset($_GET["name"]) ? $_GET["name"] : "";

    if (isset($_POST["submit_add_column"]))
    {
        $column_name = mysqli_real_escape_string($conn, $_POST["name"]);
        $datatype = mysqli_real_escape_string($conn, $_POST["datatype"]);

        mysqli_query($conn, "ALTER TABLE " . $name . " ADD COLUMN " . $column_name . " " . $datatype . " NOT NULL");
    }
?>
 
<form action="add-column.php?name=<?php echo $name; ?>" method="post">
    <input name="name" type="text" class="form-control" required>
    
    <select name="datatype" class="form-control" required>
        <option value="">Please select</option>
        <option value="INTEGER">INTEGER</option>
        <option value="TEXT">TEXT</option>
        <option value="DOUBLE">DOUBLE</option>
        <option value="DATE">DATE</option>
        <option value="TIME">TIME</option>
        <option value="DATETIME">DATETIME</option>
        <option value="BOOLEAN">BOOLEAN</option>
    </select>
    
    <div>
        <button name="submit_add_column" type="submit">
            Create column
        </button>
    </div>
</form>

Wenn Sie dieses Formular ausfüllen und auf Senden klicken, wird eine neue Spalte in der ausgewählten Tabelle in der Datenbank erstellt. Die gängigsten Datentypen werden im Auswahl-Tag angezeigt. Sie können jedoch weitere hinzufügen, wenn Sie möchten.

Löschen Sie eine Spalte

Wenn Sie eine Spalte löschen, werden alle in dieser Spalte vorhandenen Daten gelöscht. Dazu zeigen wir eine Liste aller Spalten in der ausgewählten Tabelle. Erstellen Sie eine neue Datei mit dem Namen delete-column.php und es wird auch einen Namensparameter in der URL haben, der der Name der Tabelle ist, deren Spalte gelöscht werden muss.

<?php

    // delete-column.php
    // make sure to connect with database

    $name = isset($_GET["name"]) ? $_GET["name"] : "";

    if (isset($_POST["submit_delete_column"]))
    {
        $column_name = mysqli_real_escape_string($conn, $_POST["column_name"]);

        if ($column_name == "id")
        {
            echo "<p>Sorry cannot deleted ID primary key.</p>";
        }
        else
        {
            mysqli_query($conn, "ALTER TABLE " . $name . " DROP COLUMN " . $column_name);
        }
    }
?>

<form action="delete-column.php?name=<?php echo $name; ?>" method="post">
    <select name="column_name" required>
        <option value="">Please select</option>
        <?php
            $result = mysqli_query($conn, "SHOW COLUMNS FROM " . $name . " WHERE Field != 'id'");
            while ($row = mysqli_fetch_object($result)):
        ?>
            <option value="<?php echo $row->Field; ?>"><?php echo $row->Field; ?></option>
        <?php endwhile; ?>
    </select>

    <button name="submit_delete_column" type="submit">
        Delete column
    </button>
</form>

Zuerst erstellen wir ein Formular, das an die Seite selbst gesendet wird. Wir erhalten alle Spalten aus der Tabelle mit Ausnahme der ID, da es sich um einen Primärschlüssel handelt und dieser nicht gelöscht werden sollte. Dann zeigen wir jeden Spaltennamen im Options-Tag an. Das Wertattribut des Options-Tags ist auch der Spaltenname. Und schließlich eine Senden-Schaltfläche, die beim Klicken das Formular sendet.

Wenn das Formular gesendet wird, stellen wir eine Verbindung zur Datenbank her und überprüfen das Eingabefeld von SQL-Injektion. Stellen Sie sicher, dass Sie das ID-Attribut nicht löschen, und führen Sie schließlich das aus ÄNDERN Abfrage, um die Spalte aus der ausgewählten Tabelle zu löschen. Dadurch werden auch alle in dieser Spalte gespeicherten Daten gelöscht.

Fügen Sie eine Zeile in die Tabelle ein

Die Funktion zum Hinzufügen einer Zeile ähnelt fast der Funktion zum Bearbeiten der Zeile weiter oben in diesem Artikel. Sie müssen nur alle Spalten dieser Tabelle mit Ausnahme der ID abrufen, da diese automatisch inkrementiert wird. Bereiten Sie beim Senden des Formulars eine SQL-Abfrage vor und führen Sie den Befehl für aus EINFÜGEN die Reihe.

<?php

    // add-row.php
    // make sure to connect with database

    // name of table where row will be added
    $name = isset($_GET["name"]) ? $_GET["name"] : "";

    // check if the form is submitted
    if (isset($_POST["submit_add_row"]))
    {
        // preparing INSERT query column names
        $sql = "INSERT INTO " . $name . "(";

        // prepare VALUES clause for INSERT query
        $values = " VALUES (";
        
        // loop through all input fields
        foreach ($_POST as $key => $value)
        {
            // skip the submit button
            if ($key == "submit_add_row")
            {
                continue;
            }

            // prevent each input field from SQL injection
            $input =  mysqli_real_escape_string($conn, $value);

            // append column name in INSERT query
            $sql .= $key . ", ";

            // append column value in VALUES clause
            $values .= "'" . $input . "', ";
        }
        
        // remove last comma and add ) at the end in INSERT column statement
        $sql = rtrim($sql, ", ");
        $sql .= ")";

        // remove last comma and add ) at the end in VALUES clause
        $values = rtrim($values, ", ");
        $values .= ")";

        // appending both variables to become the final query
        $final_sql = $sql . $values;
        
        // executing the query
        mysqli_query($conn, $final_sql);
    }
?>

<form action="add-row.php?name=<?php echo $name; ?>" method="post">

    <?php
        $result = mysqli_query($conn, "SHOW COLUMNS FROM " . $name);
        while ($row = mysqli_fetch_object($result)):
            if ($row->Field == "id")
            {
                continue;
            }
    ?>
        <p>
            <input name="<?php echo $row->Field; ?>" type="text">
        </p>
    <?php endwhile; ?>
    
    <button name="submit_add_row" type="submit">
        Create row
    </button>
</form>

Dadurch wird ein Formular mit allen Tabellenspalten außer ID erstellt. Wenn das Formular gesendet wird, werden alle Daten an die Seite selbst gesendet. Der PHP-Code zum Ausführen der Abfrage wird in jedem Schritt erläutert.

Zeile löschen

Wenn Sie über FTP an dem Projekt Ihres Kunden arbeiten, haben Sie der Datenbank einige Testdaten hinzugefügt, um Ihre Funktionalität zu testen. Wenn Sie Ihre Tests abgeschlossen haben und Zeit haben, die Site live zu schalten, müssen Sie diese Testaufzeichnungen löschen. Daher haben wir im Abschnitt zum Bearbeiten von Zeilen bereits eine Schaltfläche erstellt, die vor dem Löschen dieser Zeile zur Bestätigung auffordert. Jetzt erstellen wir einfach eine Datei mit dem Namen delete-row.phpEs erhält den Namen der Tabelle, aus der die Zeile gelöscht werden soll, sowie die ID der Zeile. Dies hilft, die Zeile eindeutig zu identifizieren und zu löschen.

<?php
    
    // delete-row.php
    // make sure to connect with database

    if (isset($_GET["name"]) && isset($_GET["id"]))
    {
        $name = $_GET["name"];
        $id = $_GET["id"];
        
        mysqli_query($conn, "DELETE FROM " . $name . " WHERE id = " . $id);
    }
?>

Zuerst wird geprüft, ob die URL die enthält Name und Ich würde Parameter, dann wird eine einfache MySQL-Abfrage ausgeführt, um diese Zeile aus der ausgewählten Tabelle in der Datenbank zu löschen. Wenn Sie das erneut öffnen tables.php Datei und durchsuchen Sie die Tabelle, Sie werden diese Zeile nicht mehr sehen.

Lass einen Tisch fallen

Das Löschen einer Tabelle ähnelt fast dem Löschen der Spalte, mit Ausnahme einer geringfügigen Änderung in der Abfrage. Wir haben bereits eine Schaltfläche zum Ablegen einer Tabelle in der Tabelle erstellt „Alle Tabellen anzeigen“ Wenn Sie auf diesen Abschnitt klicken, wird eine Bestätigung angefordert. Wenn dies bestätigt wird, wird die Tabelle aus der Datenbank gelöscht. Erstellen Sie eine Datei mit dem Namen delete-table.php und fügen Sie den folgenden Code ein:

<?php

    // delete-table.php
    // make sure to connect with database

    if (isset($_GET["name"]))
    {
        $name = $_GET["name"];
        mysqli_query($conn, "DROP TABLE " . $name);
    }
?>

Es wird einfach eine Verbindung mit der Datenbank hergestellt. Überprüfen Sie, ob die URL vorhanden ist Name Parameter und löschen Sie die Tabelle mit MySQL TROPFENTABELLE Erklärung.

Suche

In deiner edit-table.php und view-table.php Wenn Sie alle Daten in der ausgewählten Tabelle sehen, möchten Sie möglicherweise auch eine Suchfunktion haben. In beiden Dateien erstellen wir ein einfaches Formular. Beim Senden ändern wir unsere Abfrage so, dass beim Laden der Seite die normale Abfrage (die wir bereits durchgeführt haben) ausgeführt wird und beim Suchen des Formulars unser neuer Code ausgeführt wird eingereicht.

<form method="POST" action="edit-table.php?name=<?php echo $name; ?>">
    <p>
        <input name="search" value="<?php echo isset($_POST['search']) ? $_POST['search'] : ''; ?>" type="text" required>
    </p>

    <button name="submit_search" type="submit">
        Search
    </button>
</form>

Dadurch wird ein Formular mit a erstellt POST Methode und Aktionsattribut sind edit-table.php. Im Fall von view-table.php müssen Sie es nur in view-table.php ändern. Ein Sucheingabefeld wird erstellt und hat den Wert, wenn das Formular gesendet wird. Andernfalls ist dieses Feld leer. Und zum Schluss noch einen Submit-Button.

Jetzt müssen Sie Ihren Code in edit-table.php ändern, wo Sie alle Zeilen aus der Tabelle abrufen und verwenden GRENZE Klausel.

// check if the search form is submitted
if (isset($_POST["submit_search"]))
{
    // initialize query
    $sql_search = "SELECT * FROM " . $name . " WHERE ";
    
    // array to save all columns
    $sql_search_fields = array();

    // get all columns of selected table
    $rs = mysqli_query($conn, "SHOW COLUMNS FROM " . $name);
    
    // loop through each column
    while($r = mysqli_fetch_object($rs))
    {
        // LIKE clause will search for any occurrence of searched text
        array_push($sql_search_fields, $r->Field . " LIKE '%" . $_POST["search"] . "%' ");
    }

    // implode will join all the array elements with OR clause
    $sql_search .= implode(" OR ", $sql_search_fields);

    // executing the query
    $result = mysqli_query($conn, $sql_search);
}
else
{
    // if the search form is not submitted then display all data
    $result = mysqli_query($conn, "SELECT * FROM " . $name . " LIMIT " . $start_from . ", " . $record_per_page);
}

Ihre vorherige Abfrage bleibt unverändert. Zuerst prüfen wir, ob das Suchformular gesendet wurde. Wenn nicht, zeigen wir Daten wie zuvor an (mithilfe der Paginierung). Der gesamte Code für die Suchfunktion wird anhand von Kommentaren in jeder Zeile erläutert. Wenn Sie immer noch Schwierigkeiten haben, den Code zu verstehen, erwähnen Sie ihn bitte im Kommentarbereich unten.

Fazit

Wenn Sie weitere Ideen haben, die Sie in diesen phpMyAdmin aufnehmen möchten, zögern Sie bitte nicht, sich mit uns in Verbindung zu setzen.



[ad_2]