Datenbankabfrage... Wie am besten?

  • hab ein wenig gelesen... allerdings erst rudimentäres herausgefunden.

    Ich habe meine Datenbanktabellen in dieselbe Datenbank wie WP kopiert.

    Anscheinend gibt es zwei Optionen für eine Datenbankabfrage.

    1. Irgendwie mit PHP-EXEC
    2. Über ein Template auf eine Page ausgeben

    Wie mache ich es am besten. Die WP-Struktur der statischen Seitenausgabe gefällt mir ganz gut.

    Ganz ehrlich... ganz verstanden hab ich beides noch nicht. Ich hoffe Ihr versteht mich und könnt mir helfen.

    Ziel ist es Adressinformationen in Pages einzubinden.

    BG Chris :-)

    • 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

  • Ich würde das in jedem Fall über ein Page-Template machen. PHP-Exec ist ein Plugin, dass Dir erlaubt, PHP-Anweisungen in den Seiteninhalt zu schreiben. Aber ich bin mir halbwegs sicher, dass das aufwändiger und schlechter zu warten ist, als ein Template dafür anzulegen.

    Ansonsten kannst Du Dir ja auch mal die Benutzerdefinierten Felder anschauen. Vielleicht brauchst Du gar keine eigenen Tabellen für die Infos, sondern kannst die darüber speichern?

    Einmal editiert, zuletzt von Ammaletu (28. Oktober 2008 um 11:51)

  • Hallo Ammaletu,

    Ich würde das in jedem Fall pr Page-Template machen. PHP-Exec ist ein Plugin, dass Dir erlaubt, PHP-Anweisungen in den Seiteninhalt zu schreiben. Aber ich bin mir halbwegs sicher, dass das aufwändiger und schlechter zu warten ist, als ein Template dafür anzulegen.

    Ansonsten kannst Du Dir ja auch mal die Benutzerdefinierten Felder anschauen. Vielleicht brauchst Du gar keine eigenen Tabellen für die Infos, sondern kannst die darüber speichern?

    Vielen Dank für die Hinweise...

    Auf der Seite
    Design/Theme Editor
    finde ich leider keinen Button "Add template"
    Wie geht das? Wie kann ich ein template mit beliebigem Namen hinzufügen?
    Oder soll ich einfach auf dem server eine neue php-Datei anlegen?

    BG Chris :-)

  • Das wird möglicherweise nicht über den Theme-Editor gehen. Kopier Dir einfach die Theme-Datei, die der gewünschten Ansicht am nächsten kommt (z.B. page.php), nenne sie der Übersicht halber "template_[templatename].php" und lade sie dann auf den Server hoch. Ganz oben in der Datei muss ein PHP-Kommentar stehen, der mit "Template: [Templatename]" beginnt, damit WordPress die Datei als Template erkennt (siehe Beispiel-Templates im Default-Theme).

  • super... funktioniert...

    Einfaches Beispiel:

    aus einer DBtabelle soll die erste Spalte des Datensatzes den slug und die Überschrift werden lassen und aus der zweiten Spalte die ersten drei Sätze?

    Plan ist aus allen ersten Spalten eine Übersicht zu machen. Z.B. eine Cloud. Bei Klick auf Ausdrücke in der Cloud wird dann auf die Unterseite verwiesen. Dabei möchte ich nicht noch jede einzelne Page selbst anlegen müssen. Die Pages sollen genauso generiert werden wie die Unterseiten

    1. Wie erzeuge ich diese Cloud Seite, bzw. was muss ich dafür in das template.php eingeben?
    2. Wie erzeuge ich die Unterseite mit den Details?

    BG Chris :-)

    Einmal editiert, zuletzt von chris1 (28. Oktober 2008 um 12:47)

  • Habe ich das richtig verstanden: Du hast eine Tabelle mit zwei Spalten (Überschrift und Text). Aus den Überschriften willst Du z.B. eine Tag-Cloud erzeugen und davon auf die Einzelseiten mit den Texten verweisen!?

    Also die Übersichts-Seite erzeugst Du schon mal über ein Template. Darin musst Du die SQL-Abfrage hart-codiert ausführen, denke ich, über WP_Query wird das nicht gehen(!?). Ein Beispiel habe ich gerade nicht parat, aber da sollte sich im Codex eigentlich was finden lassen.

    Wie Du das mit den Unterseiten löst, bin ich mir aber nicht sicher. So richtig wie in WordPress selbst mit eigener Adresse wüsste ich nicht, wie Du es anstellen könntest. WordPress muss aus der aufgerufenen URL ja das anzuzeigende Objekt ermitteln können und weiß von Deinen Objekten nichts (öhm, man könnte was mit der 404.php des Themes bauen, aber das würde ich ehrlich gesagt eher nicht probieren)

    Was auf jeden Fall gehen würde wäre eine Unterseite anzulegen, z.B. "details", und diese dann mit einem URL-Parameter aufzurufen, z.B. "/parentseite/details?show=slug". Den Slug kannst Du hoffentlich mit WordPress-Methoden aus der Überschrift erzeugen, das müsstest Du mal schauen, ob man die einfach benutzen kann. Die Unterseite kriegt dann ebenfalls ein Template, welche aus dem URL-Parameter ebenfalls per SQL-Query den entsprechenden Datensatz zieht und darstellt. Unbedingt darauf achten, dass Du mit dem Einbau des Parameters in die Query keine SQL-Injection ermöglichst!

  • Habe ich das richtig verstanden: Du hast eine Tabelle mit zwei Spalten (Überschrift und Text). Aus den Überschriften willst Du z.B. eine Tag-Cloud erzeugen und davon auf die Einzelseiten mit den Texten verweisen!?

    Also die Übersichts-Seite erzeugst Du schon mal über ein Template. Darin musst Du die SQL-Abfrage hart-codiert ausführen, denke ich, über WP_Query wird das nicht gehen(!?). Ein Beispiel habe ich gerade nicht parat, aber da sollte sich im Codex eigentlich was finden lassen.

    Wie Du das mit den Unterseiten löst, bin ich mir aber nicht sicher. So richtig wie in WordPress selbst mit eigener Adresse wüsste ich nicht, wie Du es anstellen könntest. WordPress muss aus der aufgerufenen URL ja das anzuzeigende Objekt ermitteln können und weiß von Deinen Objekten nichts (öhm, man könnte was mit der 404.php des Themes bauen, aber das würde ich ehrlich gesagt eher nicht probieren)

    Was auf jeden Fall gehen würde wäre eine Unterseite anzulegen, z.B. "details", und diese dann mit einem URL-Parameter aufzurufen, z.B. "/parentseite/details?show=slug". Den Slug kannst Du hoffentlich mit WordPress-Methoden aus der Überschrift erzeugen, das müsstest Du mal schauen, ob man die einfach benutzen kann. Die Unterseite kriegt dann ebenfalls ein Template, welche aus dem URL-Parameter ebenfalls per SQL-Query den entsprechenden Datensatz zieht und darstellt. Unbedingt darauf achten, dass Du mit dem Einbau des Parameters in die Query keine SQL-Injection ermöglichst!

    Ja, richtig verstanden.

    Warum geht das nicht über WP-Query... ist alles in einer Datenbank. WP und die neue Tabelle?

    Ich mein, ich kenn mich nicht so gut aus. Können WP-Queries nur auf Tabellen ausgeführt werden, die ursprünglich in der WPDB waren?... oder auch auf zusätzliche?

    BG Chris :-)

  • Ich denke schon, dass man wpdb benutzen kann, wenn man eine SQL-Abfrage hardcodieren will die sich in der gleichen Datenbank befinden.

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Zitat

    Ich denke schon, dass man wpdb benutzen kann, wenn man eine SQL-Abfrage hardcodieren will die sich in der gleichen Datenbank befinden.

    Das schon, aber eben nicht die Klasse WP_Query oder die Funktion query-posts. Das wollte ich damit nur sagen. ;-)

Jetzt mitmachen!

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