为了账号安全,请及时绑定邮箱和手机立即绑定

我需要动态创建一个字符串,以将其作为电报中的嵌入式键盘打印

我需要动态创建一个字符串,以将其作为电报中的嵌入式键盘打印

PHP
侃侃尔雅 2021-04-29 14:12:26
我正在编程一个具有嵌入式按钮的电报机器人。要打印嵌入式按钮,我首先需要设置一个“键盘”。“键盘”由我打印时将出现的按钮组成。嵌入式键盘示例是这样的:$tastieraStart='[{"text":"Menu","callback_data":"StampaMenu"},{"text":"Carrello","callback_data":"VisualizzaCarrello"}],[{"text":"Prezzario","callback_data":"Prezzario"}]';此键盘在第一行中可视化2个按钮(Menu和Carrello),在第二行中可视化1个按钮(prezzario)就我而言,我需要创建一个键盘来动态地从数据库中获取数据/*THIS IS HOW I USUALLY PRINT A BOT INLINE KEYBOARD*/$tastieraStart='[{"text":"Menu\n'.$menu.'","callback_data":"StampaMenu"},{"text":"Carrello\n'.$carrello.'","callback_data":"VisualizzaCarrello"}],[{"text":"Prezzario\n'.$prezzario.'","callback_data":"Prezzario"}]';editMessageText($queryUserId,$querymsgid,"Benvenuto ".$name.", da oggi sarò il tuo barista personale! \xF0\x9F\x98\x89 \nCome posso servirti?",$tastieraStart,"inline");在下面看到的代码中,我仅选择所需的元素并将其添加到键盘。该代码有效,如果我尝试打印键盘,它将以正确的格式打印。当我想将其用作键盘时,我的机器人仅打印“ 1”。我不知道这个“ 1”是从哪里来的。if($querydata=="Freddo")    {        $CONT="SELECT COUNT(*) AS totale FROM ListinoProdotti WHERE categoria='freddo'";        $resultCONT=$conn->query($CONT);        $row = $resultCONT->fetch_assoc();        $COUNT=$row['totale'];        editMessageText($queryUserId,$querymsgid,$COUNT);        $QueryFreddo="SELECT * FROM ListinoProdotti WHERE categoria='freddo'";        $resultFreddo=$conn->query($QueryFreddo);          $row = $resultFreddo->fetch_assoc();        $tastieraTemp="'";        for($i=0;$i<$COUNT;$i++)        {            $prezzoTemp=$row['prezzo'];            $prodottoTemp=$row['prodotto'];            $tastieraTemp=$tastieraTemp."[{'text':\"".$prodottoTemp.$prezzoTemp."\",'callback_data':\"POSVER\"}]";            if($i<=$resultCONT)            {                $tastieraTemp=$tastieraTemp."'";            }            else            {                $tastieraTemp=$tastieraTemp.",";            }        }        $tastieraFreddo=$tastieraTemp;        editMessageText($queryUserId,$querymsgid,"Seleziona ciò che desideri ordinare:freddo",$tastieraFreddo,"inline");        exit();    }这也是我用来编辑上一个键盘的功能
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

我解决了这个问题...基本上,这是一个简单的解决方案:p


我将粘贴正确的代码


if($querydata=="Freddo")

{


    $CONT="SELECT COUNT(*) AS totale FROM ListinoProdotti WHERE categoria='freddo'";

    $resultCONT=$conn->query($CONT);

    $row = $resultCONT->fetch_assoc();

    $COUNT=$row['totale'];

    editMessageText($queryUserId,$querymsgid,$COUNT);



    $QueryFreddo="SELECT * FROM ListinoProdotti WHERE categoria='freddo'";

    $resultFreddo=$conn->query($QueryFreddo);  

    $row = $resultFreddo->fetch_assoc();

    //$tastieraTemp="'";

    for($i=0;$i<$COUNT;$i++)

    {


        $prezzoTemp=$row['prezzo'];


        $prodottoTemp=$row['prodotto'];


        $tastieraTemp=$tastieraTemp."[{\"text\":\"".$prodottoTemp.$prezzoTemp."\",\"callback_data\":\"POSVER\"}]";


        if($i<=$resultCONT)

        {

            $tastieraTemp=$tastieraTemp."";

        }

        else

        {

            $tastieraTemp=$tastieraTemp.",";

        }


    }

    $tastieraFreddo=$tastieraTemp;


    editMessageText($queryUserId,$querymsgid,"Seleziona ciò che desideri ordinare:freddo",$tastieraFreddo,"inline");

    exit();

}


查看完整回答
反对 回复 2021-05-14
  • 1 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信