عضویت در سایت

ورود

فراموشی رمز عبور

رمز عبور خود را فراموش کرده اید؟ ایمیل خود را وارد کنید

ورود

عضویت در سایت

رایگان ثبت نام کنید و سوالات خود را بپرسید، همچنین میتوانید در پاسخگویی به سوالات دیگر کاربران نیز سهیم باشید، هر مشکلی در ثبت نام یا ورود داشتید با ایمیل beporsam@gmail.com در ارتباط باشید

در بین 1170 آموزش و 2021 پرسش به دنبال چه هستید؟

ویندوز
نصب آنلاین ویندوز

ویندوز 7,8,10,11
مشاوره
مشاوره خرید لپ تاپ و کامپیوتر

مشاوره حرفه ای دریافت کن
بلاگ
مقالات آموزشی

1k+
پشتیبانی آنلاین

سخت افزار/نرم افزار

آموزش ارتباط با سرور آنلاین در B4A – قسمت هشتم(جستجو)

سلام

با یک قسمت دیگه از سری آموزش های ارتباط با دیتابیس آنلاین در بیسیک فور اندروید در خدمتتون هستیم؛ در این بخش از آموزش به درخواست کاربران میپردازیم به جستجوی متن در دیتابیس آنلاین، در ادامه همراه بپرسم باشید.

جستجو در دیتابیس آنلاین

جستجو در دیتابیس آنلاین

دربرخی از برنامه هایی که دارای دیتابیس آنلاین هستند، مثل دیوار یا دیجیکالا، حتما دیده اید که وقتی نام یک کالا را وارد میکنید، خود برنامه چند پیشنهاد در رابطه با نام وارد شده را میدهد، در این مقاله آموزشی میخوایم به چگونگی انجام کار بپردازیم.

آموزش:

سمت سرور(PHP)

  • ابتدا کدهای سمت سرور به زبان PHP مینویسیم:

یک دیتابیس به نام my_serach در سمت سرور ساختیم که دارای یک جدول به نام tbl_user است؛ در این جدول دو فیلد name و lastname داریم.

در تکه کدهای بالا در خط ۳ اطلاعات مربوط به دیتابیس قرار دارد، در خط ۴ مقدار ارسال شده از سمت بیسیک را درون متغیر name$ ذخیره کردیم؛ در خط ۶ نیز کوئری جستجو را نوشتیم و نتیجه ی اطلاعات را به صورت جیسون دریافت و در بیسیک فور اندروید این اطلاعات را نمایش میدهیم.

برای درک بهتر کدهای سمت سرور، آموزش PHP در سایت را مطالعه کنید.

 سمت کلاینت(B4A)

  • ابتدا کتابخانه های JSON و HttpUtils2 را در برنامه خود فعال کنید.
  • سپس آن ها را تعریف میکنیم:
مطلب پیشنهادی:  آموزش فارسی word - قسمت سوم(حالت های نمایش و مرتب سازی اسناد)

در اینجا دلخواه میتوانید عمل کنید.

من توی این آموزش داخل یک لیست ویو نتیجه سرچ را نمایش دادم، شما میتوانید آن را داخل چیز دیگری و حتی در رویداد دیگری بنویسید.

مثلا میتوانید در رویداد textChange جعبه متنتون بنویسید و نتیجه را داخل یک لیست کشویی نمایش بدید یا … .

  • سپس نیاز لیست ویو(برای نمایش اطلاعات)، یک ادیت تکست(برای وارد کردن متن) و یک دکمه(که عملیات جستجو را انجام دهد) نیاز داریم، که بدین شکل تعریف می کنیم:

  • سپس کتابخانه HttpUtils2 را Initialize میکنیم:

  • در Sub مربوط به HttpJob کدهای زیر را مینویسیم:

مطلب پیشنهادی:  آموزش تغییر پس زمینه گوگل

در این ساب نتیجه برگشت داده میشود. من در دیتابیس چندتا نام مختلف تعریف کردم، و گفتم که فیلد name را بخوان و داخل لیست ویو نمایش بده.

  • سپس در رویداد کلیک دکمه، کدهای زیر را مینویسیم:

در خط دو، آدرس فایل PHP سمت سرور که کدهای جستجو را نوشتیم قرار دادیم و پارامتر name را بهش پاس دادیم(پارامتر name که در اینجا ارسال کردیم در سمت سرور در متغیر name$ ذخیره کردیم).

اگر در دیتابیس برای مثال این نام ها را داشته باشید: ahmad,morteza,zahra,sadegh وقتی کلمه a را جستجو کنید، در تمام فیلدها جستجو میکنه و هر فیلدی که کلمه a توش وجود داشته باشه نمایش داده میشه.

