دریافت اطلاعات از دیتابیس در PHP



visibility  
mode_comment   ۳۵

سلام امروز قصد دارم آموزش ساخت پروژه ای رو ارائه بدم که توسط اون میتونید اطلاعات ارسال شده به دیتا بیس(پروژه قبلی) رو دریافت کنید ما واسه ساخت چنین فرمی هم دوباره ، باید یه سری کارهایی که تو پروژه ی قبل انجام دادیم رو انجام بدیم،مثلأ یک فایل config ایجاد کنیم که اطلاعات دیتا بیسمون داخلش باشه و یه سری دستورات بنویسیم تا دوباره به دیتا بیس متصل بشیم. همونطوری که میدونید،ما فایل config رو واسه این میخوایم که اطلاعات دیتا بیس رو داخلش بذاریم،اما از اونجایی که ما قبلا که فرم ساخته بودیم واسه اتصال به همین دیتا بیس و اطلاعات رو از طریق اون فرم به دیتا بیس ارسال می کردیم،حالا کارمون یه کم راحت تره،چون اون فرم ارسال اطلاعات ،یه فایل config واسش درست کرده بودیم،این یکی فرم هم که واسه دریافت اطلاعاته یه فایل config دیگه میخواد،اما چون دیتابیسمون مشترکه تو این دوتا پروژه(این پروژه و روژه ی قبلی)،پس اطلاعاتشم که شامل آدرس هاست و نام و نام کاربری و رمزش باشه هم مشترکه و تغییر نمی کنه،پس همون فایل کانفیگ پروژه ی قبلو اینجا هم استفاده می کنیم،یعنی دیگه فایل کانفیگی نمی سازیم و آدرس همین فایل configرو به این پروژه هم میدیم؛پس اولین خط برناممون میشه این:

با دستور بالا ما اطلاعات لازم برای اتصال به دیتا بیس رو گرفتیم،حالا بایدبه دیتا بیسمون متصل بشیم،اینم دستورش:

ما اتصال به دیتا بیس رو برابر متغییر con$ قرار دادیم،اما اگه این کار رو هم نکنیم،اشکال نداره،یعنی میتونیم این شکلی بنویسیم:

اما چون توی مراحل بعد به این متغییر احتیاج داریم،بایدحالت اول رو انتخاب کنیم و کد رو اون شکلی بنویسیم! حالا دستوری می نویسیم که بشه باهاش دیتا بیسمون رو انتخاب کنیم:

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

طریقه ی نوشتنش دقیقأ شبیه دستور if هست،یعنی ما شرطمون رو داخل () و عملیاتی که باید انجام بشه رو داخل {} میذاریم خب ،پس میریم سر ادامه ی بحثمون،ما باید یه شرط یاهرچیزی که اسمشو بذاریم(!) تعریف کنیم که اونو به حلقه ی while بدیم تا بر اساس اون،یه کاری انجام بده که اینجا کارش گرفتن اطلاعات از دیتا بیس و نمایش اوناست. ما شرطمون رو به صورت زیر مینویسیم:

