在一条电报漫游器消息中使用foreach循环

时间:2018-08-09 12:15:59

标签: php foreach telegram telegram-bot

我有一个代码可以从mysql数据库中获取列表,并将结果发送给电报bot中的用户。该代码没有任何问题-但它会为每个结果发送一条消息。多数民众赞成在问题,它淹没了服务器。我试图更改代码以在一条消息文本中发送所有结果,但它仅发送最后一个结果。 主要代码(不变):

$sql92 = "SELECT name, price, link FROM packages";
$result92 = mysqli_query($conn, $sql92);
if (mysqli_num_rows($result92) > 0) {

    foreach($result92 as $row) {
       $packname = $row["name"];
       $packprice = $row["price"]; 
       $packlink = $row["link"];

        $amount = $packprice/100;
    $amount = $amount*80;
       $packtext = "
       $lang_packname => $packname 
       $lang_packprice => $amount $lang_sambol 
       $lang_packdesc => $packlink";
       var_dump(makereq('sendMessage',[
            'chat_id'=>$update->message->chat->id,
            'text'=>"$packtext ",
            'parse_mode'=>'MarkDown',
            'reply_markup'=>json_encode([
                'keyboard'=>[
                [
                ['text'=>"$lang_back"]
              ]
            ],
            'resize_keyboard'=>true
        ])
    ]));
    }


}

1 个答案:

答案 0 :(得分:0)

@waterloomatt的答案

工作正常!

  

您需要在循环内连接消息字符串。目前,您每次都覆盖它。简单地说,只需输入一个即可。 (点)直接位于=之前。例如... $ packtext。=。但是,这只会将多个字符串粘合在一起,因此消息的格式可能是错误的,但是您应该能够取得进展。

$sql92 = "SELECT name, price, link FROM packages";
$result92 = mysqli_query($conn, $sql92);
if (mysqli_num_rows($result92) > 0) {

    foreach($result92 as $row) {
       $packname = $row["name"];
       $packprice = $row["price"]; 
       $packlink = $row["link"];

        $amount = $packprice/100;
    $amount = $amount*80;
       $packtext .= "
       $lang_packname => $packname 
       $lang_packprice => $amount $lang_sambol 
       $lang_packdesc => $packlink";

    }
 var_dump(makereq('sendMessage',[
            'chat_id'=>$update->message->chat->id,
            'text'=>"$packtext ",
            'parse_mode'=>'MarkDown',
            'reply_markup'=>json_encode([
                'keyboard'=>[
                [
                ['text'=>"$lang_back"]
              ]
            ],
            'resize_keyboard'=>true
        ])
    ]));

}
相关问题