PHP + SQL - попытка получить идентификаторы от нескольких пользователей. (Разделение запятыми) - PullRequest
0 голосов
/ 07 мая 2020

Я работаю над wordpress и пытаюсь написать фрагмент кода, который преобразует "Альтернативные контакты", которые люди вводят для своих профилей, в ссылки профилей для лучшей навигации. чтобы добраться до:

add_shortcode( 'Alternative_Contact_Links', function () {
global $current_user;
global $current_user_manager;
global $wpdb;
global $details;

$contacts = '';
$contactsnames = '';
$dummyurl = "https://altranet-test/user/";
$displaycontacts = '';

$urldata = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH );
$urldata = preg_replace('/\D/', '', $urldata);

$current_user = wp_get_current_user();
$current_user_manager =get_metadata( 'user', $urldata, 'user_id', true );

$sqlquery = "SELECT DISTINCT wp_usermeta.meta_value, wp_usermeta.user_id FROM wp_usermeta WHERE wp_usermeta.meta_key = 'Alternative_Contact' AND wp_usermeta.user_id = '$urldata'";

$usernames = array();
$nameArray = array();
$usernames = $wpdb->get_results($sqlquery);

foreach ($usernames as $details) {
$names = $details->meta_value;
echo $names;
}   
)};

Это работает, как ожидалось, и $ names возвращает «Joe Bloggs, John Smith» в виде одной строки. Вот где я запутался. Чтобы создать гиперссылки на каждый из профилей пользователей, мне нужно получить идентификаторы каждого из этих имен. Однако как передать оба имени в оператор SQL.

Например:

$sqlquery2 = "SELECT wp_users.ID FROM wp_users WHERE wp_users.display_name = '$names'";

$result2 = $wpdb->get_results($sqlquery2);
     foreach ($result2 as $details2) {
         $managerid = $details2->ID;

$profilelinks = '<a href="'.$teammembers.'">'.$names.'</a>';
$displayallteammembers .= $profilelinks. "<Br>";
 }
    return "<strong>Manager's (above) Direct Reports</strong>"."<Br>".$displayallteammembers;
 });

Это из примера, который я использовал ранее, но он не работает, поскольку я не могу получить оба идентификатора из базы данных?

Кто-нибудь знает, как Я могу разделить строку $ names запятыми и запустить каждое имя с помощью оператора SQL и сделать их ссылками?

Спасибо!

EDIT (используя IN, чтобы попытаться получить оба идентификатора):

SELECT wp_users.ID FROM wp_users WHERE wp_users.display_name IN ('Joe Bloggs' , 'John Smith').

(Таким образом, результатом будет идентификатор Joe Bloggs ID, потому что он получает его, а затем останавливается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...