我正在使用php+mysql和一个连接api设置一个向whatsapp发送消息的系统。
我创建了一个提交表单,在这里我定义了一些模板,比如{{name}、{{expiration}、{{codeticket}},我打算将这些模板嵌入到我的消息中,发送给在mysql users表中注册的所有用户。
目标如下:向所有用户发送消息时,每个用户都将收到以下消息:ex:*
你好{{name}}你好吗?下面是您的银行票据代码:{{codeticket}}请记住,您需要在{{expiration}日期前付款。真诚地,数字支持*
为此,我创建了一个脚本,用于查询用户表中的所有字段,其中“活动”字段等于“0”,id等于“3”。
这样,我在php中创建了一个“while”循环,从users表中获取所有字段,然后将每个字段的变量放在url中发送给whatsapp。
没有模板的代码示例如下所示:
$sql = "SELECT * FROM usuarios WHERE id_ma ='". $id_ma ."' AND ativo = '".$ativo."'";
$qr = mysqli_query($conn, $sql);
$cont = mysqli_num_rows($qr);
if ($cont > 0) {
//I make a loop with while to go through the bank and set each defaulting user.
while ($txt = mysqli_fetch_array($qr, MYSQLI_ASSOC)) {
$tags = array();
$tags['name'] = $txt['nome'];
$tags['expiration'] = $txt['data_expira'];
$tags['linkgrupo'] = $txt['link_canal'];
$tags['product'] = $txt['nome_prod'];
$tags['codebillet'] = $txt['codigo_boleto'];
$tags['link_billet'] = $txt['link_boleto'];
foreach ($tags as $key => $valor) {
$conteudo_msg = str_replace('{{'.$key.'}}', $valor, $conteudo_msg);
}
//Here I take the query data and send the msg to users via APi Whatsapp
$url = "https://send.zaprapido.com.br/api/send.php?token=".$apiwhatsapp."&no=55".$txt["celular"]."&text=".urlencode(utf8_decode($txt['nome']))."+";
//echo $url."<br />";
//Vamos chamar a msg via Json pela APi
$result = file_get_contents($url, true);
$data = json_decode(file_get_contents($url));
问题是,当添加变量$content_msg来处理模板时,脚本只获取每个字段的第一行,并将其发送到数据库中注册的所有数字。
3条答案
按热度按时间rkttyhzu1#
需要设置的每个while循环
$conteudo_msg
否则,它将具有previous的值,并且不会有{{key}}
被替换。doinxwow2#
我不确定我是否理解你的问题,但你的代码中有一个输入错误。在你的
$conteudo_msg
你有{{codeticket}}
,但在你的$tags
数组,你有codebillet
.不管怎样,我建议你只传递你需要替换的变量,因为你需要额外循环3次,而实际上没有替换任何东西。
r9f1avp53#
您的问题中缺少代码,但首先使用准备好的语句
使用准备好的陈述,使用准备好的陈述,使用准备好的陈述,使用准备好的陈述,使用准备好的陈述,使用准备好的陈述,使用准备好的陈述,使用准备好的陈述,使用准备好的陈述,使用准备好的陈述。。。。。