web-dev-qa-db-fra.com

Obtenir des données de la base de données en utilisant $ WPDB

Il me manque quelque chose ici.
Je veux simplement obtenir des données de ma base de données. J'ai donc essayé cela mais continue de me donner une erreur.

global $wpdb;
$sql = "SELECT * FROM $wpdb->postmeta WHERE group='$group'";
$results = $wpdb->get_results($sql) or die(mysql_error());

foreach( $results as $result ) {

    echo $result->company_name;

}

$group est un paramètre passé dans l'URL de la variable est $group = $_GET['group'];

C'est l'erreur:

Erreur de base de données WordPress: [Vous avez une erreur dans votre syntaxe SQL; Consultez le manuel correspondant à la version de votre serveur MySQL pour connaître la syntaxe à utiliser près de 'groupe =' bicyclegroup '' à la ligne 1] SELECT * FROM xx_postmeta WHERE groupe = 'thegroup' Votre syntaxe SQL contient une erreur; Consultez le manuel correspondant à la version de votre serveur MySQL pour connaître la syntaxe à utiliser près de 'groupe =' thegroup '' à la ligne 1.

Quelqu'un peut-il m'aider à résoudre ce problème une fois pour toutes afin que je puisse le sauvegarder localement et l'utiliser pour d'autres projets :-)

1
Interactive

C'est peut-être parce que group n'existe pas dans la table postmeta. Votre meta_key s'appelle probablement group et a un meta_value sur bicyclegroup . Cela suppose que vous n'avez pas modifié la table postmeta. Ce que vous pouvez essayer, c'est:

$sql = "SELECT * FROM $wpdb->postmeta WHERE meta_key = 'group' AND meta_value='$group'";

Cela retournera:

  • meta_id
  • post_id
  • meta_key (groupe)
  • meta_value (bicyclegroup)

Une autre option est d’obtenir tous les messages post par meta soit un requête secondaireWP_Query . Pour ce faire, ressemblerait à ceci:

$test_posts = new WP_Query( array(
    'post_type'      => 'post',
    'posts_per_page' => -1,
    'meta_key'       => 'group',
    'meta_value'     => $group
) );

<?php if( $test_posts->have_posts() ) : ?>

    <?php while( $test_posts->have_posts() ) : $test_posts->the_post(); ?>

        <h1><?php the_title(); ?></h1>
        <?php the_content(); ?>

    <?php endwhile; ?>

<?php endif; ?>

Je ne sais pas si vous utilisez post, votre type de publication afin de modifier ce champ en conséquence.

4
Howdy_McGee