My Theory
69 subscribers
47 photos
8 videos
9 files
1 link
🧲 My Theory: My brain's cache channel.

#️⃣ Solutions tags: #PHP, #Laravel, #CRM, #CMS, #MySQL

Crafted Solutions: @MyHEMISBot
IDIBOYEV - Coding Studio
Download Telegram
Kodni tahlil qilgandan so'ng, ushbu muammo mavjud:

1. Siz exit() funksiyasini ishlatganingizda, skriptning barcha bajarilishi to'xtab qoladi. Buning natijasida, xabar yuborish jarayoni ham to'xtab qoladi.

2. sleep() funksiyasini ishlatganingizda, skriptning barcha bajarilishi to'xtab qoladi. Bunday holatda, Telegram serveridan olingan xabarlar o'qilmasligi mumkin.

Bu muammolarni hal qilish uchun, sleep() funksiyasini ishlashini bekor qilish kerak. Siz faqatgina deleteMessage so'rovini yuborishni, keyin esa exit() funksiyasini chaqirishni keraklisiz. Quyidagi ko'rinishda kodni qayta yozing:

if ($well) {
bot('sendmessage', [
'chat_id' => $chats_id,
'text' => "Asslomu alaykum, <b>$chatn_id</b> ishonchli taksi xizmati kerak bo'lsa quyidagi botdan foydalaning.",
'parse_mode' => 'html',
'reply_markup' => json_encode([
'inline_keyboard' => [
[['text' => "Botdan foydalanish", 'url' => "https://t.me/taksi_navoiy_bot"]],
]
])
]);

// 10 soniyadan so'ng xabar o'chiriladi
bot('deleteMessage', [
'chat_id' => $chats_id,
'message_id' => $mid+1,
]);
}

exit();


Bu kodda exit() funksiyasini skriptning qolgan qismini tugatishdan keyin, Telegram xabarlarni qabul qilish jarayonini davom ettiradi. Umid qilamiz, bu o'zgartirish sizning muammolaringizni hal qiladi. Agar boshqa savollar yoki yordam kerak bo'lsa, menga xabar yuboring. Sizga yordam bera olishga tayyormisiz!
Siz berilgan kod bilan JSON-ni oΚ»rganmoqchisiz. Bu PHPda JSON-ni oΚ»zgartirish va chiqarishni sozlash uchun ishlatiladi. JSON_PRETTY_PRINT JSON-ni chiroyli shaklda koΚ»rsatadi, JSON_UNESCAPED_SLASHES bilan kichik chiziq-belgilar "\" belgisini oΚ»chiradi, va JSON_UNESCAPED_UNICODE JSON-ni Unicode belgilari bilan koΚ»rsatadi.
Kodunuzda, if bloki tekshirib ko'rsatilgan shart bajarilsa, "stats" bo'lgan bo'limida statistik ma'lumotlarni olish va ularga mos xabar yuborish lozim. Agar ushbu kod ishlamayotgan bo'lsa, yuqoridagi kodni tekshirib ko'rib, qaysi qatordan muammo paydo bo'lishini aniqlab olishingiz mumkin.

Quyidagi muammo va ularning hal qilinishi mumkin:

1. Ma'lumotlar bazasiga muvaffaqiyatli ulanishni tekshiring. Ulanishni tekshirish uchun, mysqli_connect funksiyasi yoki muvaffaqiyatli ulanish qilgan bo'lsa true qaytaradi.

if (!$connect) {
die("Ulanishda xatolik: " . mysqli_connect_error());
}


2. Ma'lumotlar bazasidagi tablolar mavjud bo'lishini va so'rovlarning to'g'ri amalga oshirilayotganini tekshirib ko'ring. Agar tablolar mavjud emas yoki so'rovlar noto'g'ri amalga oshirilayotgan bo'lsa, mysqli_query funksiyasi false qaytaramaydi. Bunday holatda, muammo haqida ma'lumot chiqarib bering.

3. HTML formatida yuborilayotgan xabarlar kiritilganligini va xabarlarning to'g'ri yozilganligini tekshirib ko'ring. Agar HTML-markup xabarga to'g'ri qo'llanilmasa, xabar noto'g'ri ko'rinishi mumkin. Bunda xabar matni HTML formatida berilgan, lekin parse_mode qo'llanilmaygan bo'lishi mumkin. Agar xabarning HTML-formatida ko'rinishi kerak bo'lsa, parse_mode qiymati "html" bo'lishi kerak.

