مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

taj3da

عضویت از 1395/11/14

مشکل در ربات تلگرام

  • سه شنبه 26 دی 1396
  • 20:02
تشکر میکنم

سلام از روی آموزش دارم ربات مینویسم ولی برای من خطا میده 

کد صفحه index


<?php


require ('config.php');
require ('telegram.php');


$db=mysqli_connect('localhost','khazarne_khandeh','******;4','khazarne_khandeh_bazar');
$query=mysqli_query($db,"select * from joke order by rand() limit 1");


$telegram = new telegram(token);




//echo $telegram->getme();


//echo $telegram->getupdates();


//دریافت اطلاعات ارسال شده به بات و تبدیل به آرایه
$result=$telegram->reciveText();


$userid=$result->message->from->id;
$text=$result->message->text;






/// ارسال پیام کاربر به خودش
//$telegram->sendmessage($userid,$text);


if($text=="/sendjoke")
{


$telegram->sendmessage($userid,$query);

}

کد صفحه Telegram

<?php


class telegram {






/// دریافت اطلاعات بات
public function getme()
{
$url='https://api.telegram.org/bot541992420******w/getMe';
return file_get_contents($url);
}

/// دریافت اطلاعات ارسال شده به بات

public function getupdates()
{
$url='https://api.telegram.org/bot541992420:AAF******eNw/getupdates';
return file_get_contents($url);
}

public function reciveText()
{
$text=json_decode(file_get_contents('php://input'));
return $text;
}



public function sendmessage($userid,$text)
{
$url='https://api.telegram.org/bot54199242********/sendmessage?chat_id='.$userid.'&text='.$text;
file_get_contents($url);
}
}

اینم خطا 

[16-Jan-2018 19:47:41 Asia/Tehran] PHP Catchable fatal error:  Object of class mysqli_result could not be converted to string in /home/khazarne/public_html/bt/telegram.php on line 33
[16-Jan-2018 19:47:42 Asia/Tehran] PHP Catchable fatal error:  Object of class mysqli_result could not be converted to string in /home/khazarne/public_html/bt/telegram.php on line 33

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

farshadfarokhi

عضویت از 1395/11/20

  • سه شنبه 26 دی 1396
  • 20:46

سلام

به صورت مستقیم دارید خروجی $query رو دارید به تابع sendmessage میفرستید و اونجا به صورت text معمولی ازش استفاده میکنید.

وقتی از mysqli استفاده میکنید بعد از اجرای کوئری باید اون رو fetch کنید در غیر این صورت اون متغییر $query به صورت یک آبجکت خواهد بود.

ضمنا mysqli_close رو هم فراموش نکنید.

کاربر سایت

taj3da

عضویت از 1395/11/14

  • سه شنبه 26 دی 1396
  • 21:27
ایدی تلگرام لطف میکنید، چند تا راهنمایی میخواستم
کاربر سایت

taj3da

عضویت از 1395/11/14

  • سه شنبه 26 دی 1396
  • 21:30

if($text=="/sendjoke")
{
	mysqli_query($db,"set names utf8");
$query=mysqli_query($db,"select joke from joke order by rand() limit 1");
$resultjoke=mysqli_fetch_array($query,'string');
mysqli_close($db);

	$telegram->sendmessage($userid,$query);
	}

اینطوری شد ولی این خطا میده


[16-Jan-2018 21:29:34 Asia/Tehran] PHP Warning:  mysqli_fetch_array() expects parameter 2 to be long, string given in /home/khazarne/public_html/bt/index.php on line 29
[16-Jan-2018 21:29:34 Asia/Tehran] PHP Catchable fatal error:  Object of class mysqli_result could not be converted to string in /home/khazarne/public_html/bt/telegram.php on line 33
کاربر سایت

farshadfarokhi

عضویت از 1395/11/20

  • سه شنبه 26 دی 1396
  • 21:42

فیلد دوم در mysqli_fetch_array مربوط به نوع برگشتی آرایه هست که میتواند دو نوع باشد: ۱. MYSQLI_ASSOC ۲. MYSQLI_NUM

نوع MYSQLI_NUM آرایه ای با ایندکس های عددی برمیگرداند و نوع MYSQLI_ASSOC آرایه ای با نام ستونهای جدول دیتابیس.

بعد از اینکه یکی از این دو نوع انتخاب کردید، یک آرایه در اختیارتون هست که میتونید از اون استفاده کنید به این صورت:

if($text=="/sendjoke")
{
    mysqli_query($db,"set names utf8");
$query=mysqli_query($db,"select joke from joke order by rand() limit 1");
$resultjoke=mysqli_fetch_array($query,MYSQLI_ASSOC);
mysqli_close($db);
 
    $telegram->sendmessage($userid,$query['joke']);
}

کاربر سایت

taj3da

عضویت از 1395/11/14

  • شنبه 30 دی 1396
  • 13:46

الان مشکل این چیه ؟ اون قسمت زرد رنگ باید حل بشه ، اما چطور ؟

کاربر سایت

taj3da

عضویت از 1395/11/14

  • شنبه 30 دی 1396
  • 21:16

کسی نیست جواب بده ؟

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)