Я не уверен, если это вообще подстановочный знак или как вообще построить этот код. В основном то, что я пытаюсь достичь, это выбрать из user_ranks
таблица, каждая строка имеет уникальный идентификатор и в users
таблица, есть столбец с именем ranks
и это будет иметь каждый user_rank
идентификатор разделен |
персонажи.
Так, например, в users
стол, у меня есть rank
из |2|4|14|13|
— у каждого удостоверения есть id
в user_ranks
,
Вот что у меня так далеко, что, очевидно, так неправильно.
$usersquery = $db->query("SELECT rank FROM users WHERE username = '" . $username ."'");
while ($users = $usersquery->fetch_assoc()) {
$ranksquery = $db->query(
"SELECT * FROM user_ranks WHERE id LIKE '%[" . $users['rank'] . "]%'");
while ($ranks = $ranksquery->fetch_assoc()) {
return $ranks['id'];
}
}
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, это было немного сложно объяснить, большое спасибо за любую помощь, которую я могу получить!
Используйте PHP explode
а также trim
чтобы получить отдельные идентификаторы от $users['rank']
:
$rank_ids = explode('|', trim($users['rank'], '|'));
Затем используйте этот SQL:
$sql = "SELECT * FROM user_ranks WHERE id IN (" . implode(", ", $rank_ids) . ")";
Других решений пока нет …