it-swarm.com.de

mySQL-Abfrage von WordPress-Seite mit benutzerdefinierten Tabelle

Ich möchte eine MySQL-Abfrage, die einem Seitentitel entspricht. Ich bin mir nicht sicher, wie ich diese Aufgabe besser erledigen kann, aber ich stecke fest.

Dies ist mein grundlegender Testcode.

<?php
$page_title = wp_title('');
echo $page_title;
$test = $wpdb->get_results("SELECT * FROM $wpdb->park_data WHERE park_name = '"$page_title"' ") or die(mysql_error());  
$row = mysql_fetch_array($test);
echo $row['park_name'];
?>

Ich erhalte immer wieder einen Fehler bei der Abfrage. Wenn ich nur wp_title (''), kein Problem, drucke.

Kann jemand sehen, was ich falsch mache?

1
mrlayance

Ich denke, wenn Sie ein paar Punkte vor und nach der PHP-Variable in Ihrer Abfrage hinzufügen, die Verwendung von mysql_fetch_array entfernen und get_row () verwenden, sollte es besser funktionieren. So würde ich einen Park von Ihrem benutzerdefinierten Tisch erhalten:

<?php
$page_title = wp_title('');
$park = $wpdb->get_row("SELECT * FROM $wpdb->park_data WHERE park_name='".$page_title."'");  
if($park)
{
   print_r($park); // because other than it being an object, I'm not exactly sure what's returned.
}
?>

Beachten Sie außerdem, dass die mysql-Abfrage davon ausgeht, dass wp_title () den Seitentitel zurückgibt, der genauso formatiert ist wie der in der Datenbank gespeicherte park_name. Möglicherweise müssen Sie wp_title () formatieren, damit es mit Ihren Tabellendaten übereinstimmt.

Anscheinend möchten Sie nur einen Park zurückgeben, also habe ich stattdessen get_row () verwendet: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Row

1
Ben HartLenn