Agar yuqoridagi tekshirishlardan keyin muammo aniqlanmagan bo'lsa, yoki muammo to'g'ri emasligini aniqlab bo'lmagan bo'lsa, ko'rsatgan kod ma'lumotlar bazasidan ma'lumotlarni to'g'ri olish uchun yaxshi ko'rinishda. Bunday holatda, kod to'g'ri ishlashiga ko'maklashadi. Agar avvalgi tekshirishlar keyin muammo aniqlangan bo'lsa, muammo haqida ko'proq ma'lumot berib, qo'llanilgan kodni tekshirib, muammo yo'qotilgan bo'lsa, muammo berilgan ma'lumotlarni sodda formatda ko'rsatishadi.
Bu koddan to'g'ri foydalanmoqchi bo'lsangiz, uning to'g'ri ishlashi uchun $type o'zgaruvchisining qiymati "supergroup" yoki "group" bo'lishi va $update->message->text qiymati mavjud bo'lishi kerak. Agar bu sharoitlar barchasi bajarilsa, koddagi shart rost ishlaydi.

Shart quyidagi ko'rinishda yozilgan:

if ($type == "supergroup" or ($type == "group" and $update->message->text)) {
// kodni bajarish
}


Bu shartning to'g'ri ishlayishi uchun, agar $type "supergroup" ga teng bo'lsa yoki $type "group" ga teng bo'lsa va $update->message->text qiymati mavjud bo'lsa, kod bajariladi.

Agar siz faqatgina "group" bo'limini tekshirmoqchi bo'lsangiz va $update->message->text qiymati emas bo'lsa, quyidagi ko'rinishda yozing:

if ($type == "group" and $update->message->text) {
// kodni bajarish
}


Bu shart faqatgina $type o'zgaruvchisining qiymati "group" bo'lgan holatda $update->message->text qiymati mavjud bo'lsa, kodni bajaradi.
parse mode > markdown HTML-ga konvertatsiya qilish uchun, matnni Markdown formatida yozishni talab qiladi, Markdown esa odatda tekshiruvni osonlashtiradi va matnni HTML-ga konvertatsiya qiladi. Misol uchun, Markdown-da # Header HTML-ga <h1>Header</h1> deb konvertatsiya qilinadi.

parse mode > html esa, sizga kiritilgan matnni to'g'ridan-to'g'ri HTML formatiga o'girish imkonini beradi. Bu, matnni tahlil qilish va uni HTML-ga o'girishning oson yo'li.
Sizning koddagi shart bu: "agar $get o'zgaruvchisi 'administrator'ga teng bo'lmasa va $get o'zgaruvchisi 'owner'ga teng bo'lmasa" deb o'qiladi. Ya'ni, agar $get o'zgaruvchisi "administrator"ga yoki "owner"ga teng bo'lsa, shart bajarilmaydi. Boshqa so'zlar bilan, shartning bajarilmasligi halokatni bildiradi. Agar $get o'zgaruvchisi "administrator" yoki "owner" ga teng bo'lsa, bu amal bajariladi, aks holda bajarilmaydi.
😁2
Bu shart quyidagi ko'rinishda o'qiladi:

