1
我有一个简单的机器人(我使用webhook),它响应命令并进入数据库并发送一个贴纸和一个简单的html消息找到每个记录。电报机器人:循环数据库查询
如果有很多记录(20个以上AND花了2分钟以上完成bucle)bot变疯狂并且显示结果4次(结束一次,然后再次开始3次),我试图添加一个sleep()计时器以避免循环但没有运气。不知道我错过了什么或做错了什么。
这里是我的代码:当服务器端认为有被丢弃
$update = json_decode(file_get_contents('php://input'));
if (isset($update->message)){
//Fetching update
$message = $update->message;
$message_id = $update->message->message_id;
$text = $message->text;
$chat_id = $message->chat->id;
switch($text){
case "read":
$age = 18;
read_fields($age, $chat_id);
break;
default:
bot('SendMessage',[
'chat_id' => $chat_id,
'text' => "This is a test"
]);
}
}
function read_fields($age, $chat_id){
include("conexion.inc");
$i = 0;
$sticker = "";
$id = "";
$name = "";
$sql = "SELECT id, name, sticker FROM Persons WHERE age = ".$age;
$php = mysql_query($sql, $con);
while($row=mysql_fetch_assoc($php)){
$sticker = $row['id_sticker'];
$id = $row['id'];
$name = $row['name'];
bot('sendSticker',[
'chat_id' => $chat_id,
'sticker' => $id_sticker
]);
$message = $id."-<b>".$name."</b>";
bot('SendMessage',[
'chat_id' => $chat_id,
'parse_mode' => "HTML",
'text' => $mensaje
]);
sleep(3);
$i++;
}
bot('SendMessage',[
'chat_id' => $chat_id,
'text' => "### ".$i." total ### "
]);
}
所以,我可以尝试使数据范围更快地显示。 我的意思是,如果我有50条记录,我可以调用read_fields函数3次,分别显示20,20和10。 现在的问题是,我如何将该范围传递给查询? –