2010-10-08 5 views
2

J'essaie d'afficher toutes les valeurs d'une colonne spécifique créée par mon plugin Wordpress (en particulier, les ID). Voici le code que j'ai réussi à utiliser pour afficher les noms des colonnes, mais je n'arrive pas à l'afficher uniquement pour tous les ID. Voici le code:Afficher les valeurs de colonne de la base de données

function test() { 
    global $wpdb; 
    global $table_name; 
    $testing = $wpdb->get_col_info('name', 0); 
    foreach ($testing as $test) { 
     echo $test; 
    } 
} 

Et vous pouvez voir la sortie:

www.matthewruddy.com/premiumslider

Quelqu'un peut-il me aider?

Répondre

0

Il semble que vous vouliez des données plutôt que des informations sur les colonnes. Donc, vous devez another function.

$testing = $wpdb->get_results("SELECT id FROM mytable") 
foreach ($testing as $test) { 
    echo $test->id 
} 

EDIT:

OK, que diriez-vous celui-ci:

$wpdb->show_errors(); 
echo 'Listing from table: $table_name<br>'; 
$ids = $wpdb->get_col($wpdb->prepare("SELECT id FROM %s", $table_name)); 
if ($ids) { 
    echo 'printing results:<br>'; 
    foreach($ids as $id) { 
    echo $id; 
    } 
} else { 
    echo 'no results or error<br>'; 
    echo 'error: ' . $wpdb->print_error(); 
} 
$wpdb->hide_errors(); 

Si cela ne vous aide pas non plus pour obtenir votre ID de ou pour comprendre ce que le erreur est, je suis perdu.

+0

Cela ne génère rien .. –

+0

Avez-vous remplacé 'mytable' par le contenu de $ table_name? Et votre colonne est appelée «id» dans la base de données ou autre chose. – thomaspaulb

+0

J'ai remplacé ma table par $ table_name et plus haut; $ nom_table global. Cela fonctionne pour toutes les autres instances. Et oui, ça s'appelle 'id'. –

0

Peut-être un peu tard pour cette question, mais je pense qu'il est toujours pertinent pour le monde WordPress d'aujourd'hui et aussi une situation que j'ai couru dans la création de mon propre plugin.

Donc pour quelqu'un d'autre, cela a fonctionné pour moi. Le PO l'a presque eu. Cependant, $ wpdb-> get_col_info() repose sur un résultat de cache pour ses résultats, de sorte qu'un $ wpdb-> get_results ou get_row ou une requête doivent être appelés en premier. :)

J'ai aussi aimé la gestion des erreurs de littlegreen.

 


    function test() { 
     global $wpdb, $table_name; 
     $wpdb->show_errors(); 
     $return = 'Listing from table: '.$table_name.'
'; $results = $wpdb->get_results("SELECT * FROM ".$table_name); $nameCols = $wpdb->get_col_info('name'); if (is_array($nameCols)) { $return .= 'printing results:
'; foreach($nameCols as $name) { $return .= ' '.$name; } } else { $return .= 'no results or error
'. 'error: ' . $wpdb->print_error(); } $wpdb->hide_errors(); }
Questions connexes