if ($row['account_type'] == 'HAYDOVCHI' && $row['taxi_own_text'] !== NULL) {


Bu shart ifoda $row massivida 'account_type' kalitining qiymati 'HAYDOVCHI' ga teng bo'lgan va 'taxi_own_text' kalitasi NULL ga teng bo'lmagan har bir qator uchun bajariladi. Bu shart ifodasi biror foydalanuvchining 'account_type' kalitasi 'HAYDOVCHI' ga teng va 'taxi_own_text' kalitasi NULL bo'lmaganligini tekshiradi.
😁2
This media is not supported in your browser
VIEW IN TELEGRAM
😁1
My Theory
🫠 Sticker
Negadir zerikdik. πŸ™‚β€β†”οΈ
πŸ’”2πŸ“1
if ($text == "/setting") {
$result = $user->query("SELECT * FROM users WHERE user_id = '$user_id'");
$resout = mysqli_fetch_array($result);
$title = $resout['music'];
$video = $resout['video'];
$book = $resout['book'];
$apk = $resout['apk'];
$exe = $resout['exe'];
$user->sendMessage([
'chat_id' => $user_id,
'message_id' => $mid,
'text' => "βš™οΈ <b>SOZLAMALAR</b>

β˜‘οΈ <i>Media fayllar qay tarzda qidirilishini sozlang.</i>",
'parse_mode' => "html",
'reply_markup' => json_encode([
'inline_keyboard' => [
[['text' => "🎧 Musiqa", 'callback_data' => " "], ['text' => "Sarlavha", 'callback_data' => "#title"], ['text' => "Ijrochi", 'callback_data' => "#perforemer"], ['text' => "Izoh", 'callback_data' => "#caption"]],
[['text' => "🎬 Video", 'callback_data' => " "], ['text' => "Sarlavha", 'callback_data' => "#title"], ['text' => "Ijrochi", 'callback_data' => "#perforemer"], ['text' => "Izoh", 'callback_data' => "#caption"]],
[['text' => "🎧 Kitob", 'callback_data' => " "], ['text' => "Sarlavha", 'callback_data' => "#title"], ['text' => "Ijrochi", 'callback_data' => "#perforemer"], ['text' => "Izoh", 'callback_data' => "#caption"]],
[['text' => "πŸ“š APK", 'callback_data' => " "], ['text' => "Sarlavha", 'callback_data' => "#title"], ['text' => "Ijrochi", 'callback_data' => "#perforemer"], ['text' => "Izoh", 'callback_data' => "#caption"]],
[['text' => "πŸ’» Dekstop", 'callback_data' => " "], ['text' => "Sarlavha", 'callback_data' => "#title"], ['text' => "Ijrochi", 'callback_data' => "#perforemer"], ['text' => "Izoh", 'callback_data' => "#caption"]],
]
]),
]);
exit();
}


Tez kunda yangilik.
❀‍πŸ”₯3❀1πŸ‘1
Media is too big
VIEW IN TELEGRAM
❀‍πŸ”₯2🀣2🀩1
1. Ikki tenglik belgi (`==`): Bu bo'shashgan taqqoslash operatori. U ikki o'zgaruvchining qiymatlarini taqqoslaydi, lekin ularning turlarini tekshirmaydi. Bu shuni anglatadiki, agar qiymatlar turli turlarga ega bo'lsa, PHP avtomatik ravishda birini ikkinchisiga aylantiradi.

Misol:
    $a = 42;
$b = "42";

if ($a == $b) {
echo "They are equal.";
} else {
echo "They are not equal.";
}

Bu kod "They are equal." deb chiqadi, chunki $a (raqam) va $b (matn) bo'lsa-da, qiymatlari bir xil va PHP ularni avtomatik ravishda bir xil turga aylantiradi.

2. Uch tenglik belgi (`===`): Bu qat'iy taqqoslash operatori. U faqat qiymatlarni emas, balki turlarni ham taqqoslaydi. Ikkala qiymat va tur bir xil bo'lsa, taqqoslash to'g'ri bo'ladi.

Misol:
    $a = 42;
$b = "42";

if ($a === $b) {
echo "They are equal.";
} else {
echo "They are not equal.";
}

Bu kod "They are not equal." deb chiqadi, chunki $a raqam (integer) va $b matn (string) bo'lib, ularning turlari bir xil emas.

Bu farqlardan kelib chiqib, === operatoridan foydalanish sizning kodingizda aniqroq va xatolarni oldini oladi, chunki u qiymatlar va turlar bir xil ekanligiga ishonch hosil qiladi.
This media is not supported in your browser
VIEW IN TELEGRAM
π•π’ππžπ¨ 𝐝𝐚𝐫𝐬𝐬𝐒 𝐲𝐨𝐦𝐨𝐧𝐒. 😁
😁2
PHP-dagi ? va : belgilari ternar operator deb ataladi. Ternar operatori shartli ifodalarda foydalaniladi va if-else tuzilmasining qisqaroq yozuvi hisoblanadi. Ternar operator quyidagicha ishlaydi:

$natija = (shart) ? true_holati_qiymati : false_holati_qiymati;


Bu shuni anglatadiki, agar shart to'g'ri (true) bo'lsa, $natija true_holati_qiymati`ga teng bo'ladi, aks holda `$natija `false_holati_qiymati`ga teng bo'ladi.

Sizning kodingizda:

$admin_name = isset($admins[$user_id]) ? $admins[$user_id] : "πŸ‘¨πŸ»β€πŸ’» <b>Operator</b>";


Ushbu kodingizning ishlash tartibi:

1. isset($admins[$user_id]) shartini tekshiradi. Bu shart $admins massivida $user_id kaliti mavjudligini tekshiradi.
2. Agar bu shart to'g'ri (true) bo'lsa, $admin_name $admins[$user_id] qiymatini oladi.
3. Agar bu shart noto'g'ri (false) bo'lsa, $admin_name "πŸ‘¨πŸ»β€πŸ’» <b>Operator</b>" qiymatini oladi.

Ternar operator yordamida kodingiz ancha qisqa va o'qilishi oson bo'ladi. Bu usul if-else bloklari yozmasdan shartli tekshiruvlar va qiymat tayinlash ishlarini bajarishga imkon beradi.

Agar ternar operator o'rniga if-else blokidan foydalangan bo'lsak, kod quyidagicha bo'lar edi:

if (isset($admins[$user_id])) {
$admin_name = $admins[$user_id];
} else {
$admin_name = "πŸ‘¨πŸ»β€πŸ’» <b>Operator</b>";
}


Yuqoridagi ikki kod bir xil natijani beradi, lekin ternar operatori kodni yanada ixchamlashtiradi.