مباحث اولیه برای آشنایی با MySQL

P O U R I A

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

  1. شروع یادگیری MySQL
  2. ساخت یک پایگاه داده از طریق کنترل پنل هاست
  3. داشتن phpMyAdmin بر روی کامپیوترتان ، با نرم افزار wampserver یا نرم افزار easyphp
  4. تعیین رمز عبور root در MySQL
  5. کدنویسی MySQL در phpMyAdmin و ساخت یک پایگاه داده
  6. کدنویسی PHP برای ساخت یک پایگاه داده
  7. کدنویسی PHP برای ساخت یک جدول (table) برای یک پایگاه داده
  8. کدنویسی PHP برای ذخیره اطلاعات در یک جدول (table) مربوط به یک پایگاه داده
  9. ساخت یک فرم با کدنویسی PHP برای دریافت و ذخیره اطلاعات در یک جدول (table) مربوط به یک پایگاه داده
  10. دریافت اطلاعات ذخیره شده در یک جدول (table) از پایگاه داده و نمایش آنها
  11. دریافت اطلاعات یک یا چند ردیف خاص از جدول (table) موجود در پایگاه داده (بر اساس مقدار یک ستون خاص) و نمایش آن
  12. دریافت تمامی اطلاعات یک جدول (table) و مرتب کردن اطلاعات به صورت صعودی یا نزولی، بر اساس مقدار یک ستون خاص
  13. نوشتن متن فارسی در پایگاه داده (راه حل برای مشکل نمایش علامت های سوال (؟)، در پایگاه داده و یا در سایت)


منبع: کلیدستان
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
شروع یادگیری MySQL

شروع یادگیری MySQL

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

برایتان مثالی می زنم. مثلا فرض کنید در یک سایت، بخشی با نام ((قرآن کریم)) وجود دارد که در آن برای هر سوره یک صفحه ایجاد شده باشد که در آن تمامی آیات مربوط به آن سوره کپی شده است. خوب تا اینجا صاحب سایت کل قرآن را در سایت نوشته است (البته تنها به زبان عربی)، اکنون وی تصمیم می گیرد که علاوه بر 114 صفحه مربوط به 114 سوره قرآن به زبان عربی، 114 صفحه جدید در سایت خود بسازد که علاوه بر آیات به زبان عربی، ترجمه آنها نیز در زیر آیات نمایش داده شود. اگر وی از روش سنتی استفاده از ترکیب HTML و CSS استفاده کرده باشد باید تمامی محتویات آن 114 صفحه قبلی را در این 114 صفحه جدید کپی کند و سپس ترجمه آیات را یکی یکی، در میان آنها بنویسد. مشاهده می کنید که واقعا سخت می شود، حالا فرض کنید که وی بخواهد ترجمه های مربوط به 3 نفر مختلف را از قرآن کریم در سایت داشته باشد که دیگر حسابی وقتگیر می شود. اما فرض کنید وی از همان اول، تمامی آیات قرآن را به عربی در یک پایگاه داده قرار داده بود، با این کار اکنون به تنها چیزی که نیاز داشت این بود که ترجمه ها را هم در پایگاه داده قرار دهد و سپس با دستورات PHP به پایگاه داده مراجعه کرده و متن عربی و ترجمه فارسی را از آن بگیرد و آنها را به صورت متوالی نمایش بدهد. حتی امکان جستجو در میان آیات قرآن نیز با این روش امکان پذیر می شود، زیرا درون پایگاه داده، تنها متن قرآن کریم وجود دارد و سایر اطلاعات سایت، در آن تداخلی ایجاد نمی کند.

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

P O U R I A

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

ساخت یک پایگاه داده از طریق کنترل پنل هاست

معمولا آموزش کار با MySQL را با یاد دادن کدهای مربوط به آن شروع می کنند، اما من اینگونه شروع نخواهم کرد، زیرا می دانم به شدت گیج کننده است و باعث می شود که از خیر یادگیری آن بگذرید. من ابتدا نحوه ساخت یک پایگاه داده از طریق کنترل پنل هاست (همان کنترل پنلی که صاحبان سایت ها به آن دسترسی دارند، البته اگر هاست ندارید، در ادامه راه حلی برای آن ذکر می شود) را شرح خواهم داد و سپس شما را با phpMyAdmin آشنا می کنم که یک واسط گرافیکی است که از طریق آن می توانید پایگاه های داده خود را ویرایش کنید. بنابراین مفاهیم پایگاه داده را خیلی سریع و بهتر از یادگیری از طریق کد، درک خواهید کرد.

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

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


ساخت پایگاه داده :

فرض می کنیم که شما یک سایت داشته و به هاست سایت خود که کنترل پنل آن cpanel است، دسترسی دارید. ابتدا وارد کنترل پنل هاست خود بشوید و سپس در بخش با عنوان Databases که مربوط به پایگاه های داده می باشد، بر روی گزینه MySQL Databases کلیک کنید (مطابق شکل زیر) :
mysql-1.gif

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

mysql-2.jpg

که در آن، نام پایگاه داده، kelidest_d می باشد. برای ساخت یک پایگاه داده جدید باید در همین پنجره، بخش نشان داده شده در شکل زیر را پر کنیم :

mysql-3.jpg

همان طور که مشاهده می شود، به طور خودکار عبارت kelidest_ در ابتدای نام پایگاه داده وجود خواهد داشت و ما تنها برای ادامه آن می توانیم یک نام انتخاب کنیم. این عبارت از ابتدای kelidestan.com گرفته شده است که همان نام دامنه سایت می باشد و برای سایت شما متفاوت خواهد بود. مثلا نام test را در ادامه این عبارت نوشته و سپس بر روی گزینه Create Database کلیک می کنیم. پایگاه داده ای با نام kelidest_test ساخته خواهد شد و سپس پنجره زیر نمایش داده می شود :


mysql-4.gif

باید بر روی گزینه Go Back کلیک کنیم. این پایگاه داده جدید، در لیست پایگاه های داده موجود نمایش داده می شود :

mysql-5.jpg

همان طور که در شکل بالا قابل مشاهده می باشد، اینک دو پایگاه داده داریم. پایگاه داده kelidest_d دارای یک کاربر به نام kelidest_m است. وجود یک کاربر برای پایگاه داده ضروری است، زیرا بعدا از طریق نام کاربری و پسورد کاربر است که می توانیم به پایگاه داده متصل بشویم و ویرایش های لازم را انجام بدهیم. بنابراین باید برای پایگاه داده جدید kelidest_test ،یک کاربر تعریف کنیم. برای این منظور باید به سراغ بخشی که به شکل زیر می باشد برویم :


mysql-6.gif

در اینجا یک نام کاربری انتخاب می کنیم که البته ابتدای آن به صورت اجباری برابر عبارت kelidest_ خواهد بود و ما تنها می توانیم ادامه نام کاربری را تعیین کنیم. سپس برای آن یک پسورد تعیین می کنیم و در آخر نیز بر روی گزینه Create User کلیک می کنیم. با فرض اینکه عبارت number1 را برای ادامه نام کاربری انتخاب کنیم، آنگاه پنجره ای نمایش داده می شود که باید در آن بر روی گزینه Go Back کلیک کنیم. کاربری که تعریف کردیم در قسمت Current Users نمایش داده می شود :


