Как заменить строку на картинку, если есть результат выборки в БД?
К примеру, вот да вывод стикеров, как смайлы, с текста в картинку
function stickers($text) {
global $user, $user_id, $mysqli;
$res = $mysqli->query("SELECT * FROM `stickers`");
while ($array = $res->fetch_array()){
$text = str_replace($array['name'],' <img class="stic"
src="/files/stickers/'.$array['name'].'.png"> ',$text);
}
return $text;
}
Если у пользователя нет этих стикеров в бд stickers_users, то, если он пытается отправить стикер, он отображался просто как текст, а не картинка, ну или писало, что стикер не активен.
Нужно для того, чтобы те у кого их нету не могли их юзать.
Ответы (1 шт):
Надо привести структуру БД для конкретного ответа. А так надо сделать в цикле проверку наподобиe такой:
// Сделать выборку из таблицы stickers_users по user_id и sticker_id и записать ее в переменную stickerUser
if (!$stickerUser) {
continue;
}
Решение временное и может отличаться от структуры ваших данных, но суть в том, чтобы сначала получить массив стикеров юзера до цикла, а потом сделать поиск в массиве на каждом этапе цикла. Либо, можно делать запрос в БД каждый шаг цикла, но это не очень хорошее решение из-за нагрузки.