درک این آموزش نیازمند دیدن آموزش های ارتباط با دیتابیس آنلاین می باشد که در قبلا قرار داده شده، برای مشاهده آموزش ها کلیک کنید.

در پایان سورس را میتوانید دانلود کنید.

موفق باشید.

 


دانلود: سورس جستجو در دیتابیس آنلاین


پيش نمايش: کليک کنيد


حجم: 1.74 مگابایت


رمز فايل فشرده: www.beporsam.ir


پوشه PHP مربوط به کدهای سمت سرور می باشد که باید در هاست قرار بگیرد و پوشه B4A حاوی کدهای سمت کلاینت می باشد که باید با بیسیک فور اندروید باز شود.


اگر در رابطه با مطلب بالا سوالي يا مشکلي داريد ميتوانيد سوال خود را در سايت بپرسيد، کاربران سايت پاسخگوي سوالات شما خواهند بود.


عضويت در سايت


پرسيدن سوال


درباره مرتضی صباغیهمکار سایت

💎 اپ های من در مایکت https://myket.ir/developer/dev-53936 گروه تلگرامی MR.B4A ( سورس کد و کتابخانه ) https://t.me/programmingwithb4a

دنبال کردن

دیدگاه ( 4 )

  1. سلام. اولا از تلاش و زحمت های شما بسیار سپاسگزارم.

    دوم اینکه از سایت شما دانش زیادی گرفتم برای بیسیک فور اندروید. جستجو در دیتابیس انلاین هم از سایت شما دیدم.

    پرسش من این است که ایا ممکن است کدهایی که در ساب «jobdone» نوشته می شود همه در قسمت رویداد مثلا در زیر باتن کلیک نوشته شود یا خیر. من جستجو در ادیت تکس انجام می دهم. می خواهم اطلاعاتی که از دیتابیس گرفته می شود در یک لیست ویویی سفارشی نمایش دهم. در ساب جاب کمی سخت است چون در اپلیکیشن من چندین قسمت سرچ انجام می شود. اگر در زیر هر باتن کلیک عملی شود راحت تر مدیریت می کنم. کاش می توانستید راهنمایی کنید.

    (برای راهنمایی بگویم که مثلا پست استرینگ را در قسمت باتن کلیک انجام می دهیم و در ساب جاب فقط می گوییم اگر موفق بود یک تست مسیج نشان بده. اما برای جستجو در دیتابیس انلاین شما همه کدهای اصلی را برده اید در ساب جاب.)

  2. برای پرسیدن سوالات از بخش پرسش و پاسخ سایت استفاده کنید.

  3. سلام

    ممنون از تلاش های شما

    در ادامه بحث جستجوی انلاین، الان یک مشکلی هست که در دیتبایس سلول ها  و یا همان خانه هایی که نال هستند را هم در ستون لیست ویو نشان می دهد. یعنی یک لیبل خالی نشان می شد. ایا ممکن است بفرمایید با چه دستوری می توان گفت نال ها را نادیده بگیرد؟

    • سلام

      تو کوئری که در سمت سرور می نویسید، فقط اون فیلدهایی رو که میخواید نمایش بدید برگردونید، مثلا شما فقط فیلد name,lastname رو میخوای نمایش بدی، دیگه نیاز نیست از کوئری زیر استفاده کنی:

      بجاش از کوئری زیر استفاده میکنی:

      اینطوری کوئری بهینه تر میشه(چون فقط اون فیلدهایی که میخوای رو select میکنی) و هم مقادیری که null هستند، انتخاب نمیشن

      • سلام و سپاس

        فک کنم که یک مشکلی هست. هر چه توی دیتابیس هست رو میاره. یعنی سلکت نمی کنه. همه خانه های پر رو نشون میده از اول تا اخر دیتابیس . هیچ سلکتی نمی کنه. ملاحظه کنید لطفا

        • اگه همه ی رکوردها رو Select میکنه(IS NOt NULL) رو از کوئری حذف کنید

          شما چه کاری میخواید انجام بدید؟ و در دیتابیس چرا باید داده null داشته باشید؟ داده ی null دارید یا string(رشته ی خالی)؟
          چه فیلد هایی رو از دیتابیس میخواید نشون کاربر بدید؟

          • من یک دیتابیس دارم که چهار تا ستون داره

            نام ، نام خانوادگی، نام پدر، نام استان

            می خواهم وقتی اسم محمد را سرچ می کنم، ابتدا هر کسی که نامش محمد است را به همراه سه ستون دیگرش یعنی نام پدر و خانوادگی و نام استان  را نشان دهد. و سپس در ادامه همین جستجو پس از لیست کردن اسامی محمد در ادامه همین لیست ویوو، از میان نام خانوادگی ها هم بگردد و هر کسی محمد یا محمدی دارد را هم نشان دهد. اما چون بعضی از افراد نام شهرشان در لیست نیست، می خواهم بگویم لیبل خالی نمایش ندهد و فقط سه لیبل نام، نام خانوادگی نام پدر را نمایش دهد. یا اگر نام پدر کسی نبود ،لیبل خالی را نمایش ندهد. هر اطلاعاتی که از این شخص پر شده نشان دهد و خالی ها را حذف کند و لیبل خالی روی لیست ویوو نگذارد.

            این کل درخواست من هست برای جستجو.

            برای تاکید بگویم اگر مثلا در لیست دو نفر محمد و دو نفر محمدی هستند ابتدا دو محمد و دیگر اطلاعاتشان نمایش داده شود و پس از ان هر چیزی که شبیه محمد است و در نام خانوادگی شان است هم در همین یکبار سرچ اورده شود. در کدهای بیسیک من انجام داده ام اما در کدهای پی اچ پی برای سرچ انلاین نتوانستم . ممنون

  4. سلام جناب مرتضی

    ممنون اما اما

    کار نمی کنه. همه ش می نویسه «خطا در برقرای ارتباط با سرور»

    من خیلی تغییرات دیگه هم انجام دادم نشد. پی اچ پی رو هم دستکاری کردم نشد

    تازه. به نظر میرسه شما امتحان نکردید این سورس رو. می دونم دانشش رو دارید اما مثلا

    For i= To list.Size۱

    اینجا یه دونه ۰ نیاز هست که نگذاشتید من سه ساعت کارکردم روی این سورس شما . نشد که نشد

    من اپلیکیش ساختم  قبلا و اطلاعات اجمالی دارم یعنی قبلا از پی اچ پی استفاده کردم هر تغییراتی دادم نشد.

    خواهشا درستش کن ببین چیزی کم نگذاشتی توی کدها. یا طرف بیسیک یا طرف سرور

    ممنون

     

    • سلام

      مدیر جان ممنون. من مشکل رو پیدا کردم. مشکل اینه که ان چیزی که شما اینجا نوشتید با چیزی که در سورس پیوستی نوشتید یکی دو جا تفاوت داره. علامت دالر در خط ۱۱ فایل پی اچ پی حذف شده که من بالاخره در فایل پیوستی پیداش کردم.

      لطفا پست قبلی من رو حذف کنید که غلط انداز نباشه. کدها در مجموع درست هست

      اما یک سوال/

      اگر ما بخواهیم به غیر از نام، نام خوانوادگی رو هم در لیست ویو نشون بدیم چی؟ یعنی ستون دوم که نام خانوداگی است چطور نمایش داده شود. ممنون

      • سلام.

        عزیز، کار سختش همین برقراری ارتباط با سرور و جستجو هست.

        حالا این چیزایی که شما میگید، جزئیاته دیگه.

        مثلا میتونید از متد addtowlines لیست ویو استفاده کنید و نتیجه جستجو رو توی یک متغیر بریزی و داخل لیست ویو نشون بدی.

        اینطوری

         

         

        فایل php ت رو هم اینطوری تغییر بده

        من براساس سورس خودمون اینارو نوشتم.

         

    • این دیدگاه ویرایش شده است

      سلام جلال جان

      هر آموزش یا سورسی قبل اینکه بخواد روی سایت منتشر بشه، اول خودم بررسیش میکنم بعد روی سایت منتشر میکنم، که وقت کاربران بخاطر وجود مشکل در سورس گرفته نشه.

      در رابطه با این که گفتید، در کد ۰ فراموش شده که گذاشته بشه، ۰ وجود داره شما باید روی کدهادوبار کلیک کنید تا کدها رو بتونید کپی و به صورت درست مشاهده کنید، در واقع این مشکل از سایت هست که رفع میکنم.

      و من الان سورس رو مجدد امتحان کردم؛ تصویر زیر را ببینید:

      مشکل دقیقت رو بگو با هم بررسی میکنیم تا به نتیجه برسیم، از این کدها داری جداگونه استفاده میکنی یا به کدهای قبلی خودت اضافه کردی؟

ارسال نظر

رفتن به بالا

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

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

بپرسم را میتوان به عنوان مرجعی برای آموزش و حل مشکلات دانست، در بپرسم سعی کرده ایم آموزش های برنامه نویسی، طراحی سایت، کار با نرم افزارها ها و… را آموزش دهیم. همچنین محیطی فراهم کرده ایم تا کاربران بتوانند در این محیط سوالات خود را بپرسند و مشکل خود را حل کنند.