mysql-7.jpg

اما نکته مهم این است که تنها کاربر تعریف شده است، ولی هنوز تعیین نکرده ایم که کاربر تعریف شده، برای کدامیک از پایگاه های داده موجود در کنترل پنل می باشد. بنابراین باید در این مرحله، کاربر kelidest_number1 را به عنوان کاربر پایگاه داده kelidest_test تعیین کنیم. برای این منظور باید به سراغ بخش زیر برویم :


mysql-8.gif

در این قسمت، User را برابر kelidest_number1 و Database را برابر kelidest_test انتخاب می کنیم و سپس بر روی گزینه Add کلیک می کنیم. پنجره زیر نمایش داده می شود :


mysql-9.jpg

گزینه ALL PRIVILEGES را انتخاب می کنیم (با این کار، تمامی دسترسی های پایگاه داده، به کاربر داده خواهد شد) و سپس بر روی گزینه Make Change کلیک می کنیم. پنجره زیر نمایش داده خواهد شد :


mysql-10.gif

باید بر روی گزینه Go Back کلیک کنیم. اینک در فهرست مربوط به پایگاه داده ها، برای پایگاه داده kelidest_test ،کاربر kelidest_number1 تعریف شده است :

mysql-11.jpg

بنابراین توانستیم پایگاه داده ای با نام kelidest_test که دارای کاربری به نام kelidest_number1 است، بسازیم.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
داشتن phpMyAdmin بر روی کامپیوترتان ، با نرم افزار wampserver یا نرم افزار easyphp

داشتن phpMyAdmin بر روی کامپیوترتان ، با نرم افزار wampserver یا نرم افزار easyphp

قبلا در مباحث آموزش PHP سایت کلیدستان، نرم افزار wampserver را به شما معرفی کردم که با آن می توانید صفحات PHP را بر روی مرورگر اینترنت خود مشاهده کنید و دیگر نیازی به نصب پیش نیازها به صورت مرحله به مرحله ندارید. علاوه بر نرم افزار wampserver، نرم افزار easyphp نیز می تواند برای این منظور به کار برود. هر دو نرم افزار wampserver و easyphp علاوه بر اجرای صفحات PHP، دارای یک نسخه از برنامه phpMyAdmin می باشند و بنابراین شما می توانید بر روی کامپیوتر خودتان، پایگاه داده بسازید و سپس آن را ویرایش کنید و فعلا نیازی به داشتن هاست نیست.

قبلا نرم افزار wampserver را معرفی کردیم، سعی می کنیم تمامی آموزش های سایت بر اساس این نرم افزار باشد (البته بد نیست با easyphp نیز آشنا شوید). محیط ها و گزینه های هر دو نرم افزار در برنامه phpMyAdmin، مشابه خواهد بود و بنابراین آموزش یکی، به درد کار با دیگری نیز می خورد.

با استفاده از نرم افزار wampserver می توان فایل های PHP را اجرا کرد، علاوه بر این، نرم افزار wampserver این امکان را فراهم می کند که شما بتوانید یک نسخه از phpMyAdmin را بر روی کامپیوترتان داشته باشید. با داشتن phpMyAdmin بر روی کامپیوترتان، می توانید با خیال راحت به ساختن پایگاه داده و ویرایش آن بر روی کامپیوترتان بپردازید (نیازی به داشتن هاست نیست).

هنگامی که نرم افزار wampserver را نصب کنید، آیکون آن در گوشه صفحه ویندوز نمایش داده می شود. آموزشی که من برایتان شرح می دهم، با نسخه شماره 2.2 از نرم افزار wampserver می باشد. البته برای سایر شماره ها، تفاوت زیادی وجود ندارد و تنها ممکن است در ظاهر نرم افزار یا منوها تغییراتی ایجاد شده باشد.

ابتدا نرم افزار wampserver را اجرا کنید و سپس بر روی آیکون نرم افزار wampserver که در گوشه ویندوز نمایش داده می شود، کلیک سمت چپ کرده و بعد گزینه phpMyAdmin را انتخاب کنید. مرورگر اینترنت باز خواهد شد و سپس phpMyAdmin نمایش داده می شود :

mysql-12.jpg

می توانید آدرس نوشته شده در مرورگر را یادداشت کنید تا در دفعات بعد، تنها با وارد کردن این آدرس در مرورگر اینترنت خود، به phpMyAdmin دسترسی پیدا کنید. مثلا این آدرس در کامپیوتر من به صورت زیر می باشد :

localhost/phpmyadmin/


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

به شکل زیر توجه کنید :
mysql-31.png


بر روی گزینه Databases کلیک می کنیم، صفحه زیر نمایش داده می شود :

mysql-32.jpg

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

برای ساخت یک پایگاه داده جدید، در قسمت Create new database ،یک نام دلخواه برای پایگاه داده می نویسیم و سپس بر روی گزینه Create کلیک می کنیم. مثلا من نام kelidestan.com را انتخاب می کنم (می خواهم اطلاعات دانش آموزان یک کلاس را در این پایگاه داده قرار بدهم). سپس بر روی گزینه Create کلیک می کنم. پیامی نمایش داده می شود که بیان می کند که پایگاه داده ساخته شده است.

نام پایگاه داده جدید، در لیست پایگاه های داده موجود، نمایش داده می شود :
mysql-13.png


بهتر است در همین ابتدا، یک نکته مهم را بیان کنم. برای این منظور، باید نحوه حذف کردن پایگاه داده را به شما آموزش بدهم. فرض کنید بخواهیم پایگاه داده kelidestan.com را که ساخته ایم، حذف کنیم. برای حذف پایگاه داده، ابتدا نام آن را انتخاب می کنیم (با علامت تیک در کنار آن) و سپس بر روی گزینه Drop که در پایین لیست پایگاه های داده نمایش داده شده است، کلیک می کنیم. در بالای صفحه، عبارات زیر نمایش داده می شود :


mysql-33.png

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

