web-dev-qa-db-fra.com

requête mysql à partir de la page wordpress en utilisant une table personnalisée

Je veux une requête mysql qui correspond à un titre de page. Pas sûr d'une meilleure façon d'accomplir cette tâche, mais je suis coincé.

Ceci est mon code de test de base.

<?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'];
?>

Je continue à recevoir une erreur sur la requête. Si je répète simplement wp_title ('') ;, pas de problème, affiche.

Quelqu'un peut-il voir ce que je fais mal?

1
mrlayance

Je pense que si vous ajoutez quelques points avant et après la variable php dans votre requête, supprimez l'utilisation de mysql_fetch_array et utilisez get_row (), cela devrait mieux fonctionner. Voici comment obtenir un parc de votre table personnalisée:

<?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.
}
?>

De plus, n'oubliez pas que la requête mysql suppose que wp_title () retourne le titre de la page au format identique à celui du nom de parc stocké dans la base de données. Vous devrez peut-être formater wp_title () pour le faire correspondre à vos données de table.

Il semblerait que vous souhaitiez simplement qu'un parc soit renvoyé. J'ai donc utilisé get_row () à la place: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Row

1
Ben HartLenn