قسمت های قبلی :
- آموزش نصب ساده PHP و اتصال به MySQL در آن
- آموزش آسان PHP / MySQL – بخش اول
- آموزش آسان کوئری Select در PHP / MySQL – بخش دوم
در بخش قبل توضیحات مقدماتی در مورد نحوه کارکرد دیتابیس و نیز تعامل MySQL با PHP گفتیم . در این پست می خواهیم به طور فشرده و آسان نحوه استفاده از کوئری Select را شرح دهیم . شاید 2 سوال برایتان پیش آمده باشد
- کوئری به چه معنی است ؟
- کار کوئری Select چیست ؟
کوئری (Query) به همان درخواستی گفته می شود که به دیتابیس فرستاده می شود و دیتابیس (که در اینجا MySQL است) نتایج متناسب با آن را بر می گرداند . در واقع درخواستی است که به زبان SQL به دیتابیس می فرستیم و اون فقط این زبان را می فهمد . راز همکاری PHP و MySQL هم در همین است . یعنی هر وقت در php نیاز به کار با دیتابیس داشتیم درخواستی با زبان SQL می سازیم و به دیتابیس می فرستیم و جواب را می گیریم .
در مورد کار کوئری Select همانطور که از نامش پیداست به وسیله آن می توانیم داده هایی را که از قبل در دیتابیس موجود هستند را بیرون کشیده و نمایش دهیم . در ادامه با نحوه انجام این کار آشنا خواهید شد .
وارد کردن اطلاعات به دیتابیس
برای اینکه بتوانیم با کوئری Select داده هارا از دیتابیس بگیریم و نمایش دهیم می بایست از قبل داده در آن موجود باشد . برای این کار برنامه PhpMyAdmin (موقع نصب Wamp این برنامه نیز نصب شده است) را از این آدرس باز کنیم :
http://localhost/phpmyadmin
از این برنامه می توانید برای مدیریت دیتابیس و داده هایتان استفاده کنید . همانطور که می دانید ساختار دیتابیس سلسله وار است به این شکل
MySQL Server > Database > Table > Row/Field
پس می بایست در شروع کار این ساختار را ایجاد نمایید . از این آدرس می توانید برای این کار کمک بگیرید.
اتصال به MySQL
همانطور که در بخش قبل دیدید قبل هر کاری با MySQL باید به آن وصل شویم . برای این کار از کد زیر استفاده کردیم :
mysql_connect('localhost','root','');
(توضیحات بیشتر در بخش قبل موجود است)
انتخاب دیتابیس
منظور از دیتابیس همان مخزنی است که همه جدول هایمان را در خود دارد . البته به خود MySQL هم در اصطلاح معمول دیتابیس گفته می شود . بعد از اتصال به MySQL نیاز داریم تا مشخص کنیم با کدام دیتابیس می خواهیم کار کنیم چون ممکن است در ما اس کیو ال چندین دیتابیس مختلف وجود داشته باشد . این کار دستور خاصی دارد که در زیر می بینید :
mysql_select_db('MyDatabase');
این تابع توکار php هم کارش این است که نام دیتابیس را می گیرد و دیگر نیاز به هیچ کار اضافه ای نیست و اماده اجرای کوئری هایمان هستیم. کافیست به جای MyDatabase
نام دیتابیس که خودتان ساخته اید را بگذارید.
اجرای اولین کوئری Select و دریافت داده ها از دیتابیس
فرض کنید می خواهیم یک وبلاگ ساده با php بنویسیم . وقتی صفحه اصلی این وبلاگ باز می شود می بایست پست ها زیر هم لیست شوند پس باید همه مقالات را از داخل جدولی که در دیتابیس قرار دارد و مخصوص ذخیره مقاله است بگیریم و نمایش دهیم . به یک کوئری Select شبیه این نیاز داریم :
$result = mysql_query("select * from MyTable");
در کد بالا با استفاده از تابع توکار mysql_query()
یک کوئری ساده به زبان SQL نوشتیم و اجرا کردیم و نتیجه ی آن را در داخل متغیر $result
قرار دادیم . به جای MyTable
در بالا باید نام جدول خودتان را بنویسید . این کوئری می گوید همه داده های موجود در جدول MyTable
را برای من بفرست .
تا اینجا نتیجه را گرفته ایم ولی به صورتی نیست که قابل نمایش باشد . باید کمی صیقل کاری شود برای همین آن را به تابع دیگری که در ادامه می بینید پاس می دهیم
نمایش داده های دریافتی
برای نمایش داده ها معمولا از یک ساختار ساده به این شکل استفاده می شود :
while($row = mysql_fetch_assoc($result)) { echo $row['MyField'].'<br>'; }
این کد بخش مهمی از کار با دیتابیس در php است . برای همین کمی بیشتر روی آن فوکوس می کنیم
این کد کارش نمایش اطلاعات (داده پس از پردازش) است و از دو بخش مهم تشکیل شده است .
- یک حلقه (
while
) - تابع
mysql_fetch_assoc
چرا از حلقه استفاده کردیم ؟ چون ممکن است بیش از یک داده در جدول موجود باشد . از آنجا که کار حلقه ها ,تکرار است پس می توانیم هر چقدر داده باشد نوبتی نمایش دهیم
کار تابع mysql_fetch_assoc()
هم این است که داده ها را در یک آرایه انجمنی (اطلاعات بیشتر) قرار می دهد و هر بار حلقه تکرار می شود سطر داده بعدی را در متغیر $row
می گذارید و بدین ترتیب ما می توانیم در داخل حلقه با دستور echo
مقدار آن را نمایش دهیم .
کد کامل
نتیجه کار تا به اینجا به این شکل خواهد بود
<?php mysql_connect('localhost','root',''); mysql_select_db('MyDatabase'); $result = mysql_query("select * from MyTable"); while($row = mysql_fetch_assoc($result)) { echo $row['MyField'].'<br>'; }
سوالات و مشکلات احتمالی تون رو حتما بپرسید . خوشحال میشم نظرتون رو راجع به این مطلب بدونم
سلام
بعد از نوشتن کدا این خطارو داد .لطفا راهنماییم کنید.
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\www\config.php:2 Stack trace: #0 C:\xampp\htdocs\www\check.php(2): include() #1 {main} thrown in C:\xampp\htdocs\www\config.php on line 2
سلام
احتمال زیاد ماژول mysql نصب نیست. این پست شاید مشکل رو حل کنه
https://fotolia.ir/%d9%86%d8%ad%d9%88%d9%87-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-mysqli-%d8%ac%d8%a7%db%8c-mysql-%d8%af%db%8c%d8%aa%d8%a7%d8%a8%db%8c%d8%b3-php
سلام
خیلی ممنون
توضیح ساده و کاربردی بود.
سلام.
لطفا دارید خوشحالم مفید بوده
سلام
میشه کوئری رو به صورت داینامیک هم نوشت؟؟
سلام . منظورتون از داینامیک دقیقا چیه ؟
با سلام یک فرم درست کردم که داخل آن از تگ select استفاده شده :
1- اول مقادیر آن در جدول دیتابیس را چی وارد کنم ؟
2- چگونه این اطلاعات را وارد دیتابیس کنم؟
وقتی که تگ select ذا از فرم حذف میکنم اطلاعات در دیتابیس ذخیره میشود و مشکلی ندارم فقط زمانی که این تگ را به فرم اضافه میکنم error میده.
ممنون میشم از طریق ایمیل راهنماییم کنید!
کدای مربوط به اتصال my sql و کویری ها رو باید توی کدوم قسمت بنویسیم؟
ممنون میشم اگه پاسخ بدین
سلام . یک فایل php باز کنین و کدها رو داخلش بنویسید . بعد با یه اسم مثلا mycode.php در پوشه مربوطه کپی کنید.
اگه xampp نصب کردید در پوشه c:\xampp\htdocs و اگر wamp نصب کردید در پوشه c:\wampp\www و بعد از طریق مرورگر با این آدرس بازش کنین: http://localhost/mycode.php
سلام
ببخشید کدای php رو باید کجا بنویسیم ؟
سلام … تشکر مفید بود …
فقط میتونم بگم همه چی کامل و ساده توضیح داده شده بود
واقعا عالی بود
ممنون
خیلی از نظر دلگرم کننده شما ممنونم 🙂
سلام من میخوام در بخش کاربری یک سایت بازبان phpیه بخشی برای نمایش لیستی از کارگاه ها درست کنم و امکان انتخاب و ثبت نام داشته باشه و مهلتشم محدود باشه میشه کمکم کنید
این کدی که در اموزش کوئری نوشتید کلشو توی یک صفحه بنویسم؟چجوریه درحالی ک من کد دیتابیش برای اجراشو توی صفحه دیتا نوشتم وکدای اجرایی رو در مین پروژم
مشکلم اینه نمیدونم دقیق باید کجاوارد کنم
با عرض سلام
من یه فرم درست کردم تقریبا 20 تا فیلد داره و اطلاعات وارد شده رو تو دیتابیس ذخیره کنم . بعد می خوام یه جدول بسازم که اطلاعات رو از دیتابیس بخونه فقط از این 20 تا فیلد 5 تا شون رو نشون میدم و آخرین ستون جدول می خوام یه دکمه بزارم برای ادامه مطلب و فیلد ها رو کامل اونجا نمایش بده ولی بلد نیستم درست کنم .
لطفا راهنماییم کنید
با تشکر از سایت بی نظیرتون
عالی بود