کد:
[COLOR=#000000][FONT=Tahoma]DROP DATABASE `kelidestan.com` ;[/FONT][/COLOR]
این عبارت، دستورات معادل برای حذف پایگاه داده با نام kelidestan.com می باشد. نکته مهم اشاره شده این است که بیشتر اعمالی را که به صورت گرافیکی با phpMyAdmin انجام می دهید، کدهای معادل آن نیز به شما نمایش داده می شود.

در واقع چون phpMyAdmin یک واسط گرافیکی است، بعد از اینکه عملی را از طریق آن انجام می دهیم، کدهای معادل آن عمل خاص را نمایش می دهد، یعنی اگر از واسط گرافیکی استفاده نمی کردیم، آنگاه برای اجرای این عمل، باید کدی که نمایش داده شده است را اجرا می کردیم. بنابراین phpMyAdmin به یادگیری کدنویسی نیز کمک می کند (البته اگر حوصله کنید و کدها را بخوانید !).

تا اینجا یک پایگاه داده به نام kelidestan.com ساخته ایم. نام این پایگاه داده در ستون سمت چپ phpMyAdmin نمایش داده می شود :

mysql-14.png


بر روی نام kelidestan.com کلیک می کنیم تا اطلاعات آن به صورت زیر نمایش داده شود :

mysql-34.jpg

هر پایگاه داده از تعدادی جدول (table) تشکیل می شود که اطلاعات، درون این جدول ها ذخیره هستند. چون پایگاه داده kelidestan.com را تازه ساخته ایم، بنابراین دارای هیچ جدولی نمی باشد. در قسمت Create new table on database ، نامی را برای جدولی که می خواهیم ساخته شود انتخاب می کنیم (من نام students را انتخاب می کنم) و آن را در کادر جلوی عبارت Name می نویسیم. در کادر جلوی عبارت Number of columns باید تعداد ستون های (column) لازم برای جدول را بنویسیم. مثلا ما فعلا قصد داریم که تنها نام دانش آموزان و یک نمره از آنها را در جدول ذخیره کنیم، بنابراین تعداد ستون (column) مورد نیاز برابر 2 می باشد (یکی برای نام دانش آموز و دیگری برای نمره دانش آموز). سپس بر روی گزینه Go کلیک می کنیم تا صفحه ای به صورت زیر نمایش داده شود :


mysql-16.jpg

چون تعداد ستون ها (column) را برابر 2 گرفتیم، بنابراین باید مشخصات لازم برای هر دو ستون را تعیین کنیم. تعدادی از این مشخصات را شرح می دهیم :

Column : در این قسمت باید نام ستون (column) مورد نظرمان را وارد کنیم. مثلا برای ستون اول که قرار است نام دانش آموزان در آن ذخیره شود، عبارت name را انتخاب می کنیم و برای ستون دوم که قرار است نمره دانش آموزان در آن ذخیره شود، عبارت mark را انتخاب می کنیم.

Type : در این قسمت باید مشخص کنیم که مقدار مربوط به ستون، از چه نوعی می باشد. یعنی اینکه باید مشخص کنیم که مقادیری که برای ستون ذخیره می شوند، کدامیک از انواع کاراکتر، عدد صحیح، عدد اعشاری و ... می باشند. مثلا برای ستون اول که مربوط به نام دانش آموز است، باید گزینه VARCHAR را انتخاب کنیم که برای رشته های با طول حداکثر 255 کاراکتر به کار می رود و برای ستون دوم که نمره دانش آموز است، باید گزینه FLOAT را انتخاب کنیم.

Length/Values : برای برخی از انواع ستون، باید طول آنها را مشخص کنیم. مثلا برای ستون اول که از نوع VARCHAR است، عدد 20 را انتخاب می کنیم.

Default : مقدار پیش فرض برای ستون می باشد (فعلا نیازی به تعیین آن نیست).

Attributes : مربوط به ویژگی های ستون است (فعلا نیازی به تعیین آن نیست).

Null : مشخص می کند که آیا ستون می تواند خالی بماند یا خیر.

پس از تعیین مشخصات مورد نظرتان برای ستون ها، باید بر روی گزینه Save کلیک کنید. جدول students ، به پایگاه داده kelidestan.com افزوده می شود :

mysql-35.png

همان طور که در شکل بالا می بینید، در جلوی جدول students و در زیر عنوان Action ، می توان 6 دکمه را مشاهده نمود و نام آنها نیز در کنارشان نوشته شده است. دکمه چهارم دارای نام Insert می باشد. این گزینه برای ذخیره اطلاعات درون جدول به کار می رود. مثلا فرض کنید بخواهیم اطلاعات یک دانش آموز با نام ali hoseini با نمره 20 را درون جدول students ذخیره کنیم. برای این منظور، بر روی دکمه با نام Insert کلیک می کنیم. صفحه ای به صورت شکل زیر نمایش داده می شود :


mysql-15.jpg

در قسمت Value باید مقادیری که گفتیم را وارد کنیم (ali hoseini با نمره 20) و سپس بر روی گزینه Go کلیک نماییم. پیامی به صورت زیر نمایش داده می شود :


mysql-17.png

شاید ذکر این نکته برایتان مفید باشد که اگر در شکل بالا دقت کنید، در گوشه پایین سمت راست، گزینه ای با عنوان Create PHP Code وجود دارد و اگر بر روی آن کلیک کنید، آنگاه کدهای PHP لازم برای انجام همین عمل، نمایش داده می شود. این موضوع بسیار با ارزش است و برای کدنویسی ارتباط بین PHP و MySQL ، کمک بزرگی می باشد.

اکنون می خواهیم ببینیم که اطلاعات ذخیره شده در جدول students به چه صورت است، برای این منظور باید ابتدا لیست شامل جدول ها را بیاوریم و سپس در جلوی ردیف مربوط به جدول students و در زیر عنوان Action ، بر روی دکمه با عنوان Browse کلیک کنیم. پس از کلیک بر روی دکمه Browse ، صفحه ای به صورت زیر نمایش داده می شود :

mysql-18.jpg



همان طور که مشاهده می کنید، نام ali hoseini و نمره 20 مربوط به وی، در جدول students ذخیره شده است.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تعیین رمز عبور root در MySQL

تعیین رمز عبور root در MySQL

در مباحث قبلی یاد گرفتید که چگونه یک نسخه از phpMyAdmin را بر روی کامپیوترتان داشته باشید (با استفاده از نرم افزار wampserver) و با محیط آن آشنا شدید. زمانی که شما با phpMyAdmin به صورت گرافیکی کار می کنید، به این معنی است که شما از یک مرحله امنیتی عبور کرده اید، یعنی شما قبلا و در زمان ورود خود به هاست، نام کاربری و رمز عبور کنترل پنل هاست را وارد کرده اید که شخص دیگری آن را ندارد و بنابراین اطلاعات شما در دسترس دیگران نیست (فعلا که phpMyAdmin بر روی کامپیوترتان است نیازی به ورود به کنترل پنل هاست نبوده است). زمانی که شما قصد دارید با کدنویسی PHP به MySQL متصل شوید نیز باید از یک مرحله امنیتی عبور کنید (تا هر کسی نتواند با MySQL سایت شما کار کند)، اما این بار نیازی به نام کاربری و رمز عبور کنترل پنل هاست نیست، بلکه باید یک رمز عبور root برای MySQL تعیین کنید. تنها کسی که این رمز عبور را داشته باشد می تواند با پایگاه های داده سایت شما کار کند.

هنگامی که شما قصد دارید با کدهای PHP به MySQL سایت متصل شوید، باید در اولین خط از کدهای PHP، نام کاربری و رمز عبور root در MySQL را بنویسید تا ابتدا به MySQL متصل شوید و سپس در دستورات بعدی می توانید موارد مورد نظر خود را برای پایگاه های داده MySQL اعمال کنید.

خوب فرض کنیم شما با استفاده از نرم افزار wampserver، یک نسخه از phpMyAdmin را بر روی کامپیوتر خود دارید، این سوال پیش می آید که نام کاربری و رمز عبور root در MySQL شما چیست ؟ پاسخ این است که شما هنوز رمزی را تعیین نکرده اید (یعنی خود آن به طور خودکار رمز ندارد) و اکنون باید برای آن یک رمز عبور تعیین کنید. معمولا چون root در MySQL دارای رمز عبور نیست، در phpMyAdmin، پیامی به شکل زیر نمایش داده می شود :

mysql-19.png

که به شما اخطار می دهد که بهتر است یک رمز root بسازید.

برای ساخت رمز root برای MySQL، ابتدا برنامه phpMyAdmin را باز کنید (توسط نرم افزار wampserver) و سپس بر روی گزینه Privileges کلیک کنید (از بین گزینه های نمایش داده شده در بالای صفحه) تا صفحه زیر در مرورگر اینترنت شما نمایش داده شود :

mysql-20.jpg


همان طور که مشاهده می کنید، در لیست User (لیست کاربرها)، یک کاربر با نام root وجود دارد (برای 3 هاست مختلف، که ما با localhost سر و کار خواهیم داشت - ممکن است در کامپیوتر شما، تنها برای یک هاست با نام دیگر باشد، مهم نیست و با آن نام کار کنید). در زیر عبارت Action، یک آیکون با عنوان Edit Privileges نمایش داده شده است. بر این آیکون (برای کاربر root با هاست localhost) کلیک کنید تا صفحه زیر باز شود (تنها بخش اول آن را نمایش داده ایم) :
مشاهده پیوست mysql-24.jpg

در پایین این صفحه، بخشی به صورت زیر وجود دارد :


mysql-25.jpg

این بخش مربوط به رمز عبور است. در این بخش، رمز عبور مورد نظر خود را (در دو قسمت password و Re-type) بنویسید و سپس بر روی گزینه GO کلیک کنید. پیامی به صورت زیر نمایش داده می شود :


mysql-26.png

خوب، اکنون چنانچه دوباره بخواهید با phpMyAdmin کار کنید، با پیام خطای زیر روبرو می شوید :




mysql-27.jpg

علت آن هم واضح است، شما رمز عبور root را تغییر داده اید و این کار باعث می شود که دیگر نرم افزار wampserver نتواند به phpMyAdmin دسترسی داشته باشد (در واقع، عدم دسترسی به MySQL). برای رفع این مشکل، به فولدر محل نصب نرم افزار wampserver بروید و ابتدا به درون فولدر apps و آنگاه به درون فولدر مربوط به phpmyadmin بروید. درون فولدر، فایل با نام config.inc.php را بیابید. آن را باز کنید و عبارت زیر را در میان کدهای آن بیابید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#000088]$cfg[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'Servers'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'password'[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]''[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
سپس آن را به صورت زیر تغییر بدهید (به جای کلمه password_new، رمز عبور انتخابی خود را بنویسید) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#000088]$cfg[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'Servers'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'password'[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]'password_new'[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
تغییرات را ذخیره کنید. اکنون نرم افزار wampserver می تواند به phpMyAdmin دسترسی داشته باشد (دسترسی به MySQL) و می توانید آن را در مرورگر خود مشاهده کنید. دیگر از آن پیام که تذکر می داد root شما دارای رمز عبور نیست هم خبری نخواهد بود.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
کدنویسی MySQL در phpMyAdmin و ساخت یک پایگاه داده

کدنویسی MySQL در phpMyAdmin و ساخت یک پایگاه داده

اکنون قصد داریم که در محیط phpMyAdmin شروع به کدنویسی کنیم و با استفاده از کدنویسی MySQL، پایگاه داده بسازیم و با پایگاه داده کار کنیم. اجازه بدهید برای گیج نشدن شما، یک دسته بندی برای روش های کار کردن با پایگاه های داده MySQL داشته باشیم. برای ساخت و ویرایش پایگاه های داده MySQL، از 3 روش زیر می توانیم استفاده کنیم :

روش اول : استفاده از محیط گرافیکی phpMyAdmin

روش دوم : استفاده از بخش مخصوص نوشتن کدهای MySQL در برنامه phpMyAdmin

روش سوم : نوشتن کدهای PHP در یک صفحه PHP (این روش دیگر ربطی به phpMyAdmin ندارد)

در اینجا قصد داریم که مختصری با روش دوم (استفاده از بخش مخصوص نوشتن کدهای MySQL در برنامه phpMyAdmin) آشنا بشویم. در واقع بهتر است به جای کار با phpMyAdmin به صورت گرافیکی، با دستورات و کدنویسی MySQL به ساخت و ویرایش پایگاه های داده بپردازیم (به روش دوم یا روش سوم. هدف نهایی، همان روش سوم است اما روش دوم برای افراد مبتدی ساده تر خواهد بود و با کدنویسی بهتر آشنا می شوید) تا بعدا در هنگام نوشتن دستورات برای ارتباط php با پایگاه داده MySQL، به مشکل برنخوریم.

ابتدا برنامه wampserver را اجرا کرده و سپس phpMyAdmin را در مرورگر خود بیاورید.

بر روی گزینه SQL کلیک کنید تا صفحه ای به صورت زیر نمایش داده شود :

mysql-28.jpg

شما در اینجا می توانید کدهای MySQL مورد نظر خود را بنویسید (نه کد PHP) و سپس بر روی گزینه Go کلیک کنید تا کدها اجرا شوند. در ادامه تعدادی از دستورات لازم برای ساخت پایگاه های داده و کار با آنها را معرفی خواهیم کرد.

[h=2]ساخت یک پایگاه داده با دستور CREATE DATABASE :[/h]فرض کنید بخواهیم یک پایگاه داده با نام kelidestan بسازیم (اگر قبلا پایگاه داده ای با این نام ساخته اید، آن را حذف کنید). کدهای زیر را می نویسیم (در همان قسمتی که قبلا گفتیم) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]CREATE DATABASE kelidestan [COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
سپس بر روی گزینه Go کلیک می کنیم. پایگاه داده ساخته می شود و نام آن را می توانیم در بین پایگاه های داده موجود ببینیم :

mysql-29.png
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
کدنویسی PHP برای ساخت یک پایگاه داده

کدنویسی PHP برای ساخت یک پایگاه داده

در مبحث قبلی گفتیم که 3 روش برای ساخت پایگاه های داده و ویرایش آنها وجود دارد و دو روش اول (استفاده از محیط گرافیکی phpMyAdmin و استفاده از بخش مخصوص نوشتن کدهای MySQL در برنامه phpMyAdmin) را توضیح دادیم. اکنون نوبت می رسد به روش سوم که همان استفاده از کدهای PHP است و مهمترین روش برای طراحی و توسعه سایت به حساب می آید.

شما باید یک صفحه PHP بسازید. اگر قصد دارید این صفحه PHP را هم اکنون در هاست خود تست کنید، فرقی ندارد در کدام فولدر از فولدرهای زیرمجموعه فولدر اصلی هاست قرار بگیرد (مکان آن مهم نیست) و در هر کجا که زیرمجموعه فولدر اصلی هاست باشد، می توانید آن را تست کنید. اگر قصد دارید بر روی کامپیوتر خودتان و با استفاده از نرم افزار wampserver، صفحه PHP مورد نظر را تست کنید، باید در محلی صفحه را قرار دهید که زیرمجموعه فولدر با نام www در درون فولدر محل نصب نرم افزار wampserver باشد (در محل های دیگر، کدهای PHP صفحه، اجرا نخواهند شد).

فرض کنید قصد داریم یک پایگاه داده با نام kelidestan بسازیم (اگر قبلا پایگاه داده ای با این نام ساخته اید، آن را در phpMyAdmin حذف کنید یا می توانید نامی دیگر را انتخاب کنید). در صفحه PHP، کدهای PHP زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysql_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[COLOR=#000088]$create[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"CREATE DATABASE kelidestan"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$create[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"پایگاه داده ساخته شد"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"به دلیل مشکل زیر، پایگاه داده ساخته نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysql_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[COLOR=#990000]mysql_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
کدهای بالا را باید بر اساس نام هاست، نام کاربر اصلی (که معمولا root است) ، رمز عبور کاربر اصلی و نام پایگاه داده ای که می خواهید بسازید، تغییر بدهید، بنابراین توضیحاتی را که در ادامه شرح می دهم به دقت گوش کنید. خوب اکنون بخش های مختلف کد بالا را شرح می دهیم. تابع mysql_connect، یک تابع تعریف شده در PHP می باشد که برای برقراری اتصال با MySQL به کار می رود. این تابع، سه ورودی دریافت می کند و نحوه به کار بردن آن به شکل زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#000088]$con[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"username"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"password"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
کلمه localhost همان نام هاست می باشد (معمولا localhost می باشد و نیازی به تغییر آن نیست). به جای username باید نام کاربر اصلی تعریف شده را وارد کنید که اگر آن را تغییر نداده باشید، با نام root می باشد. به جای password نیز باید رمز عبور کاربر اصلی را وارد کنید، به طور پیش فرض هیچ رمزی تعیین نشده است و می توان عبارت password را پاک کرد تا عبارت "password" به عبارت "" تبدیل شود اما من قبلا نحوه تعریف رمز عبور برای کاربر اصلی را توضیح دادم و چون در موارد واقعی، از رمز عبور استفاده می کنیم، بهتر است از همین حالا یک رمز عبور مشخص بکنید. بنابراین شما باید در خط اول کدها، این سه مورد را مشخص کنید.

ما نتیجه حاصل از mysql_connect را در متغیر con ذخیره کرده ایم و بعدا با دستور if چک می کنیم که آیا اتصال با MySQL برقرار شده است یا نه. تابع mysql_error برای نمایش مشکل به وجود آمده در MySQL به کار می رود. اگر در اتصال با MySQL، مشکلی پیش بیاید، مشکل ذکر شده در خروجی به کاربر نمایش داده می شود، اما اگر مشکلی نباشد، عبارت ((پایگاه داده ساخته شد)) نمایش داده خواهد شد.

تابع mysql_query که یک تابع تعریف شده در PHP است و برای اجرای دستورات (query های) MySQL به کار می رود. همان طور که مشاهده کردید، این دستور را به صورت زیر به کار برده ایم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#000088]$create[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"CREATE DATABASE kelidestan"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
که در آن، عبارت CREATE DATABASE kelidestan همان دستور MySQL است که قبلا یاد گرفتیم که در بخش SQL در برنامه phpMyAdmin می توانیم اجرا کنیم و kelidestan، نام پایگاه داده است که می توانید آن را به دلخواه تعیین کنید. درون پرانتز تابع mysql_query، اتصال $con را هم ذکر کرده ایم. بنابراین تابع mysql_query، یک دستور MySQL (که البته باید آن را درون دو علامت " قرار بدهیم) و همچنین متغیر مربوط به اتصال به MySQL مورد نظر را دریافت کرده و سپس دستور MySQL (یک query برای MySQL) داده شده را برای آن MySQL اجرا می کند.

نتیجه حاصل از تابع را در متغیر create ذخیره می کنیم تا بعدا با دستور if، متغیر را چک کرده و بر اساس آن، اعلام کنیم که آیا پایگاه داده ساخته شده یا نه و اگر ساخته نشده، مشکل MySQL پیش آمده، چه می باشد.

در آخر کدها از تابع mysql_close استفاده کرده ایم که برای پایان دادن اتصال به یک MySQL به کار می رود. دقت شود که نام متغیر مربوط به آن اتصال MySQL را باید درون پرانتز تابع mysql_close ، ذکر کنیم.

اگر صفحه PHP مورد نظر را در مرورگر اینترنت خود اجرا کنید و پیام ((پایگاه داده ساخته شد)) نمایش داده شود، می توانید به phpMyAdmin بروید و پایگاه داده ساخته شده را در لیست پایگاه های داده ببینید.

برنامه phpMyAdmin را باز می کنیم و لیست پایگاه های داده موجود را بررسی می کنیم :mysql-21.png
مشاهده می کنید که پایگاه داده kelidestan ، ساخته شده است.

برای آشنایی با پیام های خطا، اگر دو بار صفحه PHP مورد نظر را در مرورگر بیاورید (تا کدهای PHP دو بار اجرا شوند)، پیام زیر نمایش داده می شود:
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]به دلیل مشکل زیر، پایگاه داده ساخته نشد [COLOR=#339933]:[/COLOR] 
Can[COLOR=#0000FF]'t create database '[/COLOR]kelidestan[COLOR=#0000FF]'; database exists
[/COLOR][/FONT]
[/FONT][/COLOR]
همان طور که مشاهده می کنید، چون قبلا پایگاه داده ای با این نام ساخته شده است (دو بار اجرا کرده ایم و در بار اول ساخته شده است)، تذکر داده شده که یک پایگاه داده با این نام وجود دارد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
کدنویسی PHP برای ذخیره اطلاعات در یک جدول (table) مربوط به یک پایگاه داده

کدنویسی PHP برای ذخیره اطلاعات در یک جدول (table) مربوط به یک پایگاه داده

فرض کنید یک پایگاه داده با نام kelidestan ساخته ایم که دارای یک جدول با نام students است که دارای دو ستون می باشد. ستون اول، با نام name و از نوع VARCHAR با طول 20 می باشد و ستون دوم با نام mark و از نوع FLOAT می باشد. این اطلاعات را می توانید در شکل زیر که از برنامه phpMyAdmin می باشد نیز مشاهده کنید :


mysql-37.jpg

این جدول برای ذخیره نام دانش آموزان و نمره آنها می باشد و حالا ما قصد داریم که نام دو دانش آموز و همچنین نمره آنها را در جدول students ذخیره کنیم. کدهای زیر را در یک صفحه PHP نوشته و سپس آن صفحه را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]mysql_select_db[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysql_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#666666][I]// add first student[/I][/COLOR]
[COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"INSERT INTO students (name, mark) VALUES ('ali rajabi', 19)"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// add second student[/I][/COLOR]
[COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"INSERT INTO students (name, mark) VALUES ('reza soleimani', 17)"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#990000]mysql_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
در برنامه phpMyAdmin ، اطلاعات جدول student را بررسی می کنیم :

mysql-38.jpg



مشاهده می کنید که اطلاعات دو دانش آموز، به جدول student افزوده شده است. در واقع، با افزودن هر دانش آموز به جدول، یک ردیف به جدول افزوده می شود. بنابراین، اکنون جدول student ، دارای 2 ستون (ستون name و ستون mark) و دو ردیف (اطلاعات دانش آموز اول و اطلاعات دانش آموز دوم) می باشد.

[h=4]نکته :[/h]چنانچه بخواهیم همین کار را با mysqli انجام بدهیم (به جای mysql)، باید کدهای زیر را بنویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysqli_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]mysqli_connect_errno[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
   [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysqli_connect_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#666666][I]// add first student[/I][/COLOR]
[COLOR=#990000]mysqli_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"INSERT INTO students (name, mark) VALUES ('ali rajabi', 19)"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// add second student[/I][/COLOR]
[COLOR=#990000]mysqli_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"INSERT INTO students (name, mark) VALUES ('reza soleimani', 17)"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#990000]mysqli_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ساخت یک فرم با کدنویسی PHP برای دریافت و ذخیره اطلاعات در یک جدول (table) مربوط به یک پایگاه داده

ساخت یک فرم با کدنویسی PHP برای دریافت و ذخیره اطلاعات در یک جدول (table) مربوط به یک پایگاه داده

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

فرض کنید یک پایگاه داده با نام kelidestan ساخته ایم که دارای یک جدول با نام students است که دارای دو ستون می باشد. ستون اول، با نام name و از نوع VARCHAR با طول 20 می باشد و ستون دوم با نام mark و از نوع FLOAT می باشد. این اطلاعات را می توانید در شکل زیر که از برنامه phpMyAdmin می باشد نیز مشاهده کنید :

mysql-37.jpg

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

ابتدا یک فایل html با نام form.html می سازیم که کدهای فرم درون آن باید نوشته شود. کدهای این فایل را به صورت زیر می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]html[COLOR=#339933]>[/COLOR]

[COLOR=#339933]<[/COLOR]head[COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]head[COLOR=#339933]>[/COLOR]

[COLOR=#339933]<[/COLOR]body[COLOR=#339933]>[/COLOR]

[COLOR=#339933]<[/COLOR]form action[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"database.php"[/COLOR] method[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"post"[/COLOR][COLOR=#339933]>[/COLOR]
name [COLOR=#339933]:[/COLOR] [COLOR=#339933]<[/COLOR]input type[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"text"[/COLOR] name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"name_value"[/COLOR][COLOR=#339933]>[/COLOR]
mark [COLOR=#339933]:[/COLOR] [COLOR=#339933]<[/COLOR]input type[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"text"[/COLOR] name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"mark_value"[/COLOR][COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]input type[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"submit"[/COLOR][COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]form[COLOR=#339933]>[/COLOR]

[COLOR=#339933]</[/COLOR]body[COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]html[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
همان طور که مشاهده می کنید، مشخصه action برای تگ form ، برابر با database.php قرار داده شده است و مشخصه method نیز به صورت post انتخاب گردیده است. معنی این دو انتخاب این است که اطلاعات وارد شده توسط کاربر، با روش post برای فایل database.php ارسال خواهد شد تا این فایل PHP ، پردازش های لازم را بر روی اطلاعات وارد شده، انجام دهد. دقت کنید که چون قبل از نام فایل database.php ، هیچ مسیری مشخص نشده است، بنابراین باید هر دو فایل form.html و database.php ، درون یک فولدر قرار داشته باشند.

شکل فرم به صورت زیر است :
mysql-39.png


که باید در قسمت name ، نام دانش آموز و در قسمت mark ، نمره دانش آموز را بنویسیم و سپس بر روی گزینه submit کلیک کنیم (البته نه فعلا، بلکه زمانی که فایل PHP لازم برای پردازش اطاعات دریافتی را نوشته باشیم).

کدهای فایل database.php را به صورت زیر می نویسیم (این فایل اطلاعات ورودی فرم را دریافت کرده و در جدول student از پایگاه داده kelidestan ذخیره خواهد کرد) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysql_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]mysql_select_db[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysql_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$sql[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#0000FF]"INSERT INTO students (name, mark) VALUES ('[COLOR=#006699][B]$_POST[name_value][/B][/COLOR]','[COLOR=#006699][B]$_POST[mark_value][/B][/COLOR]')"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$sql[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]'خطای زیر رخ داده است : <br />'[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysql_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"اطلاعات ذخیره شد"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]mysql_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
اکنون می خواهیم اطلاعات یک دانش آموز را در جدول پایگاه داده، ذخیره کنیم. نام hamid soleimani و نمره 18 را در فرم وارد کرده و سپس بر روی گزینه Submit کلیک می کنیم.

اکنون باید ببینیم که آیا اطلاعات وارد شده، در پایگاه داده ذخیره شده است یا خیر. در برنامه phpMyAdmin ، اطلاعات جدول student را بررسی می کنیم :

mysql-40.jpg


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

نکته :

چنانچه بخواهیم همین کار را با mysqli انجام بدهیم (به جای mysql)، باید کدهای زیر را بنویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysqli_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]mysqli_connect_errno[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
   [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysqli_connect_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$sql[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#0000FF]"INSERT INTO students (name, mark)
VALUES ('[COLOR=#006699][B]$_POST[name_value][/B][/COLOR]','[COLOR=#006699][B]$_POST[mark_value][/B][/COLOR]')"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#990000]mysqli_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$sql[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
   [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]'خطای زیر رخ داده است : <br />'[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysqli_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"اطلاعات ذخیره شد"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#990000]mysqli_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
کدنویسی PHP برای ساخت یک جدول (table) برای یک پایگاه داده

کدنویسی PHP برای ساخت یک جدول (table) برای یک پایگاه داده

ابتدا یک پایگاه داده با نام kelidestan می سازیم (به هر روش دلخواه). می توانیم وجود آن را توسط برنامه phpMyAdmin بررسی کنیم. برنامه phpMyAdmin را باز کرده و چک می کنیم که حتما نام kelidestan ، در بین پایگاه های داده موجود، نوشته شده باشد :mysql-36.png
یک صفحه PHP می سازیم و درون آن، کدهای PHP زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]mysql_select_db[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
     [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysql_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#666666][I]// query for create table [/I][/COLOR]
[COLOR=#000088]$sql[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"CREATE TABLE students(name VARCHAR(20),mark FLOAT)"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// Execute query[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$sql[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
     [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"جدول ساخته شد"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
     [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"به دلیل مشکل زیر، جدول ساخته نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysql_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]mysql_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
با کدهای فوق، ابتدا به پایگاه داده با نام kelidestan متصل می شویم، سپس برای آن، جدولی با نام students می سازیم که دارای دو ستون (column) باشد، اولی با نام name و از نوع VARCHAR با طول 20 و دومی، با نام mark و از نوع FLOAT .

درون برنامه phpMyAdmin ، به قسمت مربوط به پایگاه داده kelidestan می رویم تا ببینیم که جدول students ساخته شده است یا خیر (البته وقتی کدهای PHP فوق، پیام خطایی ندهد، یعنی همه چیز درست انجام شده، اما فعلا چون در حال یادگیری هستیم، بد نیست نتایج را با چشم ببینیم تا در آینده، با خیال آسوده تری، کد بنویسیم) :mysql-22.png
مشاهده می کنید که جدول با نام students ، برای پایگاه داده kelidestan ، ساخته شده است. بر روی نام جدول، کلیک می کنیم تا اطلاعات آن نمایش داده شود :

mysql-30.jpg

دو ستون مورد نظر ما (یعنی name و mark)، به درستی تعریف شده است.

نکته :

چنانچه بخواهیم همین کار را با mysqli انجام بدهیم (به جای mysql)، باید کدهای زیر را بنویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysqli_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]mysqli_connect_errno[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysqli_connect_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#666666][I]// Create table[/I][/COLOR]
[COLOR=#000088]$sql[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#0000FF]"CREATE TABLE students(name VARCHAR(20),mark FLOAT)"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// Execute query[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]mysqli_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$sql[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"پایگاه داده ساخته شد"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"به دلیل مشکل زیر، پایگاه داده ساخته نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysqli_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]mysqli_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
 
آخرین ویرایش:

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
دریافت اطلاعات ذخیره شده در یک جدول (table) از پایگاه داده و نمایش آنها

دریافت اطلاعات ذخیره شده در یک جدول (table) از پایگاه داده و نمایش آنها

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

فرض کنید یک پایگاه داده با نام kelidestan ساخته ایم که دارای یک جدول با نام students است که دارای دو ستون می باشد (این جدول برای ذخیره نام دانش آموزان و نمره آنها می باشد). ستون اول، با نام name و از نوع VARCHAR با طول 20 می باشد و ستون دوم با نام mark و از نوع FLOAT می باشد. در جدول students ، نام دانش آموزان (درون ستون name) و نمره دانش آموزان (درون ستون mark) را ذخیره می کنیم. قبلااطلاعات مربوط به دو دانش آموز را در جدول students ذخیره کرده ایم. این اطلاعات را می توانید در شکل زیر که از برنامه phpMyAdmin می باشد مشاهده کنید :

mysql-41.jpg

اکنون باید یک فایل PHP بسازیم و کدهایی را درون آن بنویسیم که اطلاعات این دو دانش آموز را از پایگاه داده، دریافت کرده و در خروجی نمایش بدهد. کدهای فایل PHP به صورت زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysql_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]mysql_select_db[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
     [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysql_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$result[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"SELECT * FROM students"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<table border='1'>
<tr>
<th>name</th>
<th>mark</th>
</tr>"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$row[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_fetch_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$result[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
     [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<tr>"[/COLOR][COLOR=#339933];[/COLOR]
     [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<td>"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'name'[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"</td>"[/COLOR][COLOR=#339933];[/COLOR]
     [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<td>"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'mark'[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"</td>"[/COLOR][COLOR=#339933];[/COLOR]
     [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"</tr>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"</table>"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#990000]mysql_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
با اجرای فایل PHP ، نتیجه به صورت شکل زیر خواهد بود :
mysql-42.png


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

اکنون قصد داریم که به یک صورت دیگر، اطلاعات را در خروجی نمایش بدهیم. برای این منظور، این بار کدهای PHP زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysql_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]mysql_select_db[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysql_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$result[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"SELECT * FROM students"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$row[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_fetch_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$result[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'name'[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'mark'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]mysql_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
نتیجه اجرای کدهای PHP ، به صورت شکل زیر می باشد :

mysql-43.png


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

نکته :

چنانچه بخواهیم همین کار را با mysqli انجام بدهیم (به جای mysql)، باید کدهای زیر را بنویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysqli_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]mysqli_connect_errno[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysqli_connect_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$result[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysqli_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"SELECT * FROM students"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<table border='1'>
<tr>
<th>name</th>
<th>mark</th>
</tr>"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$row[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysqli_fetch_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$result[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<tr>"[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<td>"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'name'[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"</td>"[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<td>"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'mark'[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"</td>"[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"</tr>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"</table>"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#990000]mysqli_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
و شیوه دوم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysqli_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]mysqli_connect_errno[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Failed to connect to MySQL: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysqli_connect_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$result[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysqli_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"SELECT * FROM students"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$row[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysqli_fetch_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$result[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'name'[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'mark'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]mysqli_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
دریافت اطلاعات یک یا چند ردیف خاص از جدول (table) موجود در پایگاه داده (بر اساس مقدار یک ستون خاص) و نمایش آن

دریافت اطلاعات یک یا چند ردیف خاص از جدول (table) موجود در پایگاه داده (بر اساس مقدار یک ستون خاص) و نمایش آن

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

فرض کنید یک پایگاه داده با نام kelidestan ساخته ایم که دارای یک جدول با نام students است که دارای دو ستون می باشد (این جدول برای ذخیره نام دانش آموزان و نمره آنها می باشد). ستون اول، با نام name و از نوع VARCHAR با طول 20 می باشد و ستون دوم با نام mark و از نوع FLOAT می باشد. در جدول students ، نام دانش آموزان (درون ستون name) و نمره دانش آموزان (درون ستون mark) را ذخیره می کنیم. قبلا اطلاعات مربوط به 4 دانش آموز را در جدول students ذخیره کرده ایم. این اطلاعات را می توانید در شکل زیر که از برنامه phpMyAdmin می باشد، مشاهده کنید :

mysql-44.jpg

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

بنابراین، یک فایل PHP حاوی کدهای PHP زیر می سازیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysql_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]mysql_select_db[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysql_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$result[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"SELECT * FROM students WHERE mark=15"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$row[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_fetch_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$result[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'name'[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'mark'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]mysql_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
بخش مهم کدها را در زیر، دوباره نمایش می دهیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]WHERE mark[COLOR=#339933]=[/COLOR][COLOR=#CC66CC]15[/COLOR][/FONT]
[/FONT][/COLOR]
با اجرای فایل PHP ، نتیجه به صورت شکل زیر خواهد بود :

mysql-45.png

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

[h=4]نکته :[/h]چنانچه بخواهیم همین کار را با mysqli انجام بدهیم (به جای mysql)، باید کدهای زیر را بنویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysqli_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]mysqli_connect_errno[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysqli_connect_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$result[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysqli_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"SELECT * FROM students WHERE mark=15"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$row[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysqli_fetch_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$result[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'name'[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'mark'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]mysqli_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
 

P O U R I A

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

دریافت تمامی اطلاعات یک جدول (table) و مرتب کردن اطلاعات به صورت صعودی یا نزولی، بر اساس مقدار یک ستون خاص

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

فرض کنید یک پایگاه داده با نام kelidestan ساخته ایم که دارای یک جدول با نام students است که دارای دو ستون می باشد (این جدول برای ذخیره نام دانش آموزان و نمره آنها می باشد). ستون اول، با نام name و از نوع VARCHAR با طول 20 می باشد و ستون دوم با نام mark و از نوع FLOAT می باشد. در جدول students ، نام دانش آموزان (درون ستون name) و نمره دانش آموزان (درون ستون mark) را ذخیره می کنیم. قبلا اطلاعات مربوط به 4 دانش آموز را در جدول students ذخیره کرده ایم. این اطلاعات را می توانید در شکل زیر که از برنامه phpMyAdmin می باشد، مشاهده کنید :

mysql-47.jpg

فرض کنید که بخواهیم ردیف های جدول را بر اساس نمره دانش آموزان (یعنی ستون mark)، به صورت صعودی نمایش بدهیم. برای این منظور، یک فایل PHP ، شامل کدهای PHP زیر می سازیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysql_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]mysql_select_db[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysql_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$result[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"SELECT * FROM students ORDER BY mark"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$row[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_fetch_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$result[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'name'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]" "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'mark'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]mysql_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
نتیجه اجرای صفحه PHP ، به صورت زیر خواهد بود :

mysql-46.png

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

همچنین اگر بخواهیم اطلاعات به صورت نزولی مرتب شود، باید از کلمه کلیدی DESC استفاده کنیم. برای این منظور، کدهای زیر را در صفحه PHP می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysql_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]mysql_select_db[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysql_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$result[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"SELECT * FROM students ORDER BY mark DESC"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$row[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_fetch_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$result[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'name'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]" "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'mark'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]mysql_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
نتیجه اجرای صفحه PHP ، به صورت زیر خواهد بود :

mysql-48.png

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

این بار می خواهیم اطلاعات دانش آموزان را بر اساس نام دانش آموزان (یعنی ستون name)، به صورت صعودی، مرتب کنیم. یک صفحه PHP ، شامل کدهای زیر می سازیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysql_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]mysql_select_db[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysql_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$result[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"SELECT * FROM students ORDER BY name"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$row[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysql_fetch_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$result[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'name'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]" "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'mark'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]mysql_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
نتیجه اجرای صفحه PHP ، به صورت زیر خواهد بود :

mysql-49.png


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

نکته :

چنانچه بخواهیم همین کار را با mysqli انجام بدهیم (به جای mysql)، باید کدهای زیر را بنویسیم :

بر اساس نمره دانش آموزان (یعنی ستون mark)، به صورت صعودی :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysqli_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]mysqli_connect_errno[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysqli_connect_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$result[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysqli_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"SELECT * FROM students ORDER BY mark"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$row[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysqli_fetch_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$result[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'name'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]" "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'mark'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]mysqli_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
بر اساس نمره دانش آموزان (یعنی ستون mark)، به صورت نزولی :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysqli_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]mysqli_connect_errno[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysqli_connect_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$result[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysqli_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"SELECT * FROM students ORDER BY mark DESC"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$row[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysqli_fetch_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$result[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'name'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]" "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'mark'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]mysqli_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
بر اساس نام دانش آموزان (یعنی ستون name)، به صورت صعودی :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysqli_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"localhost"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"root"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"1234567"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"kelidestan"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#666666][I]// Check connection[/I][/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]mysqli_connect_errno[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"به دلیل مشکل زیر، اتصال برقرار نشد : <br />"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#990000]mysqli_connect_error[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#000088]$result[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysqli_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"SELECT * FROM students ORDER BY name"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$row[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]mysqli_fetch_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$result[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'name'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]" "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$row[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'mark'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]mysqli_close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
نوشتن متن فارسی در پایگاه داده (راه حل برای مشکل نمایش علامت های سوال (؟)، در پایگاه داده و یا در سایت)

نوشتن متن فارسی در پایگاه داده (راه حل برای مشکل نمایش علامت های سوال (؟)، در پایگاه داده و یا در سایت)

حتما تاکنون برایتان پیش آمده است که یک متن فارسی را در پایگاه داده ثبت کرده اید، اما بعدا که آن را فراخوانی می کنید، تنها علامت های سوال (؟) به جای متن فارسی، نمایش داده می شود (در برخی مواقع، حتی در phpMyAdmin نیز اینگونه است). برای رفع این مشکل، در ادامه نکاتی را آموزش خواهیم داد.قبل از هرچیز، هنگام ساخت پایگاه داده، باید مشخصه collation را برای ((پایگاه داده))، ((جدول های پایگاه داده)) و ((ستون هایی از هر جدول که شامل کاراکتر می باشند)) را به صورت utf8_general_ci تعریف کنیم. اگر قبلا آنها را ساخته ایم، کافی است که این موارد را برای آنها تغییر بدهیم و اگر اکنون می خواهیم آنها را بسازیم، در حین ساخت، گزینه هایی برای تعیین این موارد وجود دارد.پس از تعیین collation ، به صورتی که گفتیم، متن فارسی در خود پایگاه داده (یعنی در phpMyAdmin) به طور صحیح نمایش داده می شود و دیگر خبری از علامت های سوال نیست، اما چنانچه از طریق کدهای PHP صفحات سایت خود به پایگاه داده متصل شوید و اطلاعات را دریافت کرده و در صفحه نمایش دهید، ممکن است متن فارسی، به صورت علامت های سوال نمایش داده شود. برای رفع این مشکل، کدهای لازم برای اتصال به پایگاه داده را به صورت زیر بنویسید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#666666][I]// mysql اتصال به[/I][/COLOR]
[COLOR=#000088]$con[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]mysql_connect[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]'localhost'[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]'username'[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]'password'[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#666666][I]// کدهایی برای نمابش صحیح متن فارسی[/I][/COLOR]
[COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"SET character_set_results=utf8;"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"SET character_set_client=utf8;"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"SET character_set_connection=utf8;"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"SET character_set_database=utf8;"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]mysql_query[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"SET character_set_server=utf8;"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$con[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#666666][I]// بقیه کدهای کار با پایگاه داده[/I][/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
دقت کنید که در کدهای بالا، باید username و password را مطابق اطلاعات خودتان وارد کنید (تغییر بدهید).

همچنین مراقب باشید که به جای عبارت mysql ، اشتباها عبارت mysqli را به کار نبرید. شیوه کدنویسی این دو، کمی تفاوت دارد و ممکن است با پیام خطا روبرو شوید.

علاوه بر موارد بالا که تذکر داده شد، باید در میان دو تگ head صفحه، کد زیر نوشته شود :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]meta http[COLOR=#339933]-[/COLOR]equiv[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"Content-Type"[/COLOR] content[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"text/html; charset=utf-8"[/COLOR] [COLOR=#339933]/>[/COLOR][/FONT]
[/FONT][/COLOR]
یعنی باید ساختار کلی صفحه ای که در آن می خواهیم از پایگاه داده، اطلاعات دریافت کنیم، به صورت زیر باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<![/COLOR]DOCTYPE html [B]PUBLIC[/B] [COLOR=#0000FF]"-//W3C//DTD XHTML 1.0 Transitional//EN"[/COLOR][COLOR=#0000FF]"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"[/COLOR][COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]html xmlns[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"http://www.w3.org/1999/xhtml"[/COLOR][COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]head[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]meta http[COLOR=#339933]-[/COLOR]equiv[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"Content-Type"[/COLOR] content[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"text/html; charset=utf-8"[/COLOR] [COLOR=#339933]/>[/COLOR]
[COLOR=#339933]<[/COLOR]title[COLOR=#339933]>[/COLOR]Untitled Document[COLOR=#339933]</[/COLOR]title[COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]head[COLOR=#339933]>[/COLOR]

[COLOR=#339933]<[/COLOR]body[COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]body[COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]html[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
 

Similar threads

بالا