دستور بالا میگه که همه ی اطلاعات از دیتا بیس گرفته بشن(البته این فقط چنین چیزی رو میگه و دستورات بعدی هستن که اینو بهش معنا میدن! حالا شرطمون رو به صورت زیر،میذاریم توی حلقه،فقط دقت کنید شرط برابر متغییر dbresult$ قرار داده شده:

متخصص وردپرس
قالب ها و پلاگین های حرفه ای وردپرس رو خودت بنویس! بازار طراحی قالب و پلاگین نویسی وردپرس به شدت داغه و اگر بلد باشید با برنامه نویسی اختصاصی، قالب ها و پلاگین های دلخواه بنویسید تو مارکت های مطرح دنیا و یا از طریق فریلنسری می تونید به درآمد بالا برید. دوره متخصص وردپرس سون لرن رو حتما ببینید: متخصص وردپرس arrow_back

ما در دستور بالا،داخل حلقه دستور خروج یا به عبارتی کشیدن اطلاعات از دیتا بیس رو قرار دادیم ،اما نه هر اطلاعاتی،تنها اطلاعاتی گرفته میشن که ما در دستور قبلش معین کرده باشیم،یعنی همون دستوری که بعد برابر dbresult$ قرار دادیم،همون طور هم که می بینید،اونجا که دستور کشیدن اطلاعات رو نوشتیم،توی پرانتز جلوش،نوشتیم dbresult$،یعنی ما اطلاعاتی رو میخوایم که تو این متغییر تعریف شدن بعد کل دستور کشیدن اطلاعات یا همون شرط کلیمون رو برابر متغییر amch$ قرار دادیم پس الان اگه به این دستور که بالا هم اومده دقت کنیم،ما کل اطلاعات دیتا بیس رو گفتیم میخوایم،چرا؟چون نوشتیم انتخاب کن * از فلان جدول،علامت ستاره ای که گذاشتیم،به معنای همه ی اطلاعات هست؛اما ما شاید فقط لازم باشه برخی اطلاعات رو ببینیم،پس در ادامش از دستور زیر استفاده می کنیم:

اگه یادتون باشه،ما توی پروژه ی قبل که ارسال اطلاعات به دیتا بیس بود،دو تا متغییر نام و شماره موبایل رو داشتیم،پس اینجا هم میتونیم همون دوتا متغییر رو از دیتا بیس دریافت کنیم،پس اینجا هم،دستور بالاکه نوشتم،متغییر نام رو که قبلأ تو دیتا بیس ذخیره شده رو نشون میده،حالا یه کم بیشتر در مورد همین دستور توضیح میدم من اول نوشتم echo،این کلمه یا دستور اگه جلوش متغییر یا متنی نوشته بشه،اونو نمایش میده،مثلا دستور زیر،کلمه ی salam رو تو صفحه می نویسه:

پس منم ازش استفاده کردم تا اطلاعاتی که بهش میدمو نشون بده،اما چه اطلاعاتی رو بهش دادم؟؟ببینید بعد از دستور echo ،من نوشتم:

amch$ که اینجا می بینید،همون متغییری هست که توی حلقمون تعریف کردیم که برابر بیرون کشیدن همه ی اطلاعات بود،پس اینجا هم اونو به کار گرفتیم تا به برنامه بگیم از همه ی اطلاعاتی که ما اونجا گرفتیم،اطلاعات انتخاب شده رو نشون بده،اما چه اطلاعاتی انتخاب شدن؟؟ما جلو متغییر amch$ نوشتیم:

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

اما ما میخوایم که شماره موبایل های ذخیره شده رو هم بهمون نشون بده،پس فقط کافیه دستور زیر رو،به دستور نمایش نام ها ، اضافه کنیم:

ما نقطه ویرگول آخر دستور نمایش نام ها رو برداشتیم و بجاش یه نقطه گذاشتیم ،علت گذاشتن نقطه اینه که ما قصد داریم اطلاعات دیگه ای هم در ادامه ی نام افراد نشون داده بشه و در واقع نقطه این اطلاعات رو به هم پیوند میده،بعد از نقطه ما دوتا خط تیره بین دوتا "" گذاشتیم که شما میتونید بجای این دوتا خط تیره،یه متن یا علامت دیگه بذارید،این متن یا عبارت،حد فاصل بین نام و شماره موبایل خواهد بود،بعد دوباره یه نقطه گذاشتیم و بعد هم دوباره همون دستور گرفتن اطلاعات انتخابی رو گذاشتیم،با این تفاوت که بجای name،نوشتیم mob،چون ما میخوایم این بار شماره موبایل نشون داده بشه که اونم توی خونه ای از جدول بنام mob هست. بعد دوباره یه نقطه گذاشتیم و توی "" نوشتیم <br> واسه ی این نوشتیم که بعداز نمایش هر دوتا از اطلاعات،اطلاعات بعدی،یه خط پایین تر نشون داده بشن. حالا اینم دستوراتی که باید توی صفحه باشن یادتون باشه که کل دستورات همینان:

اینا رو که توی یه صفحه ی پی اچ پی نوشتید،بانام دلخواهی مثل من ذخیره کنید: get.php

امیدوارم این آموزش هم بتونه مفید باشه،سوالالی داشتید حتمأ بپرسید

info نکته :

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

اگه شما دوتا پروژه ی قبلی رو نخونده باشید،مسلمأ این یکی رو هم یاد نمی گیرید!

در مورد فایل ضمیمه یا فایلی که عبارات بالا داخلش جایگذاری میشن: فقط کافیه،این فایل رو هم کنار فایل های پروژه ی قبلی قرار بدید،به طور خودکار از اطلاعات فایل کانفیگی که قبلا ساختید استفاده می کنه،یعنی همون فایل config واسه کل پروژه های دیتا بیس که فعلأ میسازیم،کافیه. موفق باشید

فایل ضمیمه

comment دیدگاه کاربران
امید

سلام
1- اگر بخوام اطّلاعاتی که دریافت کردم رو در یک جدول که ردیف اوّلش توضیح ستون باشه و از ردیف دوم اطّلاعات دریافتی از دیتابیس رو نمایش بده ،چطوری باید کار کنم ؟
2- اگر فایل هایی رو (مثلاً همین دو پروژه) توی هاستم بریزم و برای ثبت اطّلاعات و دیدن اطّلاعات کاربرانم استفاده کنم ؛در این صورت اگر فردی آدرس فایل get رو بزنه میتونه تمام اطّلاعات رو نگاه کنه. امّا من میخوام که این اطّلاعات فقط به من نمایش داده بشه :
– چطوری برای فایل پسورد بذارم ؟
– میتونم فایل get رو در قسمت مدیریت وردپرس فراخوانی کنم تا مدیر بعد از ورود بتونه اون رو نگاه کنه ؟
ممنون میشم راهنماییم کنید.
با تشکّر از آموزش هاتون

کیوان علی محمدی

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

امید

من جدول بندی رو انجام دادم.
اگر با GET مقدار رمز عبور رو به فایلی مثلاً به اسم Check بفرستم و در اونجا پسورد رو چک کنم (یعنی بنویسم مثلاً $_GET[‘pass’] برابر “1234” شد برو به صفحه بعد ؛
1- اینظوری کسی از توی سورس یا جای دیگه ای نمیتونه پسورد رو پیدا کنه ؟
2- چطوری توی صفحه ای که باید بعد از چک کردن پسورد باز بشه چک کنم که از طرف فایل check به این صفحه اومده تا کسی نتونه با زدن آدرس فایل محتویات رو ببینه ؟
– میشه توی یک صفحه دستور شرطی بذارم که اگر پسورد درست بود دستورات داخل همون شرط رو انجام بده ؟
—-
میشه به جای این کار ،مثلاً یوزر و پسورد اتّصال به دیتابیس رو از کاربر درخواست کنم ؟ (که پسورد رو توی فایل PHP ننویسم)
با تشکّر

لقمان آوند

پسورد رو نباید با متد GET ارسال کرد . چون به راحتی در url میشه دزدیدش !
از $_SERVER['HTTP_REFERER'] هم برای دریافت اینکه از کجا درخواست اومده استفاده کن .

امید

—-
پسورد رو نباید با متد GET ارسال کرد . چون به راحتی در url میشه دزدیدش !
از $_SERVER[‘HTTP_REFERER’] هم برای دریافت اینکه از کجا درخواست اومده استفاده کن .

خوب من پسورد رو با متد POST ارسال میکنم که امینتش بالاتر بره ،ولی میشه برای $_SERVER[‘HTTP_REFERER’] یه کمی توضیح بدید و بگید چطوری باید باهاش کار کرد ؟
– میشه یوزر پسورد اتّصال به دیتابیس رو به جای اینکه در فایل (مثلاً config) قرار بدم از کاربر درخواست کنم ؟
با تشکّر

کیوان علی محمدی

$_SERVER[‘HTTP_REFERER’] آدرسی رو که کاربر از اون صفحه به صفحه فعلی اومده برای شما مشخص میکنه،بله شما می تونید اینکارو انجام بدید.

امید

یعنی من باید بزنم اگر مقدار $_SERVER[‘HTTP_REFERER’ مثلآً برابر “login” بود نمایش بده ؟ با دستور شرطی if باید این کار رو انجام بدم ؟
چطوری کار زیر رو انجام بدم :
– یوزر پسورد اتّصال به دیتابیس رو به جای اینکه در فایل (مثلاً config) قرار بدم از کاربر درخواست کنم ؟
با تشکّر فراوان

کیوان علی محمدی

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

امید

مثلاً یک فرم با HTML درست کنم که دوتا فیلد داشته باشه و بعد از تکمیل فرم توسط کاربر و تایید ،اطّلاعات اون فرمک در دو متغیّر ذخیره بشه و با متد post به صفحه مربوط بره و برای انّصال به دیتابیس مثلاً به جای db_user و db_pass اون دو متغیّر قرار بگیره و تلاش کنه که به دیتابیس متّصل بشه. درسته ؟
—-
منظور از کل آدرس برای مثال login.php هست یا www.sate.ir/login.php ؟؟؟

کیوان علی محمدی

بله منظورم همین بود،برای آدرس هم دومی درسته.

mch@

شما احتمالا کوئری را دست کاری کردین

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
1 2