DB Daten in neuer leeren Seite ausgeben

  • Hallo zusammen!

    Hoffe, ich bin mit meiner Frage in der richtigen Rubrik.

    Ich erstelle mir gerade in WP ein auf mich zugeschnittenes Zeiterfassungssystem (Auftrag, Rufbereitschaftseinsätze, Urlaub, Fahrtkosten etc.). KLappt auch alles soweit ganz gut.
    Nun hänge ich an einer Stelle fest.
    Ich habe in einem Form Daten eingegeben, diese werden in einer Datenbank gespeichert. Auch alles ok und funktioniert.
    Jetzt habe ich ein zweites Form, in dem ich einen Zeitraum "Von" und "Bis" angeben kann (zwei Datepicker) und mit klick auf den Submit-Button soll sich eine neue leere Seite im neuen Tab öffnen, wo nur die angeforderten Daten ausgegeben werden - also ohne WP-Design. Sinn und Zweck ist es die Daten dann fürs FA ausdrucken zu können - ohne Grafiken etc.

    Wenn ich in der Form action eine PHP-Datei angebe, zeigt er mir immer an, dass diese nicht gefunden wurde, obwohl im Template-Ordner vorhanden. Evt. blockiert WP diese Aktion?

    Wenn ich es im Content anzeigen lasse, wird der Scrollbalken der Seite ziemlich lang und alles erscheint doch sehr unübersichtlich. Daher die Anforderung, es in einer neuen leeren Seite anzeigen zu lassen.

    Wäre schön, wenn mir da jemand helfen könnte.

    Gruss
    Steph

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • So, jetzt habe ich es zumindest schon mal geschafft, dass die in der Form action angegebene PHP-Datei (beispiel.php) in einem neuem Tab geladen wird, wenn ich den Submit-Button im Form klicke. Problem ist jetzt, dass keine Daten aus der Datenbank angezeigt werden. Der Code zum Datenbankzugriff mittels $wpdb steht in der beispiel.php.

    Hat jemand eine Lösung?

  • So, jetzt habe ich es zumindest schon mal geschafft, dass die in der Form action angegebene PHP-Datei (beispiel.php) in einem neuem Tab geladen wird, wenn ich den Submit-Button im Form klicke. Problem ist jetzt, dass keine Daten aus der Datenbank angezeigt werden. Der Code zum Datenbankzugriff mittels $wpdb steht in der beispiel.php.

    Hat jemand eine Lösung?

    Kannst du mal den Inhalt der beispiel.php hier posten? Ich nehme an, du lädst dann einfach die wp-load.php per include? Oder wie sorgst du dafür, dass wpdb in deiner PHP Datei verfügbar ist?

    Werden in der error.log irgendwelche Fehler ausgegeben?

  • Hallo!
    Danke für die schnelle Antwort.

    <?php
    global $wpdb;
    $wpdb->show_errors();


    $start = $_POST["start"];
    $ende = $_POST["ende"];


    echo $start;
    echo $ende;


    $xxx = $wpdb->get_results("SELECT * FROM arz ");
    foreach($xxx as $aw)
    {
    echo $aw->AB01;
    echo " | ".$aw->AC03;
    echo " | EZ: ".$aw->AC01." - ".$aw->AC02;
    echo " | SAP: ".$aw->AD03;
    echo " | AZ: ".$aw->AD01." - ".$aw->AD02;
    echo " | KM: ".$aw->AC04;
    echo "<br>";
    echo $aw->AD04;
    echo ": ".$aw->AD05;


    echo "<br></br>";
    }
    ?>


    Ich dachte, es würde auch über die globale $wpdb funktionieren. Wahrscheinlich habe ich da was außer acht gelassen?

  • Wunderbar. Da hat mich jemand zum Denken in eine andere Richtung gebracht.

    Vielen Dank dafür

    Folgende Lösung hat mich zum Ziel geführt.

    [COLOR=#000088]$parse_uri[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]explode[/COLOR][COLOR=#009900]([/COLOR] [COLOR=#0000FF]'wp-content'[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$_SERVER[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'SCRIPT_FILENAME'[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]require_once[/COLOR][COLOR=#009900]([/COLOR] [COLOR=#000088]$parse_uri[/COLOR][COLOR=#009900][[/COLOR][COLOR=#CC66CC]0[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]'wp-load.php'[/COLOR] [COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

  • Wenn das die ganze Datei ist, dann fehlt das Starten von WordPress (wie schon von danielgoehr in Frageform angemerkt), daher existiert [FONT=courier new]$wpdb[/FONT] nicht. Je nach Lage Deiner [FONT=courier new]beispiel.php[/FONT] den Pfad in [FONT=courier new]require(...)[/FONT] noch anpassen, so dass er auf den richtigen Ordner (Hauptordner von WordPress) mit der genannten Datei zeigt.

    PHP
    <?php
    
    
    [COLOR=#ff0000]define( 'WP_USE_THEMES', false );
    require( './wp-blog-header.php' );
    [/COLOR]
    global $wpdb;
    $wpdb->show_errors();
    ...
  • Wenn das die ganze Datei ist, dann fehlt das Starten von WordPress (wie schon von danielgoehr in Frageform angemerkt)

    Genau. Darauf wollte ich hinaus. Wenn auch zugegebenermaßen etwas um die Ecke formuliert :)

    Theoretisch sollte ein include von wp-load.php reichen.

    Siehe dazu:
    https://frankiejarrett.com/2012/04/the-si…de-wp-load-php/

    Wobei die Hinweise von b3317133 zum Pfad da aber natürlich genauso gelten.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!