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

Это то, что я использую.

$result = $wpdb->get_results("SELECT * 
                               FROM $tableName 
                               WHERE userId = $user_ID 
                               AND status LIKE '1'"
                            );
foreach( $result as $key => $value)
{
    $string .= $value.',';
}

echo $string;
$email = $_POST['parentsEmail'];    
$child = $_POST['childsName'];
wp_mail( $email, "".$child." has finished", "".$child." has completed the following ".$string." ");

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

$string .= $value.',';

Однако когда я пытаюсь сделать то же самое, я получаю

Уловимая фатальная ошибка: объект класса stdClass не удалось преобразовать в строку в

1
Bowenac 10 Янв 2014 в 18:35

2 ответа

Лучший ответ

Вы можете объединить поля строк в операторе SQL с помощью GROUP_CONCAT() функция:

$sql = "
    SELECT GROUP_CONCAT(field_name) AS concat_alias
    FROM $tableName
    WHERE userId = $user_ID AND status LIKE '1'
";
echo $string = $wpdb->get_var($sql);
1
Glavić 10 Янв 2014 в 15:01

Вы можете использовать это вместо mysql

SELECT 
    CONCAT(col1,col2,col3) `value`
FROM $tableName 
WHERE userId = $user_ID AND status LIKE '1'

Вы можете использовать это вместо mysql ok

2
Community 25 Мар 2014 в 06:29