Заменить символы из строки значением базы данных

У меня строковое сообщение $message = 'Dear $firstname$ $lastname$, your point of city is $city$'

Я хочу получить значение из таблицы данных Mysql для $firstname$, $lastname$ и $city$ и заменить его в сообщение.

У меня есть несколько пользовательских данных, выбранных из баз данных, и новое сообщение, хранящееся в массиве.

$query = $ab->pquery("select firstname, lastname, city from tblaccount where country = $country";

$numOfrows = $db->num_rows($query);
for($i=0; $i<$numOfrows; $i++) {
    $toNumber = array();
    $toNumber['firstname'] = $db->query_result($result, $i, 'firstname');
    $toNumber['lastname'] = $db->query_result($result, $i, 'lastname');
    $toNumbers[] = $toNumber;
}

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

Как определить замену $firstname$ на результат из базы данных firstname?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
57
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

            $query = $ab->pquery("select firstname, lastname, city from tblaccount where country = $country";

    $numOfrows = $db->num_rows($query);
    for($i=0; $i<$numOfrows; $i++) {
        $toNumber = array();
$message = 'Dear $firstname$ $lastname$, your point of city is $city$';

        $toNumber['firstname'] = $db->query_result($result, $i, 'firstname');
$message=str_replace('$firstname$',$toNumber['firstname'],$message); ///something like that
        $toNumber['lastname'] = $db->query_result($result, $i, 'lastname');
  $toNumber['message'] = $message;

        $toNumbers[] = $toNumber;
    }

Павел Вы должны включать описание того, что делает ваш код, во все ваши ответы. Я видел, что вы не включаете в свои ответы что-то большее, чем код, и это может быть хорошо на других страницах, но на SO все ответы должны иметь описание. Правильное форматирование - тоже хорошо.

Andreas 14.05.2018 15:53
Ответ принят как подходящий

Альтернативный вариант - позволить MySQL выполнять конкатенацию, что приведет к меньшему количеству операций PHP.

$messageSQL = "CONCAT('Dear ', firstname, ' ', lastname, ', your point of city is ', city)";

$query = $ab->pquery("select $messageSQL AS themessage from tblaccount where country = $country";

$numOfrows = $db->num_rows($query);
for($i=0; $i<$numOfrows; $i++) {
    $message =  $db->query_result($result, $i, 'themessage');
    $toNumbers[] = $message;
}

Просто создайте новый массив с именем $messages и сохраните каждый из них в этом массиве.

$query = $ab->pquery("select firstname, lastname, city from tblaccount where country = $country";

$messages = array();

$numOfrows = $db->num_rows($query);
for($i=0; $i<$numOfrows; $i++) {
    $firstname  = $db->query_result($result, $i, 'firstname');
    $lastname   = $db->query_result($result, $i, 'lastname');
    $city       = $db->query_result($result, $i, 'city');
    $messages[] = "Dear $firstname $lastname, your point of city is $city";
}

Другие вопросы по теме