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。 現在的問題是,我如何將該範圍傳遞給查詢? –