آموزش ارتباط با سرور آنلاین در B4A – قسمت پنجم(فراخوانی اطلاعات)
سلام
با پنجمین قسمت از آموزش ارتباط با دیتابیس آنلاین در بیسیک فور اندروید در خدمتتون هستیم، تا به اینجای کار آموزش های زیر را منتشر کردیم:
- آموزش ارتباط با سرور آنلاین در B4A – قسمت اول(مقدمه)
- آموزش ارتباط با سرور آنلاین در B4A – قسمت دوم(ساخت دیتابیس)
- آموزش ارتباط با سرور آنلاین در B4A – قسمت سوم(کدهای ثبت نام سمت سرور)
- آموزش ارتباط با سرور آنلاین در B4A – قسمت چهارم(درج اطلاعات)
یکی از دوستان سوالی پرسیده بودن که چطوری متن لیبل بر اساس یکی از فیلدهای دیتابیس باشه(بدین معنی که متن لیبل از دیتابیس فراخونی بشه)، به همین منظور به همین منظور تصمیم گرفتیم این قسمت رو آماده کنیم و در این قسمت میخوایم اولین یا آخرین کاربری که ثبت نام کرده رو بیایم و روی لیبل نمایش بدیم؛ که با چگونگی فراخوانی اطلاعات از دیتابیس آنلاین نیز آشنا بشید، در ادامه همراه بپرسم باشید.
آموزش رو بر اساس سورس کد قسمت های قبلی پیش می بریم.
آموزش:
- ابتدا بیسیک را باز کنید و یک اکتویتی جدید بسازید.
- سپس در اکتویتی اول دکمه ای قراردهید که با کلیک روی دکمه به اکتویتی دوم بریم.
در محیط دیزاینر همانطور که مشاهده میکنید، دکمه ای اضافه کردیم برای رفتن به اکتویتی بعدی.
- حال کد زیر را در رویداد کلیک دکمه می نویسیم:
۱ |
StartActivity("Read") |
Read نام اکتیویتی جدید است، شما اگر برای اکتویتی نام دیگری انتخاب کردید آن را بنویسید.
- به اکتویتی جدید میریم و یک label در محیط دیزاینر اضافه میکنیم.
- سپس یک متغیر از نوع HttpJob نیز تعریف میکنیم.
۱ ۲ ۳ |
Sub Process_Globals Dim ht2 As HttpJob End Sub |
- در Activity_Craete کدهای زیر را می نویسیم.
۱ ۲ ۳ ۴ ۵ |
Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("lr") ht2.Initialize("read",Me) ht2.PostString("https://beporsam.ir/b4a/readdata.php","") End Sub |
در خط دوم لایوت را لود کردیم.
در خط سوم، متغیری که از نوع Httpjob و با نام ht2 تعریف کردیم را Initialize کرده و نامش رو هم read انتخاب میکنیم.
در خط چهارم، صفحه php که قرار است اطلاعات را از دیتابیس فراخوانی کنیم قرار میدهیم(کدهای php را در ادامه قرار میدهیم).
توضیحات تکمیلی: در قسمت کدهای Actity_Create که ابتدا لایوت را لود کردیم و سپس متغیر ht2 را Initialize کردیم، سپس با متد PostString با فایل php ارتباط برقرار کردیم کخه اطلاعات را بخواند.
- مانند جلسات قبلی باید یک Sub از نوع JobDone تعریف کنیم، به این شکل:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ |
Sub JobDone (job As HttpJob) If job.Success=True Then If job.JobName="read" Then ProgressDialogHide Label1.Text=ht2.GetString End If Else ToastMessageShow("خطا در برقرای اتصال",False) End If End Sub |
این قسمت را قبلا توضیح دادیم و دقیقا همان کدهای جلسه قبلی است، با این تفاوت که در خط چهارم تعیین کردیم که متن label1 از دیتابیس فراخونی بشه، حالا این متن چطوری از دیتابیس فراخونی میشه، به کدهای php دقت کنید.
توضیحات تکمیلی: قسمت JobDone را در آموزش های قبلی توضیح دادیم، در واقع از JobDone زمانی استفاده میکنیم که بخواهیم با سرور اتصال برقرار کنیم و کاری را اجرا کنیم، در خط چهارم هم با متد GetString و با توجه به کدهای PHP که نوشتیم با سرور ارتباط و آخرین کاربر ثبت نامی را نمایش دادیم.
- کدهای PHP برای فراخوانی اطلاعات از دیتابیس:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ |
<?php $conn = mysql_connect('localhost','نام دیتابیس','رمز عبور دیتابیس'); mysql_select_db('نام دیتابیس',$conn); mysql_set_charset('utf8'); $q="SELECT * FROM نام جدول"; $res1=mysql_query($q); $res2=mysql_fetch_array($res1); if($res2){ echo $res2[۱]; } else { echo "Error"; } ?> |
کدهای php را هم در قسمت دوم که مربوط میشد به کدهای ثبت نام سمت سرور توضیح دادیم، بریا مشاهده قسمت سوم، کلیک کنید.
هر چقدر به PHP مسلط تر باشید، درک کدها برایتان ساده تر است.
کار به اتمام رسید، برنامه را اجرا کنید، خواهید دید که آخرین کاربر ثبت نام شده در لیبل نمایش داده میشود.
سورس کد را به همراه فایل های PHP میتوانید در انتها دانلود کنید.
موفق باشید.
دیدگاه ( 6 )
به نام خدا
سلام خداقوت
امکانش هست یه سری آموزش های پایه رو هم توضیح بدید مثلا ایتنکه httputils2 چکار میکنه و کاربردش چیه و فرقش با json چیه و کاربرد جیسان چیه؟
و اینکه خط به خط قسمت کدهای دیتابیس رو هم توضیح بدید که هر خط چه معنایی داره؟
ممنونم
سلام
در بخش آموزش های PHP که در سایت شروع به گذاشتن کردم، به بخش دیتابیس که برسیم
به صورت جزء به جزء، تمام موارد را توضیح خواهیم داد.
سلام
در دیتابیس ستون ها رو از نوع تکست تعریف کردم . اطلاعاتی که در دیتابیس ذخیره و از آن خوانده میشه به همراه .text نمایش داده میشه.با چه کدی میتونم .text از خونه های دیتابیس پاک کنم؟
چون اینجا نمیشه عکس گذاشت لینکشو گذاشتم
https://files.facenama.com/i/attachments/1/1509029165845014_large.jpg
سوال ؟
این روش فقط تو اکتیویتی کار میکنه یا برا سرویسم میشه ازش استفاده کرد؟
فکر نکنم(بهتره تست کنید)
سلام مجدد
سلطان جان کدتونو تست کردم همونطوری بود که حدس میزدم
کل کدهای صفحه ی وب رو میخونه.
که متن و نوشته هم از همون کداست.
ولی چندتا بدی داره سلطان جان
۱- فقط داده های عددی و حروف انگلیسیو میتونیم فراخوانی کنیم چون اگه بخوایم فارسی رو بگیریم باید کد
رو اضافه کنیم تا انکدینگ بشه.
۲- فقط یه داده رو میشه گرفت 🙁
ممنون میشم یه اموزش بهترو بزارید 🙂
مرسی از زحماتتون
با سلام
بنظر من اگه کدهای php رو اینطوری میزاشتید قابل درکتر بود :
من هنوز کدتونو تست نکردم ولی معلومه که صفحه ی وب رو میگیره و نمایش میده.
بعدشم شما گفتید تو JOBDONE اطلاعات رو نشون بدم
اگه میشه یکم توضیح میدید چجوری بگیرم
الان مثلا من اینطوری تو PHP فراخوانی کردم :
تو Jobdown باید چکار کنم که کل اطلاعات این رکوردو تو لیبل هایه مختلف بریزم
مزسی از زحماتتون
سلام
اموزش قشنگی بود مرسی از زحماتتون
الان مرحله ی دومم اینه که میخوام از یه رکورد خاص همه ی داده هاشو بگیرم
مثلا تو دیتابیسم لیست نمرات دانش آموزارو دارم.
تو بیسیک میخوام اینطوری فراخوانی بشه :
نام دانش آموز : (label1.text)
نمره ی دانش اموز : (label2.text)
درضمن بهتر بود اینطوری فراخوانی نمیکردید
سلام، خواهش میکنم
کدهای سمت سرور رو بنویسید و از جدول فیلدهایی که میخواید فراخوانی بشه رو انتخاب کنید، و در کدهای سمت سرور در JobDone اطلاعات رو نمایش بدید!