2017-02-02 2 views
3

Ich habe die Tabelle namens: Persona, in meiner Datenbank. Ich muss nur die Daten in dieser Tabelle in eine HTML-Tabelle innerhalb einer Seite in Wordpress abgerufen. Bis jetzt ist es das, was ich habe:Datenbankinfo in HTML-Tabelle anzeigen Wordpress

<table border="1"> 
<tr> 
<th>Firstname</th> 
<th>Lastname</th> 
<th>Points</th> 
</tr> 
<tr> 
    <?php 
    global $wpdb; 
    $result = $wpdb->get_results ("SELECT * FROM persona"); 
    foreach ($result as $print) { 
     echo '<td>' $print->ID_per.'</td>'; 
     } 
    ?> 
</tr>    

i in der spezifischen Seite hinzugefügt ich es bin auf und veröffentlichen, aber wenn ich die Seite aktualisieren zeigt es nur den Code auf der Seite gedruckt. Ich frage mich, ob ich den Code an der richtigen Stelle setze oder ich weiß nicht, wo ich ihn hinbekomme.

Schauen Sie sich die Bilder unter: enter image description here

+1

Sie können nicht PHP-Code in WordPress Seiten/Post, sollten Sie eine Vorlage erstellen und verwenden Sie es auf Ihrer Seite. –

+1

Besser wäre es noch, einen Shortcode in der functions.php-Datei Ihres Themes zu erstellen, der es erlaubt, dies mit einem Shortcode zu tun. –

+0

viel bessere Option! Lass mich dir den Code zeigen –

Antwort

4

Angesichts Ihrer Situation, der einfachste, beste Weg, dies zu tun wäre, ein shortcode zu Ihrem Thema hinzuzufügen.

Wenn Sie diesen Code zur Datei Ihres Designs hinzufügen, können Sie die Informationen dort anzeigen, wo Sie möchten, indem Sie [persona-table] zu einer beliebigen Seite hinzufügen.

// add the shortcode [persona-table], tell WP which function to call 
add_shortcode('persona-table', 'persona_table_shortcode'); 

// this function generates the shortcode output 
function persona_table_shortcode($args) { 
    global $wpdb; 
    // Shortcodes RETURN content, so store in a variable to return 
    $content = '<table>'; 
    $content .= '</tr><th>Firstname</th><th>Lastname</th><th>Points</th></tr>'; 
    $results = $wpdb->get_results(' SELECT * FROM persona'); 
    foreach ($results AS $row) { 
     $content = '<tr>'; 
     // Modify these to match the database structure 
     $content .= '<td>' . $row->firstname . '</td>'; 
     $content .= '<td>' . $row->lastname . '</td>'; 
     $content .= '<td>' . $row->ID_per . '</td>'; 
     $content .= '</tr>'; 
    } 
    $content .= '</table>'; 

    // return the table 
    return $content; 
} 
+0

hey kaleb! Diese Lösung hat funktioniert. Nur für einige Zeit ist es nicht die Tabelle Stil nehmen –

+0

Ich bemerkte gerade einen Tippfehler - die Schließung '' fehlte die '/', also habe ich das behoben. die letzte Zeile innerhalb der Schleife sollte '$ content. = '';' sein - wenn Sie denselben Tippfehler in Ihrem Code haben, würde er nicht korrekt angezeigt. –

+0

kein Problem caleb ich schon das beheben. Was ich jetzt tun möchte, ist die Tabelle zu formatieren, aber wenn ich Klassen für Elemente hinzufüge, funktioniert das nicht: $ content. = ''. $ row-> ID_per. ''; irgendwelche Vorschläge? Danke in Advanced –

0

Versuchen Sie so etwas wie:

function db_short() { 
    global $wpdb; 
    $result = $wpdb->get_results ("SELECT * FROM persona"); 
    foreach ($result as $print) { 
     echo '<td>' $print->ID_per.'</td>'; 
    } 
} 
add_shortcode('show_db_info', 'db_short'); 

Und dann legen Sie einfach den Shortcode [show_db_info], wo Sie den PHP-Code setzen. Wenn Sie das PHP weiter bearbeiten möchten, können Sie dies innerhalb dieser Funktion tun. Wenn Sie eine andere Auswahl aus Ihrer Datenbank benötigen, fügen Sie Shortcode-Attribute hinzu, aber nur um diese aufzulisten, sollte dies ausreichen. Dies geht in functions.php

+0

danke für Ihre Hilfe @L L. Ich habe Ihre Vorschläge ausprobiert, aber aus irgendeinem Grund gab mir die $ print-Zeile einen Fehler. Vielen Dank –

+0

Ich habe gerade einen kurzen Auszug aus Ihrem Code geschrieben, @cale_b 's Antwort ist viel vollständiger und genauer. Viel Glück mit Ihrem Projekt! –

+0

aber ich schätze deine Hilfe LL, danke aber. Einen schönen Tag noch –

Verwandte Themen