1

I have string message $message = 'Dear $firstname$ $lastname$, your point of city is $city$'

I want to get value from Mysql data table for $firstname$, $lastname$ and $city$ and replace into message.

I have multiple user data selected from databases and New message stored into array.

$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;
}

I want firstname, lastname and city replace dynamically for all user and store message into array.

How to Identify $firstname$ replace with result of database filed firstname?

3 Answers 3

1

An alternative is to let MySQL do the concatenation job, which will result in less PHP intsructions.

$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;
}
Sign up to request clarification or add additional context in comments.

Comments

0
            $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;
    }

1 Comment

Pawel You should include a description of what your code does in all your answers. I have seen that you are not including much more than the code in your answers and that may be fine on other pages but on SO all answers should have a description. Proper formating is also a good thing.
0

Just create a new array called $messages and store each of them in this array.

$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";
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.