web-dev-qa-db-fra.com

Comment gérer SQL avec un exemple de tableau de liste personnalisé

J'utilise le plugin Custom List Table Example comme base pour afficher les entrées d'une table que j'ai créée dans la base de données wordpress ...

Cependant, j'ai des problèmes avec cette fonction

function column_default($item, $column_name){

}

Je reçois le message d'erreur:

Fatal error: Cannot use object of type stdClass as array in

Dans l'exemple du plugin, il utilise un tableau simple. Mais les $ data renvoyés par la requête renvoient plusieurs lignes de données (c'est-à-dire un tableau avec objet, objet, objet).

À l'intérieur de ma fonction prepare_items ():

 global $wpdb;
          $orderby = (!empty($_REQUEST['orderby'])) ? $_REQUEST['orderby'] : 'name'; //If no sort, default to title
          $sql = "SELECT * FROM wp_nc_location ORDER BY " . $orderby;
          $data = $wpdb->get_results($sql);
3
redconservatory

Je l'ai obtenu en passant $ item sous forme de tableau

function column_default($item, $column_name){
$item = (array)($item)
}
0
redconservatory
$data = $wpdb->get_results($sql, ARRAY_A);

L'ajout de ARRAY_A force get_results à renvoyer un tableau associatif.

3
juust

C'est ce que j'utilise pour récupérer des données à partir de tables personnalisées:

  // Retrieve all seasons registered
  function get_registered_seasons() {
    global $wpdb;

    $table_name   = $wpdb->prefix . "cwgallery";    
    $sql          = "SELECT DISTINCT year, season FROM $table_name ORDER BY year DESC ";
    $result  = $wpdb->get_results($sql);

    return $result;
  }
0
Steven