web-dev-qa-db-fra.com

Stocker un tableau à partir d'une requête de base de données renvoyée et utiliser le tableau dans une nouvelle requête

Je suis en train de stocker les résultats dans une variable d'une table de base de données comme ceci:

$followed = $wpdb->get_results("SELECT user_id1 FROM wp_um_followers WHERE user_id2 = 1", ARRAY_A);

Cela retourne un tableau comme ceci:

Array ( [0] => Array ( [user_id1] => 144 ) [1] => Array ( [user_id1] => 50 ) [2] => Array ( [user_id1] => 42 ) [3] => Array ( [user_id1] => 829 ) [4] => Array ( [user_id1] => 826 ) [5] => Array ( [user_id1] => 822 ) [6] => Array ( [user_id1] => 823 ) [7] => Array ( [user_id1] => 821 ) [8] => Array ( [user_id1] => 820 ) [9] => Array ( [user_id1] => 819 ) [10] => Array ( [user_id1] => 818 ) [11] => Array ( [user_id1] => 816 ) [12] => Array ( [user_id1] => 817 ) [13] => Array ( [user_id1] => 814 ) [14] => Array ( [user_id1] => 815 ) [15] => Array ( [user_id1] => 15 ) [16] => Array ( [user_id1] => 93 ) [17] => Array ( [user_id1] => 844 ) ) 

Maintenant, j'aimerais configurer une nouvelle requête en utilisant les valeurs user_id1 du tableau ci-dessus en tant que valeurs pour une requête à plusieurs auteurs sur un type d'article personnalisé.

Quelque chose comme ça :

$get_these_posts = array( 'post_type' => 'stream', 'post_status' => 'publish', 'posts_per_page' => '10', 'paged' => $paged, ( array( 'author__in' => array( $followed ) ) ) );

Ce qui ne devrait renvoyer que des publications d’auteurs figurant dans la requête originale stockée dans la variable $ suivie.

Mais cela ne fonctionne évidemment pas car je ne cible pas la bonne partie du tableau [user_id1] et je ne sais pas comment.

Je ne suis même pas sûr que la deuxième requête est correctement configurée, ou si elle peut effectivement être configurée de cette manière?

Toute aide est la bienvenue.

1
Grant

Vous devez passer author__in en tant que tableau, mais ce n'est pas ce que vous faites avec ceci: ( array( 'author__in' => array( $followed ) ) ). Vous créez un ensemble étrange de tableaux imbriqués. WP_Query ne saura pas quoi en faire. Une version très simplifiée devrait fonctionner:

$followed = $wpdb->get_col("
  SELECT user_id1 
  FROM wp_um_followers 
  WHERE user_id2 = 1"
);

$get_these_posts = array( 
  'post_type' => 'stream', 
  'post_status' => 'publish', 
  'posts_per_page' => '10', 
  'paged' => $paged, 
  'author__in' => $followed
);

Remarquez que j'ai utilisé get_col(). Cela retournera un simple tableau d'identifiants.

1
s_ha_dum