<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[باشگاه کاربران روماک - MySql]]></title>
		<link>https://forum.romaak.ir/</link>
		<description><![CDATA[باشگاه کاربران روماک - https://forum.romaak.ir]]></description>
		<pubDate>Thu, 04 Jun 2026 13:37:28 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[جعبه ابزار فتوشاپ برای طراحان وب سایت]]></title>
			<link>https://forum.romaak.ir/showthread.php?tid=6595</link>
			<pubDate>Fri, 12 Jul 2019 19:36:15 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.romaak.ir/member.php?action=profile&uid=1229">magbot</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.romaak.ir/showthread.php?tid=6595</guid>
			<description><![CDATA[<span style="color: #1e1e1e;" class="mycode_color"><span style="font-size: x-small;" class="mycode_size"><span style="font-size: xx-large;" class="mycode_size"><span style="font-size: xx-large;" class="mycode_size"><span style="font-family: samim;" class="mycode_font"><span style="color: #1e1e1e;" class="mycode_color"><span style="font-size: xx-large;" class="mycode_size">جعبه ابزار فتوشاپ برای طراحان وب</span></span></span></span></span><br />
<span style="font-size: medium;" class="mycode_size">دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
 <br />
<br />
<br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span></span><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #1e1e1e;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-family: samim;" class="mycode_font"><br />
اگر روزانه از Photoshop استفاده می کنید، لازم است که یک کتابخانه از عناصر و المان ها داشته باشید. داشتن جعبه ابزار پیش ساخته یا کتابخانه essential می تواند بسیار مفید باشد. داشتن جعبه ابزار مناسب می تواند اندازه یک نهنگ در زمان شما صرفه جویی کند و منابع متنوعی را به شما ارائه دهد. اگر شما یک طراح وب هستید، کتابخانه ابزار شما احتمالا از کتابخانه عکاسان متفاوت خواهد بود، اما مواردی وجود دارد که باید در هر جعبه ابزار کاربر فتوشاپ یافت شود.  شما می توانید ساعت های زیادی را صرف ساخت منابع خود کنید، ولی معمولا نیازی به انجام آن نیست. امروزه وب پر از منابع  از پیش ساخته با کیفیت بالا شده است. من اینجا منابع، سایت ها و ابزارهای مختلفی را جمع آوری کرده ام که می تواند بطور قابل توجهی باعث افزایش گردش کار شما شود، برخی از آنها را در دستور کار خود قرار دهید و پروژه های خود را به سادگی ارتقا دهید. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">1. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/0.jpg" loading="lazy"  alt="[تصویر:  0.jpg]" class="mycode_img" /> <br />
<br />
Brusheezy جایی است که فتوشاپ و سایر منابع مربوط به فتوشاپ را به اشتراک می گذارد.  شما می توانید خلاقیت هنرمندان دیگر از سراسر جهان را بررسی کنید و یا آن را مورد بحث قرار دهید،در Brusheezy هزاران منبع از هنرمندان را از سراسر جهان کشف کند. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">2. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
  <br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/1.jpg" loading="lazy"  alt="[تصویر:  1.jpg]" class="mycode_img" /> <br />
<br />
<br />
PS Brush  براش های فتوشاپ را ارایه می دهد. با به روزرسانی  هفتگی این سایت جایی است که باید مطمئن باشید  که برسهای جدید و  را  باید آنجا دنبال کنید. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">3. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
<br />
<br />
<br />
BrushLovers یکی از بزرگترین مجموعه های براش فتوشاپ منحصر به فرد و با کیفیت بالا در وب است. BrushLovers دارای صدها برس فتوشاپ اسن که برای استفاده شخصی و تجاری رایگان هستند. شما این مجموعه را در هر جای دیگر پیدا نمی کنید. <br />
<span style="color: #ff7864;" class="mycode_color"><span style="font-size: xx-large;" class="mycode_size">الگوهای رایگان</span></span><br />
<span style="font-size: xx-large;" class="mycode_size">1. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
<br />
<br />
<br />
COLOURlovers یک جامعه بین المللی از طراحان و هنرمندانی است که از سایت دیدن می کنند تا الهام، ایده ها و بازخورد برای پروژه های حرفه ای و شخصی خود دریافت کنند. در بخش الگو ColourLovers شما بیش از 1،410،989 الگو دارید که توسط کاربران برای استفاده در پروژه ها آپلود شده است. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">2. Squid Fingers</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/4.jpg" loading="lazy"  alt="[تصویر:  4.jpg]" class="mycode_img" /> <br />
<br />
<br />
در Squid Fingers شما می توانید بیش از 100 الگوهای خلاقانه را برای استفاده از پروژه های خود پیدا کنید. آنها  GIF هستند و برای استفاده رایگان هستند. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">3. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/5.jpg" loading="lazy"  alt="[تصویر:  5.jpg]" class="mycode_img" /> <br />
<br />
<br />
BgPatterns یک برنامه وب کوچک برای ساخت الگوهای پس زمینه با چند کلیک است. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">4. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
  <br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/6.jpg" loading="lazy"  alt="[تصویر:  6.jpg]" class="mycode_img" /> <br />
<br />
<br />
Labs Background دارای طیف گسترده ای در زمینه های فتوشاپ، الگوها، بافت ها و گرافیک هایی است که برای سفارشی سازی پروفایل توییتر، وبلاگ ها و وب سایت ها استفاده می شود. جستجو بر اساس رنگ، برچسب ها و سبک ها وجود دارد ب<br />
<br />
<span style="color: inherit;" class="mycode_color"><span style="font-size: x-large;" class="mycode_size"><span style="font-family: samim;" class="mycode_font">بافت های رایگان</span></span></span><br />
<br />
<br />
<span style="font-size: xx-large;" class="mycode_size">1. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/7.jpg" loading="lazy"  alt="[تصویر:  7.jpg]" class="mycode_img" /> <br />
<br />
CGTetries تلاش می کند که بهترین سایت بافت  باشد. با ارائه بافت با کیفیت خوب به شیوه ای سازمان یافته، CG Textures کار روزمره شما را ساده تر و لذت بخش تر می کند. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">2. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/8.jpg" loading="lazy"  alt="[تصویر:  8.jpg]" class="mycode_img" /> <br />
<br />
<br />
کینگ یک منبع برای بافت های آزاد است. در حال حاضر سایت دارای بیش از 300 بافت در 16 دسته است. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">3. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/9.jpg" loading="lazy"  alt="[تصویر:  9.jpg]" class="mycode_img" /> <br />
<br />
<br />
Lost and Taken بیش از سه سال پیش با یک هدف ایجاد شده بود: برای کمک به طراحان با ارایه بهترین بافت های موجود . تا به امروز، بافت های Lost و Taken ده ها میلیون بار مشاهده شده اند و به هزاران نفر از طراحان کمک کرده اند تا کمی ساده تر  نتایج زیبا تر به دست آورند. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">4. Mayang’s Free Textures</span><br />
  <br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/10.jpg" loading="lazy"  alt="[تصویر:  10.jpg]" class="mycode_img" /> <br />
<br />
<br />
کتابخانه بافت Mayang بیش از 3800  فایل رایگان برای دانلود با وضوح بالا دارد.  اینجا شما می توانید بسیاری از بافت های متفاوت را پیدا کنید که هرگز جای دیگری پیدا نخواهید کرد. <br />
  <br />
<span style="font-size: xx-large;" class="mycode_size">5. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/11.jpg" loading="lazy"  alt="[تصویر:  11.jpg]" class="mycode_img" /> <br />
<br />
<br />
 آرشیو برخی از بهترین بافت های رایگان را از سراسر وب،  برای استفاده در کار تجاری و شخصی بدون هیچ گونه نگرانی در مورد دادن اعتبار به منبع (بدون منبع). <br />
<br />
<span style="color: #ff7864;" class="mycode_color"><span style="font-size: xx-large;" class="mycode_size">عکسهای رایگان عکس</span></span><br />
<br />
<span style="font-size: xx-large;" class="mycode_size">دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/12.jpg%20alt%20=" loading="lazy"  alt="[تصویر:  12.jpg%20alt%20=]" class="mycode_img" /><br />
<br />
<span style="font-size: xx-large;" class="mycode_size">1. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/17.jpg" loading="lazy"  width="570" height="261" alt="[تصویر:  17.jpg]" class="mycode_img" /> <br />
<br />
Freeimages بهترین سایت رایگان در جهان است. در فوریه سال 2001  راه اندازی شد. ایده این بود که یک سایت ایجاد کنند که در آن افراد خلاق می توانند عکس های خود را برای الهام یا کار مبادله کنند. این سایت به جامعه عظیم که امروز می بینید تبدیل شده است - بیش از 2،500،000 کاربر ثبت نام شده و حدود 400،000 عکس آنلاین وجود دارد. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">2.دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/23.jpg" loading="lazy"  alt="[تصویر:  23.jpg]" class="mycode_img" /> <br />
<br />
<br />
Everystockphoto یک موتور جستجوی عکس مخصوص است. در حال حاضر میلیون ها عکس رایگان را از منابع مختلف جستجو و جستجو می کنند و آنها را در جستجوی یکپارچه ارائه می دهند. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">3.دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/24.jpg" loading="lazy"  alt="[تصویر:  24.jpg]" class="mycode_img" /> <br />
<br />
<br />
Morguefile سومین سایت بزرگ عکس رایگان است. Morguefile شامل عکس هایی است که توسط بسیاری از هنرمندان به صورت رایگان ارائه می شود تا از طریق بازدیدکنندگان سایت در پروژه های خلاقانه مورد استفاده قرار گیرد. هدف از این سایت ارائه مرجع تصویری رایگان برای تصویرگر، هنرمندان کتاب های کمیک، طراحان، معلمان و تمام فعالیت های خلاقانه باشد. <br />
<br />
<span style="color: #ff7864;" class="mycode_color"><span style="font-size: xx-large;" class="mycode_size">آیکون های رایگان</span></span><br />
<br />
<span style="color: #ff7864;" class="mycode_color"><span style="font-size: xx-large;" class="mycode_size">  دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span></span><br />
<br />
<br />
</span></span></span></div>]]></description>
			<content:encoded><![CDATA[<span style="color: #1e1e1e;" class="mycode_color"><span style="font-size: x-small;" class="mycode_size"><span style="font-size: xx-large;" class="mycode_size"><span style="font-size: xx-large;" class="mycode_size"><span style="font-family: samim;" class="mycode_font"><span style="color: #1e1e1e;" class="mycode_color"><span style="font-size: xx-large;" class="mycode_size">جعبه ابزار فتوشاپ برای طراحان وب</span></span></span></span></span><br />
<span style="font-size: medium;" class="mycode_size">دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
 <br />
<br />
<br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span></span><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #1e1e1e;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-family: samim;" class="mycode_font"><br />
اگر روزانه از Photoshop استفاده می کنید، لازم است که یک کتابخانه از عناصر و المان ها داشته باشید. داشتن جعبه ابزار پیش ساخته یا کتابخانه essential می تواند بسیار مفید باشد. داشتن جعبه ابزار مناسب می تواند اندازه یک نهنگ در زمان شما صرفه جویی کند و منابع متنوعی را به شما ارائه دهد. اگر شما یک طراح وب هستید، کتابخانه ابزار شما احتمالا از کتابخانه عکاسان متفاوت خواهد بود، اما مواردی وجود دارد که باید در هر جعبه ابزار کاربر فتوشاپ یافت شود.  شما می توانید ساعت های زیادی را صرف ساخت منابع خود کنید، ولی معمولا نیازی به انجام آن نیست. امروزه وب پر از منابع  از پیش ساخته با کیفیت بالا شده است. من اینجا منابع، سایت ها و ابزارهای مختلفی را جمع آوری کرده ام که می تواند بطور قابل توجهی باعث افزایش گردش کار شما شود، برخی از آنها را در دستور کار خود قرار دهید و پروژه های خود را به سادگی ارتقا دهید. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">1. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/0.jpg" loading="lazy"  alt="[تصویر:  0.jpg]" class="mycode_img" /> <br />
<br />
Brusheezy جایی است که فتوشاپ و سایر منابع مربوط به فتوشاپ را به اشتراک می گذارد.  شما می توانید خلاقیت هنرمندان دیگر از سراسر جهان را بررسی کنید و یا آن را مورد بحث قرار دهید،در Brusheezy هزاران منبع از هنرمندان را از سراسر جهان کشف کند. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">2. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
  <br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/1.jpg" loading="lazy"  alt="[تصویر:  1.jpg]" class="mycode_img" /> <br />
<br />
<br />
PS Brush  براش های فتوشاپ را ارایه می دهد. با به روزرسانی  هفتگی این سایت جایی است که باید مطمئن باشید  که برسهای جدید و  را  باید آنجا دنبال کنید. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">3. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
<br />
<br />
<br />
BrushLovers یکی از بزرگترین مجموعه های براش فتوشاپ منحصر به فرد و با کیفیت بالا در وب است. BrushLovers دارای صدها برس فتوشاپ اسن که برای استفاده شخصی و تجاری رایگان هستند. شما این مجموعه را در هر جای دیگر پیدا نمی کنید. <br />
<span style="color: #ff7864;" class="mycode_color"><span style="font-size: xx-large;" class="mycode_size">الگوهای رایگان</span></span><br />
<span style="font-size: xx-large;" class="mycode_size">1. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
<br />
<br />
<br />
COLOURlovers یک جامعه بین المللی از طراحان و هنرمندانی است که از سایت دیدن می کنند تا الهام، ایده ها و بازخورد برای پروژه های حرفه ای و شخصی خود دریافت کنند. در بخش الگو ColourLovers شما بیش از 1،410،989 الگو دارید که توسط کاربران برای استفاده در پروژه ها آپلود شده است. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">2. Squid Fingers</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/4.jpg" loading="lazy"  alt="[تصویر:  4.jpg]" class="mycode_img" /> <br />
<br />
<br />
در Squid Fingers شما می توانید بیش از 100 الگوهای خلاقانه را برای استفاده از پروژه های خود پیدا کنید. آنها  GIF هستند و برای استفاده رایگان هستند. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">3. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/5.jpg" loading="lazy"  alt="[تصویر:  5.jpg]" class="mycode_img" /> <br />
<br />
<br />
BgPatterns یک برنامه وب کوچک برای ساخت الگوهای پس زمینه با چند کلیک است. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">4. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
  <br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/6.jpg" loading="lazy"  alt="[تصویر:  6.jpg]" class="mycode_img" /> <br />
<br />
<br />
Labs Background دارای طیف گسترده ای در زمینه های فتوشاپ، الگوها، بافت ها و گرافیک هایی است که برای سفارشی سازی پروفایل توییتر، وبلاگ ها و وب سایت ها استفاده می شود. جستجو بر اساس رنگ، برچسب ها و سبک ها وجود دارد ب<br />
<br />
<span style="color: inherit;" class="mycode_color"><span style="font-size: x-large;" class="mycode_size"><span style="font-family: samim;" class="mycode_font">بافت های رایگان</span></span></span><br />
<br />
<br />
<span style="font-size: xx-large;" class="mycode_size">1. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/7.jpg" loading="lazy"  alt="[تصویر:  7.jpg]" class="mycode_img" /> <br />
<br />
CGTetries تلاش می کند که بهترین سایت بافت  باشد. با ارائه بافت با کیفیت خوب به شیوه ای سازمان یافته، CG Textures کار روزمره شما را ساده تر و لذت بخش تر می کند. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">2. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/8.jpg" loading="lazy"  alt="[تصویر:  8.jpg]" class="mycode_img" /> <br />
<br />
<br />
کینگ یک منبع برای بافت های آزاد است. در حال حاضر سایت دارای بیش از 300 بافت در 16 دسته است. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">3. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/9.jpg" loading="lazy"  alt="[تصویر:  9.jpg]" class="mycode_img" /> <br />
<br />
<br />
Lost and Taken بیش از سه سال پیش با یک هدف ایجاد شده بود: برای کمک به طراحان با ارایه بهترین بافت های موجود . تا به امروز، بافت های Lost و Taken ده ها میلیون بار مشاهده شده اند و به هزاران نفر از طراحان کمک کرده اند تا کمی ساده تر  نتایج زیبا تر به دست آورند. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">4. Mayang’s Free Textures</span><br />
  <br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/10.jpg" loading="lazy"  alt="[تصویر:  10.jpg]" class="mycode_img" /> <br />
<br />
<br />
کتابخانه بافت Mayang بیش از 3800  فایل رایگان برای دانلود با وضوح بالا دارد.  اینجا شما می توانید بسیاری از بافت های متفاوت را پیدا کنید که هرگز جای دیگری پیدا نخواهید کرد. <br />
  <br />
<span style="font-size: xx-large;" class="mycode_size">5. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/11.jpg" loading="lazy"  alt="[تصویر:  11.jpg]" class="mycode_img" /> <br />
<br />
<br />
 آرشیو برخی از بهترین بافت های رایگان را از سراسر وب،  برای استفاده در کار تجاری و شخصی بدون هیچ گونه نگرانی در مورد دادن اعتبار به منبع (بدون منبع). <br />
<br />
<span style="color: #ff7864;" class="mycode_color"><span style="font-size: xx-large;" class="mycode_size">عکسهای رایگان عکس</span></span><br />
<br />
<span style="font-size: xx-large;" class="mycode_size">دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/12.jpg%20alt%20=" loading="lazy"  alt="[تصویر:  12.jpg%20alt%20=]" class="mycode_img" /><br />
<br />
<span style="font-size: xx-large;" class="mycode_size">1. دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/17.jpg" loading="lazy"  width="570" height="261" alt="[تصویر:  17.jpg]" class="mycode_img" /> <br />
<br />
Freeimages بهترین سایت رایگان در جهان است. در فوریه سال 2001  راه اندازی شد. ایده این بود که یک سایت ایجاد کنند که در آن افراد خلاق می توانند عکس های خود را برای الهام یا کار مبادله کنند. این سایت به جامعه عظیم که امروز می بینید تبدیل شده است - بیش از 2،500،000 کاربر ثبت نام شده و حدود 400،000 عکس آنلاین وجود دارد. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">2.دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/23.jpg" loading="lazy"  alt="[تصویر:  23.jpg]" class="mycode_img" /> <br />
<br />
<br />
Everystockphoto یک موتور جستجوی عکس مخصوص است. در حال حاضر میلیون ها عکس رایگان را از منابع مختلف جستجو و جستجو می کنند و آنها را در جستجوی یکپارچه ارائه می دهند. <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">3.دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span><br />
<img src="http://magbot.ir/%d8%ac%d8%b9%d8%a8%d9%87-%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d9%81%d8%aa%d9%88%d8%b4%d8%a7%d9%be-%d8%a8%d8%b1%d8%a7%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%d8%a7%d9%86-%d9%88%d8%a8/24.jpg" loading="lazy"  alt="[تصویر:  24.jpg]" class="mycode_img" /> <br />
<br />
<br />
Morguefile سومین سایت بزرگ عکس رایگان است. Morguefile شامل عکس هایی است که توسط بسیاری از هنرمندان به صورت رایگان ارائه می شود تا از طریق بازدیدکنندگان سایت در پروژه های خلاقانه مورد استفاده قرار گیرد. هدف از این سایت ارائه مرجع تصویری رایگان برای تصویرگر، هنرمندان کتاب های کمیک، طراحان، معلمان و تمام فعالیت های خلاقانه باشد. <br />
<br />
<span style="color: #ff7864;" class="mycode_color"><span style="font-size: xx-large;" class="mycode_size">آیکون های رایگان</span></span><br />
<br />
<span style="color: #ff7864;" class="mycode_color"><span style="font-size: xx-large;" class="mycode_size">  دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
</span></span><br />
<br />
<br />
</span></span></span></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[آموزش کار با پایگاه داده MySQL در PHP:]]></title>
			<link>https://forum.romaak.ir/showthread.php?tid=6243</link>
			<pubDate>Tue, 15 Jan 2019 08:03:52 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.romaak.ir/member.php?action=profile&uid=1137">othersnn</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.romaak.ir/showthread.php?tid=6243</guid>
			<description><![CDATA[با استفاده از زبان PHP ، می توانید به یک پایگاه داده متصل شده و اطلاعات را ذخیره و ویرایش کنید.<br />
پایگاه داده MySQL محبوب ترین پایگاه داده ای است که در سیستم برنامه نویسی PHP استفاده می شود.<br />
پایگاه داده MySQL چیست؟<br />
<br />
    پایگاه داده MySQL یک سیستم پایگاه داده است که بر روی وب استفاده می شود.<br />
    MySQL یک سیستم پایگاه داده می باشد که بر روی سرور اجرا می شود.<br />
    MySQL یک database ایده آل برای پروژه های کوچک و بزرگ است.<br />
    پایگاه MySQL بسیار سریع، قابل انعطاف و ساده برای کارکردن است.<br />
    پایگاه داده MySQL از زبان استاندارد SQL برای کدنویسی استفاده می کند.<br />
    پایگاه داده SQL را می توان بر روی طیف وسیعی از پلتفرم ها اجرا نمود.<br />
    پایگاه داده SQL یک database این سورس بوده و دانلود و استفاده از آن رایگان می باشد.<br />
    پایگاه داده MySQL توسط شرکت اورالک طراحی، توزیع و پشتیبانی می شود.<br />
<br />
اطلاعات پایگاه داده MySQL درون جدول (Table) ذخیره می شود. یک جدول یا Table مجموعه ای از داده های مرتبط به هم می باشد که از تعدادی سطر (row) و ستون (column) تشکیل شده است.<br />
معمولا پایگاه داده ها (Database) برای نگهداری اطلاعات دسته بندی شده مناسب هستند. برای مثال یک شرکت ممکن است شامل یک پایگاه داده با جدول های مثل لیست زیر باشد:<br />
<br />
    Employees<br />
    Products<br />
    Customers<br />
    Order<br />
<br />
سیستم کارکرد پایگاه داده MySQL با PHP :<br />
<br />
کارکرد سیستم PHP و پایگاه داده MySQL به صورت cross-platform است، به این معنی که PHP را می توان بر روی یک سرور مثل ویندوز اجرا کرد، در حالی که پایگاه داده MySQL بر روی یک سرور با سیستم عامل دیگری مثل Unix قرار داشته باشد. به عبارت دیگر می توان سرور PHP و MySQL را با سیستم عامل های متفاوتی اجرا کرده و مشکلی رخ نمی دهد.<br />
آموزش جستجو در پایگاه داده یا Database Query :<br />
<br />
به بیان ساده یک Query در پایگاه داده، یک سوال یا جستجو یا درخواست (request) می باشد. شما می توانید یک database را برای یافتن اطلاعات خاصی جستجو کرده (با استفاده از یک Query) و سپس نتایج را در یک یا چند رکورد دریافت نمایید.<br />
به Query زیر که با زبان استاندارد SQL نوشته شده است، دقت کنید :<br />
?<br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
<br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
<br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
<br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
<br />
    <br />
SELECT LastName FROM Employees<br />
<br />
Query فوق کلیه اطلاعات درون ستون “LastName” پایگاه داده “Employees” را انتخاب می کند. برای یادگیری زبان SQL، به بخش آموزش پایگاه داده SQL در سایت تحلیل داده بروید.<br />
آموزش نحوه دانلود پایگاه داده MySQL :<br />
<br />
اگر دارای یک سرور PHP هستید که پایگاه داده MySQL بر روی آن نصب نشده است، می توانید سورس این پایگاه داده را از آدرس دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
 دانلود و نصب نماید.<br />
واقعیت هایی درباره پایگاه داده MySQL :<br />
<br />
پایگاه داده MySQL، database بالفعل و در حال استفاده برای سیستم های عظیم با حجم اطلاعات گسترده و تعداد کاربران زیاد مثل سایت های Facebook، twitter و یا ویکی پدیا است.<br />
از طرف دیگر، پایگاه داده MySQL را می توان برای اجرای پایگاه داده های سبک و کم حجم نیز استفاده کرد.]]></description>
			<content:encoded><![CDATA[با استفاده از زبان PHP ، می توانید به یک پایگاه داده متصل شده و اطلاعات را ذخیره و ویرایش کنید.<br />
پایگاه داده MySQL محبوب ترین پایگاه داده ای است که در سیستم برنامه نویسی PHP استفاده می شود.<br />
پایگاه داده MySQL چیست؟<br />
<br />
    پایگاه داده MySQL یک سیستم پایگاه داده است که بر روی وب استفاده می شود.<br />
    MySQL یک سیستم پایگاه داده می باشد که بر روی سرور اجرا می شود.<br />
    MySQL یک database ایده آل برای پروژه های کوچک و بزرگ است.<br />
    پایگاه MySQL بسیار سریع، قابل انعطاف و ساده برای کارکردن است.<br />
    پایگاه داده MySQL از زبان استاندارد SQL برای کدنویسی استفاده می کند.<br />
    پایگاه داده SQL را می توان بر روی طیف وسیعی از پلتفرم ها اجرا نمود.<br />
    پایگاه داده SQL یک database این سورس بوده و دانلود و استفاده از آن رایگان می باشد.<br />
    پایگاه داده MySQL توسط شرکت اورالک طراحی، توزیع و پشتیبانی می شود.<br />
<br />
اطلاعات پایگاه داده MySQL درون جدول (Table) ذخیره می شود. یک جدول یا Table مجموعه ای از داده های مرتبط به هم می باشد که از تعدادی سطر (row) و ستون (column) تشکیل شده است.<br />
معمولا پایگاه داده ها (Database) برای نگهداری اطلاعات دسته بندی شده مناسب هستند. برای مثال یک شرکت ممکن است شامل یک پایگاه داده با جدول های مثل لیست زیر باشد:<br />
<br />
    Employees<br />
    Products<br />
    Customers<br />
    Order<br />
<br />
سیستم کارکرد پایگاه داده MySQL با PHP :<br />
<br />
کارکرد سیستم PHP و پایگاه داده MySQL به صورت cross-platform است، به این معنی که PHP را می توان بر روی یک سرور مثل ویندوز اجرا کرد، در حالی که پایگاه داده MySQL بر روی یک سرور با سیستم عامل دیگری مثل Unix قرار داشته باشد. به عبارت دیگر می توان سرور PHP و MySQL را با سیستم عامل های متفاوتی اجرا کرده و مشکلی رخ نمی دهد.<br />
آموزش جستجو در پایگاه داده یا Database Query :<br />
<br />
به بیان ساده یک Query در پایگاه داده، یک سوال یا جستجو یا درخواست (request) می باشد. شما می توانید یک database را برای یافتن اطلاعات خاصی جستجو کرده (با استفاده از یک Query) و سپس نتایج را در یک یا چند رکورد دریافت نمایید.<br />
به Query زیر که با زبان استاندارد SQL نوشته شده است، دقت کنید :<br />
?<br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
<br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
<br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
<br />
دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
<br />
    <br />
SELECT LastName FROM Employees<br />
<br />
Query فوق کلیه اطلاعات درون ستون “LastName” پایگاه داده “Employees” را انتخاب می کند. برای یادگیری زبان SQL، به بخش آموزش پایگاه داده SQL در سایت تحلیل داده بروید.<br />
آموزش نحوه دانلود پایگاه داده MySQL :<br />
<br />
اگر دارای یک سرور PHP هستید که پایگاه داده MySQL بر روی آن نصب نشده است، می توانید سورس این پایگاه داده را از آدرس دیدن لینک ها برای شما امکان پذیر نیست. لطفا <a href="https://forum.romaak.ir/member.php?action=register">ثبت نام کنید</a> یا <a href="https://forum.romaak.ir/member.php?action=login">وارد حساب خود شوید</a> تا بتوانید لینک ها را ببینید.<br />
 دانلود و نصب نماید.<br />
واقعیت هایی درباره پایگاه داده MySQL :<br />
<br />
پایگاه داده MySQL، database بالفعل و در حال استفاده برای سیستم های عظیم با حجم اطلاعات گسترده و تعداد کاربران زیاد مثل سایت های Facebook، twitter و یا ویکی پدیا است.<br />
از طرف دیگر، پایگاه داده MySQL را می توان برای اجرای پایگاه داده های سبک و کم حجم نیز استفاده کرد.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[استفاده از JOIN و ساخت پرس و جوی ترکیبی در MySQL]]></title>
			<link>https://forum.romaak.ir/showthread.php?tid=411</link>
			<pubDate>Mon, 14 Sep 2015 15:44:59 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.romaak.ir/member.php?action=profile&uid=1">saberi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.romaak.ir/showthread.php?tid=411</guid>
			<description><![CDATA[<div style="text-align: justify;" class="mycode_align">مطالبی که تا این لحظه از بخش آموزش مقدماتی MySQL فرا گرفته ایم معمولا برای حالت های متداول و کار با جداول به صورت مجزا کافی خواهند بود، اما در برنامه نویسی های پیشرفته تر و در طراحی ساختار برنامه های پیچیده نیاز به نوشتن پرس و جوهای ترکیبی و برقراری تعامل بیشتر بین جداول موجود در دیتابیس است، این نیاز سبب شده که قابلیت دیگری تحت عنوان JOIN (و مشتقات آن) به دستورات MySQL اضافه شود که به کمک آن می توان پرس و جوهای ترکیبی نوشت و بین جداول مختلف ارتباط برقرار کرد، در ادامه راجب آن بیشتر خواهیم گفت.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ساخت جداول فرضی با دستور CREATE</span><br />
<br />
برای درک بهتر نحوه عملکرد دستور JOIN پیش از هر چیز لازم است که چند جدول و ستون فرضی با مقادیری از پیش تعریف شده بسازیم که در زیر پرس و جوی آن را ملاحظه می کنید.<br />
نکته: پیش از اجرای کدهای زیر باید از طریق برنامه phpMyAdmin دیتابیسی با نام فرضی test بسازید، دقت کنید که Collation دیتابیس بر روی utf8_persian_ci تنظیم شده باشد.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">پرس و جوی بالا دو جدول با مقادیری از پیش تعریف شده ایجاد می کند، در جدول نخست لیست کاربران به همراه مهارت برنامه نویسی آنها به صورت زیر قرار دارد.<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
در جدول دوم عنوان هر زبان برنامه نویسی و به فرض تعداد برنامه نویس موجود و مسلط به آن زبان درج شده.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
<div style="text-align: justify;" class="mycode_align">همان طور که ملاحظه می کنید بین دو جدول در ستون های skill و language ارتباطی متقابل وجود دارد (هر دو ستون عناوین مربوط به زبان های برنامه نویسی را در خود دارند)، بنابراین به فرض اگر بخواهیم مسابقه ای بین افراد هم مهارت برگزار کنیم و نیاز به محاسبه تعداد رقبای اسامی موجود در جدول اول باشد، به ناچار باید در پرس و جوی خود هم از اصلاعات جدول اول (اسامی و مهارت آنها) و هم از اطلاعات جدول دوم (مهارت و تعداد شرکت کننده) استفاده کنیم، هرچند این کار با نوشتن دو پرس و جو نیز امکانپذیر است، اما حرفه ای تر آن است که به کمک JOIN و مشتقات آن (INNER JOIN، LEFT JOIN، RIGHT JOIN، OUTER JOIN) یک پرس و جوی ترکیبی نوشته و به هدف خود برسیم، بدین ترتیب می توان نوشت:</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
که خروجی دستور بالا به صورت نمونه زیر خواهد بود.<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
<div style="text-align: justify;" class="mycode_align">نکته: برای تعریف شرط در هنگام استفاده از دستور JOIN (و مشتقات آن)، از عبارت ON استفاده می شود.<br />
برای آشنایی بیشتر با JOIN و مشتقات آن، در ادامه به صورت موردی این دستور را بررسی می کنیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">حالت INNER JOIN</span><br />
<br />
حالت اول از مشتقات دستور JOIN به صورت INNER JOIN می باشد، در این حالت می توان به مواردی مشترک از هر دو جدول دسترسی داشت، نتیجه پرس و جو شامل برخی موارد از جدول اول به همراه برخی موارد دیگر از جدول دوم (بر اساس شرط تعیین شده) خواهد بود، مثال:</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">خروجی این حالت به صورت زیر خواهد بود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">ملاحظه می کنید که با اجرای پرس و جوی بالا ردیف های زیر از جدول اول:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">و ردیف های زیر از جدول دوم به عنوان خروجی برگردانده می شوند:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">حالت LEFT JOIN</span><br />
<br />
نوع دیگر از مشتقات دستور JOIN به صورت LEFT JOIN است که در این حالت تمام ردیف های جدول اول صرف نظر از شرط تعیین شده به همراه ردیف های جدول دوم (بر اساس شرط تعیین شده) به عنوان خروجی برگردانده می شوند، مثال:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">خروجی پرس و جوی بالا به صورت زیر خواهد بود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">نکته: ردیف هایی که در جدول دوم بر اساس شرط تعریف شده انتخاب نشوند، با مقدار NULL برگردانده می شوند.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">حالت RIGHT JOIN</span><br />
<br />
مشابه حالت LEFT JOIN، حالت RIGHT JOIN است که در این صورت ردیف ها از جدول دوم صرف نظر از شرط تعیین شده انتخاب و ردیف های جدول اول بر اساس شرط انتخاب می شوند، مثال:</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
خروجی پرس و جوی بالا به صورت زیر خواهد بود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
<span style="font-weight: bold;" class="mycode_b">حالت OUTER JOIN</span><br />
<br />
حالت آخر از مشتقات JOIN به صورت OUTER JOIN یا FULL JOIN است که در این صورت می توان دو پرس و جوی مبتنی بر JOIN را با عبارت کلیدی UNION (اجتماع) به هم مرتبط نمود، مثال:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">نتیجه پرس و جوی بالا به صورت زیر خواهد بود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;" class="mycode_align">مطالبی که تا این لحظه از بخش آموزش مقدماتی MySQL فرا گرفته ایم معمولا برای حالت های متداول و کار با جداول به صورت مجزا کافی خواهند بود، اما در برنامه نویسی های پیشرفته تر و در طراحی ساختار برنامه های پیچیده نیاز به نوشتن پرس و جوهای ترکیبی و برقراری تعامل بیشتر بین جداول موجود در دیتابیس است، این نیاز سبب شده که قابلیت دیگری تحت عنوان JOIN (و مشتقات آن) به دستورات MySQL اضافه شود که به کمک آن می توان پرس و جوهای ترکیبی نوشت و بین جداول مختلف ارتباط برقرار کرد، در ادامه راجب آن بیشتر خواهیم گفت.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ساخت جداول فرضی با دستور CREATE</span><br />
<br />
برای درک بهتر نحوه عملکرد دستور JOIN پیش از هر چیز لازم است که چند جدول و ستون فرضی با مقادیری از پیش تعریف شده بسازیم که در زیر پرس و جوی آن را ملاحظه می کنید.<br />
نکته: پیش از اجرای کدهای زیر باید از طریق برنامه phpMyAdmin دیتابیسی با نام فرضی test بسازید، دقت کنید که Collation دیتابیس بر روی utf8_persian_ci تنظیم شده باشد.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">پرس و جوی بالا دو جدول با مقادیری از پیش تعریف شده ایجاد می کند، در جدول نخست لیست کاربران به همراه مهارت برنامه نویسی آنها به صورت زیر قرار دارد.<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
در جدول دوم عنوان هر زبان برنامه نویسی و به فرض تعداد برنامه نویس موجود و مسلط به آن زبان درج شده.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
<div style="text-align: justify;" class="mycode_align">همان طور که ملاحظه می کنید بین دو جدول در ستون های skill و language ارتباطی متقابل وجود دارد (هر دو ستون عناوین مربوط به زبان های برنامه نویسی را در خود دارند)، بنابراین به فرض اگر بخواهیم مسابقه ای بین افراد هم مهارت برگزار کنیم و نیاز به محاسبه تعداد رقبای اسامی موجود در جدول اول باشد، به ناچار باید در پرس و جوی خود هم از اصلاعات جدول اول (اسامی و مهارت آنها) و هم از اطلاعات جدول دوم (مهارت و تعداد شرکت کننده) استفاده کنیم، هرچند این کار با نوشتن دو پرس و جو نیز امکانپذیر است، اما حرفه ای تر آن است که به کمک JOIN و مشتقات آن (INNER JOIN، LEFT JOIN، RIGHT JOIN، OUTER JOIN) یک پرس و جوی ترکیبی نوشته و به هدف خود برسیم، بدین ترتیب می توان نوشت:</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
که خروجی دستور بالا به صورت نمونه زیر خواهد بود.<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
<div style="text-align: justify;" class="mycode_align">نکته: برای تعریف شرط در هنگام استفاده از دستور JOIN (و مشتقات آن)، از عبارت ON استفاده می شود.<br />
برای آشنایی بیشتر با JOIN و مشتقات آن، در ادامه به صورت موردی این دستور را بررسی می کنیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">حالت INNER JOIN</span><br />
<br />
حالت اول از مشتقات دستور JOIN به صورت INNER JOIN می باشد، در این حالت می توان به مواردی مشترک از هر دو جدول دسترسی داشت، نتیجه پرس و جو شامل برخی موارد از جدول اول به همراه برخی موارد دیگر از جدول دوم (بر اساس شرط تعیین شده) خواهد بود، مثال:</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">خروجی این حالت به صورت زیر خواهد بود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">ملاحظه می کنید که با اجرای پرس و جوی بالا ردیف های زیر از جدول اول:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">و ردیف های زیر از جدول دوم به عنوان خروجی برگردانده می شوند:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">حالت LEFT JOIN</span><br />
<br />
نوع دیگر از مشتقات دستور JOIN به صورت LEFT JOIN است که در این حالت تمام ردیف های جدول اول صرف نظر از شرط تعیین شده به همراه ردیف های جدول دوم (بر اساس شرط تعیین شده) به عنوان خروجی برگردانده می شوند، مثال:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">خروجی پرس و جوی بالا به صورت زیر خواهد بود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">نکته: ردیف هایی که در جدول دوم بر اساس شرط تعریف شده انتخاب نشوند، با مقدار NULL برگردانده می شوند.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">حالت RIGHT JOIN</span><br />
<br />
مشابه حالت LEFT JOIN، حالت RIGHT JOIN است که در این صورت ردیف ها از جدول دوم صرف نظر از شرط تعیین شده انتخاب و ردیف های جدول اول بر اساس شرط انتخاب می شوند، مثال:</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
خروجی پرس و جوی بالا به صورت زیر خواهد بود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
<span style="font-weight: bold;" class="mycode_b">حالت OUTER JOIN</span><br />
<br />
حالت آخر از مشتقات JOIN به صورت OUTER JOIN یا FULL JOIN است که در این صورت می توان دو پرس و جوی مبتنی بر JOIN را با عبارت کلیدی UNION (اجتماع) به هم مرتبط نمود، مثال:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">نتیجه پرس و جوی بالا به صورت زیر خواهد بود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[حذف مقادیر از MySQL با دستور DELETE]]></title>
			<link>https://forum.romaak.ir/showthread.php?tid=410</link>
			<pubDate>Mon, 14 Sep 2015 15:29:08 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.romaak.ir/member.php?action=profile&uid=1">saberi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.romaak.ir/showthread.php?tid=410</guid>
			<description><![CDATA[<div style="text-align: justify;" class="mycode_align">مدیریت اطلاعات پایگاه داده به ذخیره (INSERT)، انتخاب (SELECT) و به روزرسانی (UPDATE) ختم نمی شود، دیر یا زود و به دلایل مختلف، سیستم ما نیاز خواهد داشت که مواردی را از دیتابیس حذف نماید، از این رو یکی دیگر از پرس و جوهای (query های) MySQL، دستور حذف ردیف ها با استفاده از DELETE است که در ادامه با آن آشنا خواهیم شد، آشنایی دقیق با این دستور از این لحاظ حائز اهمیت است که اگر در تعیین پارامترهای آن اشتباهی انجام دهیم، ممکن است موجب حذف مواردی ناخواسته شویم.<br />
<span style="font-weight: bold;" class="mycode_b"><br />
شیوه نگارش (syntax) دستور DELETE</span><br />
<br />
نحوه استفاده از دستور DELETE در MySQL شباهت زیادی با سایر دستوراتی که تا این لحظه بررسی کرده ایم (مانند SELECT، UPDATE و...) دارد و البته رعایت نکات خاص آن نیز ضروری است، به مثال زیر توجه کنید.</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
با این دستور ساده، ردیف یا ردیف هایی در دیتابیس که مقادیر ستون id آنها برابر عدد 1 باشد حذف خواهند شد، ملاحظه می کنید که اگر به فرض پارامتر WHERE استفاده نشود یا اینکه به اشتباه تعیین گردد، موجب حذف موارد ناخواسته خواهد شد، لذا در استفاده از دستور DELETE باید دقت نمود و قبل از هر چیز از اطلاعات حساس دیتابیس پشتیبان تهیه کرده و دستورات را نیز قبل از استفاده نهایی، حتی الامکان تست کرد.<br />
یک مثال کاربردی با دستور DELETE<br />
<br />
برای آشنایی بیشتر با دستور DELETE، یک مثال کاربردی را با هم مرور می کنیم، فرض کنید در دیتابیس خود در جدول users اسامی و مشخصات کاربران را در ستون های id، name، pass، age و... ذخیره کرده ایم، حال می خواهیم کاربرانی که نام آنها با حرف ب فارسی یا B لاتین شروع می شود را حذف کنیم، بدین منظور خواهیم نوشت:</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
توضیح:<br />
- همان طور که ملاحظه می کنید، در دستور DELETE می توانیم از WHERE و پارامترهای وابسته به آن مانند OR ، AND ، LIKE و... استفاده کنیم.<br />
- هنگامی که در کنار دستور DELETE از WHERE و LIKE استفاده می کنیم، باید دقت کنیم که علامت % در ابتدا، انتها یا در هر دو سمت پارامتر، نقشی تعیین کننده در نحوه تفسیر دستورمان خواهد داشت که البته در این مورد در مباحث قبلی صحبت کرده ایم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">حذف مقادیر چندگانه با دستور DELETE</span><br />
<br />
در پایان این آموزش بد نیست یک مثال پیشرفته تر را نیز با هم بررسی کنیم، حتما تا به حال صفحات و سایت هایی را دیده اید که با انتخاب چند مورد، می توان تمام آنها را در یک بار و هم زمان حذف نمود، برای این کار ابتدا یک فرم HTML در نظر می گیریم که مقادیر را به صورت آرایه ارسال کند.</div>
<div style="text-align: justify;" class="mycode_align">
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
نکته: علامت [] در قسمت نام فیلدها باعث می شود موارد به صورت یک آرایه به سرور ارسال شوند.<br />
<br />
سپس در سرور از حلقه های for یا foreach می توانیم استفاده کنیم، به مثال زیر توجه کنید.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">توضیح:<br />
- برای دریافت متغیر ارسال شده از طرف فرم HTML کافی است از روش های معمول (متد GET یا POST) استفاده کنید.<br />
- اکنون اگر از متغیر delete_array با دستور print_r خروجی بگیرید، کلیدها و مقادیر آرایه به صورت زیر خواهد بود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
به این ترتیب می توان در یک دستور foreach از کلید و مقدار آرایه ارسال شده در query مربوط به DELETE استفاده کرد.</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;" class="mycode_align">مدیریت اطلاعات پایگاه داده به ذخیره (INSERT)، انتخاب (SELECT) و به روزرسانی (UPDATE) ختم نمی شود، دیر یا زود و به دلایل مختلف، سیستم ما نیاز خواهد داشت که مواردی را از دیتابیس حذف نماید، از این رو یکی دیگر از پرس و جوهای (query های) MySQL، دستور حذف ردیف ها با استفاده از DELETE است که در ادامه با آن آشنا خواهیم شد، آشنایی دقیق با این دستور از این لحاظ حائز اهمیت است که اگر در تعیین پارامترهای آن اشتباهی انجام دهیم، ممکن است موجب حذف مواردی ناخواسته شویم.<br />
<span style="font-weight: bold;" class="mycode_b"><br />
شیوه نگارش (syntax) دستور DELETE</span><br />
<br />
نحوه استفاده از دستور DELETE در MySQL شباهت زیادی با سایر دستوراتی که تا این لحظه بررسی کرده ایم (مانند SELECT، UPDATE و...) دارد و البته رعایت نکات خاص آن نیز ضروری است، به مثال زیر توجه کنید.</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
با این دستور ساده، ردیف یا ردیف هایی در دیتابیس که مقادیر ستون id آنها برابر عدد 1 باشد حذف خواهند شد، ملاحظه می کنید که اگر به فرض پارامتر WHERE استفاده نشود یا اینکه به اشتباه تعیین گردد، موجب حذف موارد ناخواسته خواهد شد، لذا در استفاده از دستور DELETE باید دقت نمود و قبل از هر چیز از اطلاعات حساس دیتابیس پشتیبان تهیه کرده و دستورات را نیز قبل از استفاده نهایی، حتی الامکان تست کرد.<br />
یک مثال کاربردی با دستور DELETE<br />
<br />
برای آشنایی بیشتر با دستور DELETE، یک مثال کاربردی را با هم مرور می کنیم، فرض کنید در دیتابیس خود در جدول users اسامی و مشخصات کاربران را در ستون های id، name، pass، age و... ذخیره کرده ایم، حال می خواهیم کاربرانی که نام آنها با حرف ب فارسی یا B لاتین شروع می شود را حذف کنیم، بدین منظور خواهیم نوشت:</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
توضیح:<br />
- همان طور که ملاحظه می کنید، در دستور DELETE می توانیم از WHERE و پارامترهای وابسته به آن مانند OR ، AND ، LIKE و... استفاده کنیم.<br />
- هنگامی که در کنار دستور DELETE از WHERE و LIKE استفاده می کنیم، باید دقت کنیم که علامت % در ابتدا، انتها یا در هر دو سمت پارامتر، نقشی تعیین کننده در نحوه تفسیر دستورمان خواهد داشت که البته در این مورد در مباحث قبلی صحبت کرده ایم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">حذف مقادیر چندگانه با دستور DELETE</span><br />
<br />
در پایان این آموزش بد نیست یک مثال پیشرفته تر را نیز با هم بررسی کنیم، حتما تا به حال صفحات و سایت هایی را دیده اید که با انتخاب چند مورد، می توان تمام آنها را در یک بار و هم زمان حذف نمود، برای این کار ابتدا یک فرم HTML در نظر می گیریم که مقادیر را به صورت آرایه ارسال کند.</div>
<div style="text-align: justify;" class="mycode_align">
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
نکته: علامت [] در قسمت نام فیلدها باعث می شود موارد به صورت یک آرایه به سرور ارسال شوند.<br />
<br />
سپس در سرور از حلقه های for یا foreach می توانیم استفاده کنیم، به مثال زیر توجه کنید.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">توضیح:<br />
- برای دریافت متغیر ارسال شده از طرف فرم HTML کافی است از روش های معمول (متد GET یا POST) استفاده کنید.<br />
- اکنون اگر از متغیر delete_array با دستور print_r خروجی بگیرید، کلیدها و مقادیر آرایه به صورت زیر خواهد بود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
به این ترتیب می توان در یک دستور foreach از کلید و مقدار آرایه ارسال شده در query مربوط به DELETE استفاده کرد.</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[به روز رسانی ردیف ها در MySQL با UPDATE]]></title>
			<link>https://forum.romaak.ir/showthread.php?tid=409</link>
			<pubDate>Mon, 14 Sep 2015 15:23:53 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.romaak.ir/member.php?action=profile&uid=1">saberi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.romaak.ir/showthread.php?tid=409</guid>
			<description><![CDATA[<div style="text-align: justify;" class="mycode_align">یکی دیگر از دستورات مربوط به مدیریت اطلاعات در MySQL، دستور UPDATE است که پس از INSERT INTO و SELECT FROM می تواند بیشترین کاربرد را داشته باشد، فلسفه پیدایش و تعریف این دستور نیز به این جهت است که بتوانیم بدون حذف ردیف های موجود، اطلاعات آنها را به روز کنیم، به طور مثال فرض کنید اسامی افرادی را در یک جدول به همراه شماره تلفن آنها ذخیره کرده ایم و اکنون می خواهیم بدون اینکه ردیف مورد نظر حذف شود، تنها شماره تماس فرد را تغییر دهیم، یعنی اطلاعات قبلی مربوط به شماره تماس را حذف و اطلاعات جدید را جایگزین آن کنیم، در این گونه موارد است که دستور UPDATE کاربرد دارد، در ادامه به صورت جزئی تری با این دستور آشنا خواهیم شد.</div>
<div style="text-align: justify;" class="mycode_align">
<span style="font-weight: bold;" class="mycode_b">شیوه نگارش (syntax) دستور UPDATE</span><br />
<br />
شیوه نگارش (syntax) و نحوه استفاده از دستور UPDATE در MySQL بسیار ساده و کاربردی است، در واقع مانند سایر دستورهای مربوط به پایگاه داده، از جمله INSERT INTO و SELECT FROM، دستور UPDATE نیز از عناصر تعریف شده و خاص خود پیروی می کند که عبارتند از SET،UPDATE و WHERE، عنصر UPDATE بخش کلیدی پرس و جو، SET عملیات مورد نظر و WHERE ردیف هایی است که تحت تاثیر قرار می گیرند، به مثال زیر توجه کنید.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">در مثال بالا، از جدول فرضی tb_name، ستون های tel_column و age_column را به روز رسانی کردیم در جایی که ردیف یا ردیف های ستون user_column برابر مقدار فرضی ali باشد، به این ترتیب اطلاعات قبلی ذخیره شده در ردیف ها حذف و با مقادیر جدید به روز رسانی می گردند، بدون اینکه خود آن ردیف ها حذف شوند.<br />
نکته: برای به روز رسانی چندین ستون با یک دستور UPDATE و جداسازی آنها، از علامت , به صورتی که در مثال آمده است استفاده کنید.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">یک مثال کاربردی با دستور UPDATE</span><br />
<br />
برای آشنایی بیشتر با کاربرد دستور UPDATE در MySQL، این قسمت از آموزش را با یک مثال کاربردی به پایان می بریم؛ فرض کنید اسامی کاربران سایت خود را در جدولی به نام users ذخیره کرده ایم که این جدول دارای چند ستون با نام های username، password، status و ... است، حال می خواهیم این امکان را به کاربران بدهیم تا بتوانند کلمه عبور خود را تغییر دهند، در چنین شرایطی می توان با استفاده از دستور UPDATE این کار را به راحتی انجام داد که در زیر یک نمونه از آن را ملاحظه می کنید.</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
توضیح:<br />
- دقت کنید، دستورات MySQL در اکثر مواقع، قبل از هر چیز باید توسط کدهای php کنترل شده و با هدف مشخصی استفاده گردند، به این معنی که هیچ زبان برنامه نویسی خود به خود نباید کاری انجام دهد بلکه تنها باید به عنوان یک ابزار در اختیار برنامه نویس باشد تا منظور او را به مفسر سیستم تفهیم کند، از این رو باید بدانید که کی و کجا از چه دستوری می توانید استفاده کنید، البته این موضوع تا حدود زیادی به تمرین و تجربه نیز بستگی دارد.<br />
- پرس و جوی فرضی بالا اطلاعات کلمه عبور یک کاربر را به روز رسانی می کند، همان طور که ملاحظه می کنید از WHERE و AND برای اطمینان و محدودسازی ردیف های مورد نظرمان استفاده کرده ایم، همچنین از متغیرهایی برای مقادیر در دستور استفاده شده است که می توانند به فرض از یک فرم HTML و با متد POST دریافت شده باشند.<br />
- همان طور که گفتیم، قبل از اجرای پرس و جوهای مربوط به دیتابیس، می توانید عملیات کاربر را با برنامه نویسی php کنترل و مدیریت کنید، به فرض از اعتبار سنجی با if و else یا isset استفاده کرده و سپس اجازه اجرای پرس و جو را بدهید، یا از دیگر قابلیت های php با توجه به هدف و برنامه خود استفاده کنید.</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;" class="mycode_align">یکی دیگر از دستورات مربوط به مدیریت اطلاعات در MySQL، دستور UPDATE است که پس از INSERT INTO و SELECT FROM می تواند بیشترین کاربرد را داشته باشد، فلسفه پیدایش و تعریف این دستور نیز به این جهت است که بتوانیم بدون حذف ردیف های موجود، اطلاعات آنها را به روز کنیم، به طور مثال فرض کنید اسامی افرادی را در یک جدول به همراه شماره تلفن آنها ذخیره کرده ایم و اکنون می خواهیم بدون اینکه ردیف مورد نظر حذف شود، تنها شماره تماس فرد را تغییر دهیم، یعنی اطلاعات قبلی مربوط به شماره تماس را حذف و اطلاعات جدید را جایگزین آن کنیم، در این گونه موارد است که دستور UPDATE کاربرد دارد، در ادامه به صورت جزئی تری با این دستور آشنا خواهیم شد.</div>
<div style="text-align: justify;" class="mycode_align">
<span style="font-weight: bold;" class="mycode_b">شیوه نگارش (syntax) دستور UPDATE</span><br />
<br />
شیوه نگارش (syntax) و نحوه استفاده از دستور UPDATE در MySQL بسیار ساده و کاربردی است، در واقع مانند سایر دستورهای مربوط به پایگاه داده، از جمله INSERT INTO و SELECT FROM، دستور UPDATE نیز از عناصر تعریف شده و خاص خود پیروی می کند که عبارتند از SET،UPDATE و WHERE، عنصر UPDATE بخش کلیدی پرس و جو، SET عملیات مورد نظر و WHERE ردیف هایی است که تحت تاثیر قرار می گیرند، به مثال زیر توجه کنید.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">در مثال بالا، از جدول فرضی tb_name، ستون های tel_column و age_column را به روز رسانی کردیم در جایی که ردیف یا ردیف های ستون user_column برابر مقدار فرضی ali باشد، به این ترتیب اطلاعات قبلی ذخیره شده در ردیف ها حذف و با مقادیر جدید به روز رسانی می گردند، بدون اینکه خود آن ردیف ها حذف شوند.<br />
نکته: برای به روز رسانی چندین ستون با یک دستور UPDATE و جداسازی آنها، از علامت , به صورتی که در مثال آمده است استفاده کنید.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">یک مثال کاربردی با دستور UPDATE</span><br />
<br />
برای آشنایی بیشتر با کاربرد دستور UPDATE در MySQL، این قسمت از آموزش را با یک مثال کاربردی به پایان می بریم؛ فرض کنید اسامی کاربران سایت خود را در جدولی به نام users ذخیره کرده ایم که این جدول دارای چند ستون با نام های username، password، status و ... است، حال می خواهیم این امکان را به کاربران بدهیم تا بتوانند کلمه عبور خود را تغییر دهند، در چنین شرایطی می توان با استفاده از دستور UPDATE این کار را به راحتی انجام داد که در زیر یک نمونه از آن را ملاحظه می کنید.</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
توضیح:<br />
- دقت کنید، دستورات MySQL در اکثر مواقع، قبل از هر چیز باید توسط کدهای php کنترل شده و با هدف مشخصی استفاده گردند، به این معنی که هیچ زبان برنامه نویسی خود به خود نباید کاری انجام دهد بلکه تنها باید به عنوان یک ابزار در اختیار برنامه نویس باشد تا منظور او را به مفسر سیستم تفهیم کند، از این رو باید بدانید که کی و کجا از چه دستوری می توانید استفاده کنید، البته این موضوع تا حدود زیادی به تمرین و تجربه نیز بستگی دارد.<br />
- پرس و جوی فرضی بالا اطلاعات کلمه عبور یک کاربر را به روز رسانی می کند، همان طور که ملاحظه می کنید از WHERE و AND برای اطمینان و محدودسازی ردیف های مورد نظرمان استفاده کرده ایم، همچنین از متغیرهایی برای مقادیر در دستور استفاده شده است که می توانند به فرض از یک فرم HTML و با متد POST دریافت شده باشند.<br />
- همان طور که گفتیم، قبل از اجرای پرس و جوهای مربوط به دیتابیس، می توانید عملیات کاربر را با برنامه نویسی php کنترل و مدیریت کنید، به فرض از اعتبار سنجی با if و else یا isset استفاده کرده و سپس اجازه اجرای پرس و جو را بدهید، یا از دیگر قابلیت های php با توجه به هدف و برنامه خود استفاده کنید.</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[توابع تجمعی (Aggregate Functions) در MySQL]]></title>
			<link>https://forum.romaak.ir/showthread.php?tid=408</link>
			<pubDate>Mon, 14 Sep 2015 15:13:46 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.romaak.ir/member.php?action=profile&uid=1">saberi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.romaak.ir/showthread.php?tid=408</guid>
			<description><![CDATA[<div style="text-align: justify;" class="mycode_align">اگر آموزش های مقدماتی بخش MySQL را دنبال کرده باشید، حتما به خاطر دارید در مبحث گذشته که در مورد استفاده از GROUP BY صحبت کردیم، گفتیم که توابع مربوط به GROUP BY را در اصطلاح توابع تجمعی یا aggregate functions می گویند (شامل COUNT، MAX، MIN، SUM، AVG و...) و قرار شد که در آموزش های بعد به آن بپردازیم، از این رو طبق روال، این مطلب را اختصاص داده ایم به مبحث مذکور تا با فراگیری آن، بیش از پیش و با تسلط بیشتر بتوانیم به نحو دلخواه با php، اطلاعات موجود در دیتابیس MySQL را مدیریت کنیم، ذکر این نکته نیز لازم است که استفاده از این توابع همیشه هم ضروری نیست و بستگی به نوع نیاز شما دارد، اما در کل یک برنامه نویس خوب کسی است که از همه ظرفیت های موجود آگاه باشد، حتی اگر از آنها هرگز استفاده نکند.<br />
<span style="font-weight: bold;" class="mycode_b">توابع تجمعی (Aggregate Functions) به چه معنی است؟</span><br />
<br />
شاید این سوال به ذهن شما رسیده باشد که در کل توابع تجمعی (Aggregate Functions) به چه معنی است؟ پاسخ این سوال را اینگونه می توان داد که در PHP و MySQL برای گروه بندی در هنگام کار با اطلاعات عددی و آماری و بدست آوردن نتایج، بعد از یک سری محاسبات ریاضی (در حد معمولی یا پیشرفته)، توابعی از پیش تعریف شده که با تنظیم آنها در هنگام پرس و جو از پایگاه داده، طبق نیاز ما عملیات مورد نظر انجام شده و نتایج برگردانده می شوند، به فرض در مثالی که در ادامه خواهیم دید، اطلاعات خودروهایی با قیمت ها و رنگ های مختلف در دیتابیس موجود است، حال اگر بخواهیم خودرو ها را بر اساس رنگ گروه بندی کرده و در عین حال، ارزان ترین قیمت آن رنگ ها را انتخاب کنیم، ناچاریم از تابع MIN که جزء Aggregate Functions است استفاده نمائیم (در ادامه خواهیم دید).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ساخت جدول و وارد کردن اطلاعات نمونه در MySQL</span><br />
<br />
اجازه بدهید برای یادآوری هم که شده، ابتدا با استفاده از کد زیر، اطلاعات نمونه ای را در دیتابیس فرضی test ایجاد کنیم، این اطلاعات شامل جدول tb_cars و شش ردیف پنج ستونه از اسامی، مدل، رنگ و قیمت خودروها است (به اضافه ستون id که با خاصیت AUTO_INCREMENT است و به صورت خودکار ایجاد شده و افزایش می یابد).</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
توضیح:<br />
- برای ذخیره این اطلاعات نمونه در پایگاه داده، کافی است یک دیتابیس با نام test، ترجیحا در لوکال هاست بسازید و کد بالا را در یک فایل php ذخیره کرده و اجرا کنید.<br />
- در کد بالا، ابتدا با دستور CREATE TABLE جدول فرضی tb_cars را ساخته ایم که درون خود ستون هایی با نام id (از نوع INT) و name، model، color و price (همگی از نوع VARCHAR) را دارد.<br />
- در قسمت ALTER TABLE یک دستور اضافه برای کار با حروف فارسی قرار داده ایم تا یونیکد جداول به صورت استاندار utf8 تبدیل شود که برای کار با داده های زبان فارسی در MySQL مناسب است (البته در این مثال تنها از حروف انگلیسی استفاده شده است).<br />
- در بخش بعد از کد بالا، اطلاعات خودروها در یک آرایه چند بعدی یا (Multidimensional) ذخیره شده است تا با یک حلقه for مقادیر با دستور INSERT INTO وارد دیتابیس شوند (برای درک صحیح این بخش به آموزش های php در مبحث حلقه و آرایه مراجعه کنید).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از تابع MIN</span><br />
<br />
اولین تابعی که قصد بررسی آن را داریم، تابع MIN در MySQL است، به کاربردن این تابع باعث می شود که کم ترین مقادیر از موارد مورد نظر انتخاب شوند، به طور مثال در کد زیر، از خودروهای با رنگ همسان، ارزان ترین (رنگ ها) را انتخاب کرده ایم.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
خروجی پرس و جوی بالا از پایگاه داده به صورت زیر خواهد بود:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
همانطور که ملاحظه می کنید، رسم الخط یا همان syntax این تابع به گونه ای است که باید هم در query و هم در تابع mysql_fetch_array از آن در ستون مورد نظر استفاده شود، نکته دیگری که باید به آن توجه شود این است، ستونی که به عنوان گروه بندی از آن استفاده می شود به عنوان مبنای کار و ستونی که پائین ترین مقادیر از آن انتخاب می شود به عنوان پارامتر دوم دارای اهمیت است.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از تابع MAX</span><br />
<br />
تابع دیگری که جزء خانواده توابع تجمعی یا Aggregate Functions است، تابع MAX است که دقیقا کارکردی شبیه MIN دارد، با این تفاوت که در اینجا بزرگ ترین مقادیر انتخاب می  شوند.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">خروجی پرس و جوی بالا از پایگاه داده به صورت زیر خواهد بود:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">استفاده از تابع AVG</span><br />
<br />
بعد از آشنایی با تابع MIN و MAX نوبت به بررسی تابعی دیگر از این خانواده است، این تابع AVG نام دارد که در واقع مخفف عبارت average یا میانگین است، با استفاده از تابع AVG می توانیم حد متوسط مقادیر مورد نظر را از ستون های گروهی، محاسبه کرده و نشان دهیم.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">خروجی پرس و جوی بالا از پایگاه داده به صورت زیر خواهد بود:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از تابع SUM</span><br />
<br />
تابع دیگری که در خانواده توابع تجمعی (Aggregate Functions) دسته بندی می شود، تابع SUM یا حاصل جمع است، این تابع در واقع مقادیر مجموع ستون هایی که با هم گروه بندی می شوند را نشان می دهد.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">خروجی پرس و جوی بالا از پایگاه داده به صورت زیر خواهد بود:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">استفاده از تابع COUNT</span><br />
<br />
آخرین تابعی که در این آموزش قصد معرفی آن را داریم، تابع COUNT است که در واقع نمایانگر تعداد آیتم های هر گروه است، به فرض اگر 5 خودرو مشکی رنگ داشته باشیم، در هنگامی که از ستون color برای GROUP BY استفاده کنیم، تابع COUNT مقادیر 5 را برای این ستون برمی گرداند.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
خروجی پرس و جوی بالا از پایگاه داده به صورت زیر خواهد بود:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">لیست توابع تجمعی به MIN MAX AVG SUM و COUNT محدود نمی شود، MySQL توابع دیگری نیز برای محاسبات آماری پیچیده تر در نظر گرفته است که البته معمولا در برنامه های عادی، کم تر مورد استفاده قرار می گیرند، برای کسب اطلاعات بیشتر در این خصوص، می توانید به سایت رسمی MySQL در آدرس زیر مراجعه کنید:</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;" class="mycode_align">اگر آموزش های مقدماتی بخش MySQL را دنبال کرده باشید، حتما به خاطر دارید در مبحث گذشته که در مورد استفاده از GROUP BY صحبت کردیم، گفتیم که توابع مربوط به GROUP BY را در اصطلاح توابع تجمعی یا aggregate functions می گویند (شامل COUNT، MAX، MIN، SUM، AVG و...) و قرار شد که در آموزش های بعد به آن بپردازیم، از این رو طبق روال، این مطلب را اختصاص داده ایم به مبحث مذکور تا با فراگیری آن، بیش از پیش و با تسلط بیشتر بتوانیم به نحو دلخواه با php، اطلاعات موجود در دیتابیس MySQL را مدیریت کنیم، ذکر این نکته نیز لازم است که استفاده از این توابع همیشه هم ضروری نیست و بستگی به نوع نیاز شما دارد، اما در کل یک برنامه نویس خوب کسی است که از همه ظرفیت های موجود آگاه باشد، حتی اگر از آنها هرگز استفاده نکند.<br />
<span style="font-weight: bold;" class="mycode_b">توابع تجمعی (Aggregate Functions) به چه معنی است؟</span><br />
<br />
شاید این سوال به ذهن شما رسیده باشد که در کل توابع تجمعی (Aggregate Functions) به چه معنی است؟ پاسخ این سوال را اینگونه می توان داد که در PHP و MySQL برای گروه بندی در هنگام کار با اطلاعات عددی و آماری و بدست آوردن نتایج، بعد از یک سری محاسبات ریاضی (در حد معمولی یا پیشرفته)، توابعی از پیش تعریف شده که با تنظیم آنها در هنگام پرس و جو از پایگاه داده، طبق نیاز ما عملیات مورد نظر انجام شده و نتایج برگردانده می شوند، به فرض در مثالی که در ادامه خواهیم دید، اطلاعات خودروهایی با قیمت ها و رنگ های مختلف در دیتابیس موجود است، حال اگر بخواهیم خودرو ها را بر اساس رنگ گروه بندی کرده و در عین حال، ارزان ترین قیمت آن رنگ ها را انتخاب کنیم، ناچاریم از تابع MIN که جزء Aggregate Functions است استفاده نمائیم (در ادامه خواهیم دید).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ساخت جدول و وارد کردن اطلاعات نمونه در MySQL</span><br />
<br />
اجازه بدهید برای یادآوری هم که شده، ابتدا با استفاده از کد زیر، اطلاعات نمونه ای را در دیتابیس فرضی test ایجاد کنیم، این اطلاعات شامل جدول tb_cars و شش ردیف پنج ستونه از اسامی، مدل، رنگ و قیمت خودروها است (به اضافه ستون id که با خاصیت AUTO_INCREMENT است و به صورت خودکار ایجاد شده و افزایش می یابد).</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
توضیح:<br />
- برای ذخیره این اطلاعات نمونه در پایگاه داده، کافی است یک دیتابیس با نام test، ترجیحا در لوکال هاست بسازید و کد بالا را در یک فایل php ذخیره کرده و اجرا کنید.<br />
- در کد بالا، ابتدا با دستور CREATE TABLE جدول فرضی tb_cars را ساخته ایم که درون خود ستون هایی با نام id (از نوع INT) و name، model، color و price (همگی از نوع VARCHAR) را دارد.<br />
- در قسمت ALTER TABLE یک دستور اضافه برای کار با حروف فارسی قرار داده ایم تا یونیکد جداول به صورت استاندار utf8 تبدیل شود که برای کار با داده های زبان فارسی در MySQL مناسب است (البته در این مثال تنها از حروف انگلیسی استفاده شده است).<br />
- در بخش بعد از کد بالا، اطلاعات خودروها در یک آرایه چند بعدی یا (Multidimensional) ذخیره شده است تا با یک حلقه for مقادیر با دستور INSERT INTO وارد دیتابیس شوند (برای درک صحیح این بخش به آموزش های php در مبحث حلقه و آرایه مراجعه کنید).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از تابع MIN</span><br />
<br />
اولین تابعی که قصد بررسی آن را داریم، تابع MIN در MySQL است، به کاربردن این تابع باعث می شود که کم ترین مقادیر از موارد مورد نظر انتخاب شوند، به طور مثال در کد زیر، از خودروهای با رنگ همسان، ارزان ترین (رنگ ها) را انتخاب کرده ایم.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
خروجی پرس و جوی بالا از پایگاه داده به صورت زیر خواهد بود:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
همانطور که ملاحظه می کنید، رسم الخط یا همان syntax این تابع به گونه ای است که باید هم در query و هم در تابع mysql_fetch_array از آن در ستون مورد نظر استفاده شود، نکته دیگری که باید به آن توجه شود این است، ستونی که به عنوان گروه بندی از آن استفاده می شود به عنوان مبنای کار و ستونی که پائین ترین مقادیر از آن انتخاب می شود به عنوان پارامتر دوم دارای اهمیت است.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از تابع MAX</span><br />
<br />
تابع دیگری که جزء خانواده توابع تجمعی یا Aggregate Functions است، تابع MAX است که دقیقا کارکردی شبیه MIN دارد، با این تفاوت که در اینجا بزرگ ترین مقادیر انتخاب می  شوند.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">خروجی پرس و جوی بالا از پایگاه داده به صورت زیر خواهد بود:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">استفاده از تابع AVG</span><br />
<br />
بعد از آشنایی با تابع MIN و MAX نوبت به بررسی تابعی دیگر از این خانواده است، این تابع AVG نام دارد که در واقع مخفف عبارت average یا میانگین است، با استفاده از تابع AVG می توانیم حد متوسط مقادیر مورد نظر را از ستون های گروهی، محاسبه کرده و نشان دهیم.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">خروجی پرس و جوی بالا از پایگاه داده به صورت زیر خواهد بود:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از تابع SUM</span><br />
<br />
تابع دیگری که در خانواده توابع تجمعی (Aggregate Functions) دسته بندی می شود، تابع SUM یا حاصل جمع است، این تابع در واقع مقادیر مجموع ستون هایی که با هم گروه بندی می شوند را نشان می دهد.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">خروجی پرس و جوی بالا از پایگاه داده به صورت زیر خواهد بود:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">استفاده از تابع COUNT</span><br />
<br />
آخرین تابعی که در این آموزش قصد معرفی آن را داریم، تابع COUNT است که در واقع نمایانگر تعداد آیتم های هر گروه است، به فرض اگر 5 خودرو مشکی رنگ داشته باشیم، در هنگامی که از ستون color برای GROUP BY استفاده کنیم، تابع COUNT مقادیر 5 را برای این ستون برمی گرداند.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
خروجی پرس و جوی بالا از پایگاه داده به صورت زیر خواهد بود:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">لیست توابع تجمعی به MIN MAX AVG SUM و COUNT محدود نمی شود، MySQL توابع دیگری نیز برای محاسبات آماری پیچیده تر در نظر گرفته است که البته معمولا در برنامه های عادی، کم تر مورد استفاده قرار می گیرند، برای کسب اطلاعات بیشتر در این خصوص، می توانید به سایت رسمی MySQL در آدرس زیر مراجعه کنید:</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[استفاده از ORDER و GROUP در MySQL]]></title>
			<link>https://forum.romaak.ir/showthread.php?tid=407</link>
			<pubDate>Mon, 14 Sep 2015 15:06:38 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.romaak.ir/member.php?action=profile&uid=1">saberi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.romaak.ir/showthread.php?tid=407</guid>
			<description><![CDATA[<div style="text-align: justify;" class="mycode_align">در ادامه آموزش مقدماتی کار با php و mysql، نوبت به آشنایی با نحوه استفاده از دستورات  ORDER BY و GROUP BY رسیده است، با ذکر این مقدمه که دستورات ذکر شده در واقع با هدف دسته بندی و مرتب سازی دقیق تر نتایج و به دست آوردن مقادیر مورد نظر در هنگام کار با php و mysql ایجاد شده اند، به عبارتی دیگر، در برنامه نویسی کاربردی، مواردی پیش می آید که ناگزیریم اطلاعات را به صورت مرتب شده نشان دهیم، یا نتایج مشابه را در یک مورد خلاصه کنیم، اینجاست که کاربرد ORDER BY و GROUP BY رهگشای ما خواهد بود که در ادامه آموزش به آن خواهیم پرداخت.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">دستور ORDER BY</span><br />
<br />
همانطور که در مباحث گذشته از آموزش  مقدماتی MySQL به طور مختصر دیدیم، از ORDER BY در یک دستور SELECT * FROM استفاده می شود، هدف از به کاربردن آن، تفهیم نحوه مرتب سازی و چینش سلیقه ای و سفارشی نتایج و ردیف های درخواست شده از mysql است، به فرض اگر کاربرانی با مقادیر سنی متفاوت در سایت خود داشته باشیم و بخواهیم اسامی آنها را بر اساس سن مرتب کنیم، خواهیم نوشت:</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">خروجی کد بالا می تواند به فرض به شکل زیر باشد.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
همانطور که ملاحظه می کنید، در مثال بالا از جدول table و دو ستون فرضی name و age استفاده کرده ایم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از DESC، ASC و تابع rand</span><br />
<br />
در حالت پیش فرض، mysql نتایج را به صورت صعودی (از کوچک به بزرگ یا Ascending) مرتب سازی می کند، اما مرتب سازی به صورت نزولی (از بزرگ به کوچک یا Descending) و همچنین مرتب سازی اتفاقی یا رندوم (Random) با افزودن عباراتی که در زیر مشاهده می کنید، امکان پذیر است.<br />
DESC: مرتب سازی پیش فرض یا صعودی (از کوچک به بزرگ)<br />
ASC: مرتب سازی نزولی (از بزرگ به کوچک)<br />
rand: مرتب سازی به صورت اتفاقی (رندوم)<br />
به مثال های زیر توجه کنید.<br />
نحوه استفاده از DESC برای مرتب سازی و نمایش نتایج به صورت چینش صعودی:</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
نحوه استفاده از ASC برای مرتب سازی و نمایش نتایج به صورت چینش نزولی:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">نحوه استفاده از تابع rand برای مرتب سازی و نمایش نتایج به صورت چینش اتفاقی:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">استفاده از LIMIT</span><br />
<br />
استفاده از دستور ORDER BY به تنهایی و بدون محدود کردن تعداد نتایج، می تواند منجر به نمایش تعداد خیلی زیادی از اطلاعات با یک درخواست از دیتابیس شود، از این رو یک پارامتر دیگر به نام LIMIT را می توانیم به دستور خود اضافه کنیم، LIMIT تعداد ردیف هایی را که به عنوان نتایج یک پرس و جو از دیتابیس به دست می آید، محدود می کند، به فرض دستور زیر:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">تنها 5 کاربر را به صورت اتفاقی انتخاب می کند، همچنین می توان نقطه شروع انتخاب ردیف ها را نیز به mysql تفهیم کرد، بدین منظور برای LIMIT از دو عدد استفاده می کنیم، عدد اول مقادیر ردیفی است که با توجه به ORDER BY آن را انتخاب کرده ایم (به فرض شروع از سن 35 سال) و عدد دوم تعداد نتایجی است که پرس و جو را به آن محدود کرده ایم (به فرض 5 عدد).<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">با استفاده از این شیوه به صورت داینامیک، می توان قابلیت هایی مثل نمایش صفحه به صفحه مطالب را ایجاد نمود که در بحث آموزش های کاربردی در این باره خواهیم گفت.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از AND و OR</span><br />
<br />
شیوه نگارش (syntax) دستورات php در هنگام کار با mysql این اجازه را به ما می دهد که همانند علامت های &amp;&amp; و || از دو عبارت AND و OR در یک query استفاده کنیم، البته نحوه کاربرد آنها در اینجا کمی متفاوت است اما هدف از به کارگیریشان یکی است، از AND برای محدودتر و دقیق تر کردن نتایج و از OR برای وسیع تر کردن شمول نتایج یک پرس و جو استفاده می شود، به فرض اگر بخواهیم فقط کاربران دارای سن بالاتر از 40 و پائین تر از 20 را نمایش دهیم، می نویسیم:</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">دستور بالا، کاربرانی را که سن آنها بالاتر از 40 یا پائین تر از 20 باشد، در لیست نتایج پرس و جو از پایگاه داده نمایش می دهد.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از GROUP BY</span><br />
<br />
یک قابلیت کاربردی دیگر که در دسته بندی و نمایش بهتر نتایج حاصل از پرس و جوی پایگاه داده می توان از آن استفاده کرد، قابلیت گروه بندی نتایج دارای وجه مشترک در یک نتیجه است، این قابلیت توسط پارامتر GROUP BY به دست می آید، به فرض اگر بخواهیم گروه بندی را بر اساس شهر کاربران داشته باشیم، خواهیم نوشت:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">به این صورت از بین کاربران یک شهر، تنها یک عضو با توجه به نحوه چینش دستور ORDER BY انتخاب شده و در نتایج نشان داده می شود.<br />
<br />
مثال دیگر از کاربرد GROUP BY در mysql:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
در هنگام استفاده از قابلیت GROUP BY و ORDER BY باید دقت کنید که از آنها به ترتیب استفاده شود، در غیر اینصورت mysql خطای syntax را نمایش خواهد داد.<br />
<br />
توابع مربوط به GROUP BY را در اصطلاح توابع تجمعی یا aggregate functions می گویند (شامل COUNT، MAX، MIN، SUM، AVG و...) که در آموزش های بعدی به تفصیل راجب آنها خواهیم گفت.</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;" class="mycode_align">در ادامه آموزش مقدماتی کار با php و mysql، نوبت به آشنایی با نحوه استفاده از دستورات  ORDER BY و GROUP BY رسیده است، با ذکر این مقدمه که دستورات ذکر شده در واقع با هدف دسته بندی و مرتب سازی دقیق تر نتایج و به دست آوردن مقادیر مورد نظر در هنگام کار با php و mysql ایجاد شده اند، به عبارتی دیگر، در برنامه نویسی کاربردی، مواردی پیش می آید که ناگزیریم اطلاعات را به صورت مرتب شده نشان دهیم، یا نتایج مشابه را در یک مورد خلاصه کنیم، اینجاست که کاربرد ORDER BY و GROUP BY رهگشای ما خواهد بود که در ادامه آموزش به آن خواهیم پرداخت.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">دستور ORDER BY</span><br />
<br />
همانطور که در مباحث گذشته از آموزش  مقدماتی MySQL به طور مختصر دیدیم، از ORDER BY در یک دستور SELECT * FROM استفاده می شود، هدف از به کاربردن آن، تفهیم نحوه مرتب سازی و چینش سلیقه ای و سفارشی نتایج و ردیف های درخواست شده از mysql است، به فرض اگر کاربرانی با مقادیر سنی متفاوت در سایت خود داشته باشیم و بخواهیم اسامی آنها را بر اساس سن مرتب کنیم، خواهیم نوشت:</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">خروجی کد بالا می تواند به فرض به شکل زیر باشد.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
همانطور که ملاحظه می کنید، در مثال بالا از جدول table و دو ستون فرضی name و age استفاده کرده ایم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از DESC، ASC و تابع rand</span><br />
<br />
در حالت پیش فرض، mysql نتایج را به صورت صعودی (از کوچک به بزرگ یا Ascending) مرتب سازی می کند، اما مرتب سازی به صورت نزولی (از بزرگ به کوچک یا Descending) و همچنین مرتب سازی اتفاقی یا رندوم (Random) با افزودن عباراتی که در زیر مشاهده می کنید، امکان پذیر است.<br />
DESC: مرتب سازی پیش فرض یا صعودی (از کوچک به بزرگ)<br />
ASC: مرتب سازی نزولی (از بزرگ به کوچک)<br />
rand: مرتب سازی به صورت اتفاقی (رندوم)<br />
به مثال های زیر توجه کنید.<br />
نحوه استفاده از DESC برای مرتب سازی و نمایش نتایج به صورت چینش صعودی:</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
نحوه استفاده از ASC برای مرتب سازی و نمایش نتایج به صورت چینش نزولی:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">نحوه استفاده از تابع rand برای مرتب سازی و نمایش نتایج به صورت چینش اتفاقی:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">استفاده از LIMIT</span><br />
<br />
استفاده از دستور ORDER BY به تنهایی و بدون محدود کردن تعداد نتایج، می تواند منجر به نمایش تعداد خیلی زیادی از اطلاعات با یک درخواست از دیتابیس شود، از این رو یک پارامتر دیگر به نام LIMIT را می توانیم به دستور خود اضافه کنیم، LIMIT تعداد ردیف هایی را که به عنوان نتایج یک پرس و جو از دیتابیس به دست می آید، محدود می کند، به فرض دستور زیر:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">تنها 5 کاربر را به صورت اتفاقی انتخاب می کند، همچنین می توان نقطه شروع انتخاب ردیف ها را نیز به mysql تفهیم کرد، بدین منظور برای LIMIT از دو عدد استفاده می کنیم، عدد اول مقادیر ردیفی است که با توجه به ORDER BY آن را انتخاب کرده ایم (به فرض شروع از سن 35 سال) و عدد دوم تعداد نتایجی است که پرس و جو را به آن محدود کرده ایم (به فرض 5 عدد).<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">با استفاده از این شیوه به صورت داینامیک، می توان قابلیت هایی مثل نمایش صفحه به صفحه مطالب را ایجاد نمود که در بحث آموزش های کاربردی در این باره خواهیم گفت.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از AND و OR</span><br />
<br />
شیوه نگارش (syntax) دستورات php در هنگام کار با mysql این اجازه را به ما می دهد که همانند علامت های &amp;&amp; و || از دو عبارت AND و OR در یک query استفاده کنیم، البته نحوه کاربرد آنها در اینجا کمی متفاوت است اما هدف از به کارگیریشان یکی است، از AND برای محدودتر و دقیق تر کردن نتایج و از OR برای وسیع تر کردن شمول نتایج یک پرس و جو استفاده می شود، به فرض اگر بخواهیم فقط کاربران دارای سن بالاتر از 40 و پائین تر از 20 را نمایش دهیم، می نویسیم:</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">دستور بالا، کاربرانی را که سن آنها بالاتر از 40 یا پائین تر از 20 باشد، در لیست نتایج پرس و جو از پایگاه داده نمایش می دهد.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از GROUP BY</span><br />
<br />
یک قابلیت کاربردی دیگر که در دسته بندی و نمایش بهتر نتایج حاصل از پرس و جوی پایگاه داده می توان از آن استفاده کرد، قابلیت گروه بندی نتایج دارای وجه مشترک در یک نتیجه است، این قابلیت توسط پارامتر GROUP BY به دست می آید، به فرض اگر بخواهیم گروه بندی را بر اساس شهر کاربران داشته باشیم، خواهیم نوشت:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">به این صورت از بین کاربران یک شهر، تنها یک عضو با توجه به نحوه چینش دستور ORDER BY انتخاب شده و در نتایج نشان داده می شود.<br />
<br />
مثال دیگر از کاربرد GROUP BY در mysql:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
در هنگام استفاده از قابلیت GROUP BY و ORDER BY باید دقت کنید که از آنها به ترتیب استفاده شود، در غیر اینصورت mysql خطای syntax را نمایش خواهد داد.<br />
<br />
توابع مربوط به GROUP BY را در اصطلاح توابع تجمعی یا aggregate functions می گویند (شامل COUNT، MAX، MIN، SUM، AVG و...) که در آموزش های بعدی به تفصیل راجب آنها خواهیم گفت.</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[نحوه استفاده از WHERE در MySQL]]></title>
			<link>https://forum.romaak.ir/showthread.php?tid=406</link>
			<pubDate>Mon, 14 Sep 2015 15:00:17 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.romaak.ir/member.php?action=profile&uid=1">saberi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.romaak.ir/showthread.php?tid=406</guid>
			<description><![CDATA[<div style="text-align: justify;" class="mycode_align">همان طور که پیش تر در آموزش های مقدماتی MySQL گفتیم، هنگامی که با دستور SELECT FROM در MySQL کار می کنیم، نیاز به ایجاد محدودیت هایی داریم تا اطلاعات دقیق تری بدست آوریم، به عنوان مثال اگر لیست اسامی ده هزار نفر را در دیتابیس خود به صورت نام، نام خانوادگی و سن داشته باشیم و بخواهیم به فرض تنها افرادی را که اسم آنها بهرام است، در خروجی داشته باشیم، باید از WHERE و پارامترهای آن استفاده کنیم، WHERE در واقع نشانی دقیق ستون و سطرهایی که ما از MySQL پرس و جو می کنیم را تعریف می کند، از اینرو در کار با پایگاه داده و کدهای php اهمیت و کاربرد زیادی دارد، در ادامه آموزش، خواهیم دید که این عنصر تا چه میزان می تواند دقت و سرعت کار ما را افزایش دهد.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">چگونه از WHERE استفاده کنیم؟</span><br />
<br />
شیوه نگارش یا همان syntax عنصر WHERE و پارامترهای آن چندان سخت نیست، کافی است آن را در ادامه دستور SELECT FROM قرار دهید، مثال زیر یک نمونه از آن را نشان می دهد.</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
<div style="text-align: justify;" class="mycode_align">در مثال بالا از جدول فرضی table جایی که ستون id برابر یک است را انتخاب کرده ایم، با این کار اطلاعات کل یک ردیف که آی دی آن برابر یک است، در دسترس قرار می گیرد، مثلا ممکن است در آن ردیف اطلاعات دیگری نظیر نام، نام خانوادگی، سن و... را (از قبل) ذخیره کرده باشیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از علامت بزرگتر، کوچکتر و مساوی در WHERE</span><br />
<br />
عبارت WHERE در یک دستور SELECT FROM، تعیین کننده منظور دقیق ما در انتخاب اطلاعات است، درست مثل اینکه در یک کتابخانه به کتابدار بگوییم ازمیان قفسه ها، بخش تاریخ، کتاب تاریخ جهان، انتشارات فلان و... را بیاورد، تمام جزئیات در درخواست ما باید با عباراتی بیان شوند، این کار در MySQL با پارامترهای WHERE صورت می گیرد، یکی از این پارامترها علامت های بزرگتر، کوچکتر و مساوی (&lt;=&gt;) هستند، با این علامت ها مثلا می توانیم به دیتابیس بگوییم ردیف هایی را انتخاب کند که به فرض سن کاربر از 25 سال بیشتر باشد، این کار را به صورت زیر به پایگاه داده تفهیم می کنیم.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">در واقع عبارت بالا به این معنی است: از جدول فرضی table ستون age، تنها ردیف هایی را انتخاب کن که مقادیر سن کمتر از 25 باشد.<br />
<br />
همین کار در مثال زیر، این بار با علامت نا مساوی انجام شده است.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">مفهوم عبارت بالا به این معنی است: از جدول فرضی table ستون age، ردیف هایی را انتخاب کن که مقادیر سن برابر 20 نباشد.<br />
به خاطر داشته باشید، عبارات بزرگتر و کوچکتر، تنها در مقایسه اعداد کاربرد دارند و بهتر است نوع داده ها به صورت INT یا عددی باشند، اما از علامت مساوی (و نامساوی)، هم برای اعداد و هم برای مقادیر رشته ای (متنی) می توان استفاده کرد.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از عبارت LIKE در WHERE</span><br />
<br />
استفاده از علامت بزرگتر، کوچکتر و مساوی در WHERE به تنهایی تمام خواسته های ما را پوشش نمی دهد، فرض کنید اسامی چند نفر جهت نمونه به صورت زیر در جداول ما ذخیره شده اند.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
اکنون می خواهیم تنها کسانی که دو حرف اول نام آنها با حروف A و R شروع شده را انتخاب کنیم، واضح است که این کار با علامت هایی که پیشتر گفتیم ممکن نیست، چرا که آنها یک عدد یا یک مقدار صحیح را مقایسه می کنند، مثلا با عبارت مساوی تنها می توانیم بنویسیم:<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">این دستور فقط ردیف یا ردیف هایی را که مقادیر نام در آن Arman باشد، انتخاب می کند، اما با استفاده از عبارتی دیگر در WHERE، این مشکل قابل حل است، این عبارت نیز LIKE و علامت  % (percent Wildcard) است، در مثال زیر با کاربرد آن بیشتر آشنا می شوید.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
وقتی پس از دو حرف Ar علامت % را قرار می دهیم، در واقع به دیتابیس می گوییم که فقط دو حرف اول برایمان اهمیت دارد و بقیه عبارت، هر چیزی می تواند باشد، دستور بالا اسامی زیر را برایمان انتخاب می کند.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
حال تصور کنید کاربری با نام فرضی PHPArmin نیز در بین کاربران خود داریم، دستور بالا این کاربر را انتخاب نمی کند، چرا که حروف ابتدایی عبارت  PHPArmin با Ar شروع نشده است، اما تغییر آن به صورت زیر، شامل این نوع اسامی نیز می شود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
در واقع با افزودن یک % در ابتدا و انتهای عبارت مورد پرس و جو، دیتابیس چنین برداشت می کند که تنها برایمان وجود عبارت Ar در بین یک اسم مهم است و به ابتدا یا انتهای آن کاری ندارد.<br />
ذکر این نکته ضروری است که در کار با  عبارت LIKE و علامت  %، باید دقت کنید که دامنه انتخاب ردیف ها را بیش از حد مورد انتظار، توسعه ندهید، برای اعداد نیز بهتر است از علامت های &lt;=&gt; به جای LIKE استفاده کنید.<br />
در مباحث بعدی در رابطه با تکمیل WHERE با پارامترهای بیشتر و نحوه نمایش و دسته بندی اطلاعات، صحبت خواهیم کرد.<br />
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;" class="mycode_align">همان طور که پیش تر در آموزش های مقدماتی MySQL گفتیم، هنگامی که با دستور SELECT FROM در MySQL کار می کنیم، نیاز به ایجاد محدودیت هایی داریم تا اطلاعات دقیق تری بدست آوریم، به عنوان مثال اگر لیست اسامی ده هزار نفر را در دیتابیس خود به صورت نام، نام خانوادگی و سن داشته باشیم و بخواهیم به فرض تنها افرادی را که اسم آنها بهرام است، در خروجی داشته باشیم، باید از WHERE و پارامترهای آن استفاده کنیم، WHERE در واقع نشانی دقیق ستون و سطرهایی که ما از MySQL پرس و جو می کنیم را تعریف می کند، از اینرو در کار با پایگاه داده و کدهای php اهمیت و کاربرد زیادی دارد، در ادامه آموزش، خواهیم دید که این عنصر تا چه میزان می تواند دقت و سرعت کار ما را افزایش دهد.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">چگونه از WHERE استفاده کنیم؟</span><br />
<br />
شیوه نگارش یا همان syntax عنصر WHERE و پارامترهای آن چندان سخت نیست، کافی است آن را در ادامه دستور SELECT FROM قرار دهید، مثال زیر یک نمونه از آن را نشان می دهد.</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
<div style="text-align: justify;" class="mycode_align">در مثال بالا از جدول فرضی table جایی که ستون id برابر یک است را انتخاب کرده ایم، با این کار اطلاعات کل یک ردیف که آی دی آن برابر یک است، در دسترس قرار می گیرد، مثلا ممکن است در آن ردیف اطلاعات دیگری نظیر نام، نام خانوادگی، سن و... را (از قبل) ذخیره کرده باشیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از علامت بزرگتر، کوچکتر و مساوی در WHERE</span><br />
<br />
عبارت WHERE در یک دستور SELECT FROM، تعیین کننده منظور دقیق ما در انتخاب اطلاعات است، درست مثل اینکه در یک کتابخانه به کتابدار بگوییم ازمیان قفسه ها، بخش تاریخ، کتاب تاریخ جهان، انتشارات فلان و... را بیاورد، تمام جزئیات در درخواست ما باید با عباراتی بیان شوند، این کار در MySQL با پارامترهای WHERE صورت می گیرد، یکی از این پارامترها علامت های بزرگتر، کوچکتر و مساوی (&lt;=&gt;) هستند، با این علامت ها مثلا می توانیم به دیتابیس بگوییم ردیف هایی را انتخاب کند که به فرض سن کاربر از 25 سال بیشتر باشد، این کار را به صورت زیر به پایگاه داده تفهیم می کنیم.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">در واقع عبارت بالا به این معنی است: از جدول فرضی table ستون age، تنها ردیف هایی را انتخاب کن که مقادیر سن کمتر از 25 باشد.<br />
<br />
همین کار در مثال زیر، این بار با علامت نا مساوی انجام شده است.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">مفهوم عبارت بالا به این معنی است: از جدول فرضی table ستون age، ردیف هایی را انتخاب کن که مقادیر سن برابر 20 نباشد.<br />
به خاطر داشته باشید، عبارات بزرگتر و کوچکتر، تنها در مقایسه اعداد کاربرد دارند و بهتر است نوع داده ها به صورت INT یا عددی باشند، اما از علامت مساوی (و نامساوی)، هم برای اعداد و هم برای مقادیر رشته ای (متنی) می توان استفاده کرد.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">استفاده از عبارت LIKE در WHERE</span><br />
<br />
استفاده از علامت بزرگتر، کوچکتر و مساوی در WHERE به تنهایی تمام خواسته های ما را پوشش نمی دهد، فرض کنید اسامی چند نفر جهت نمونه به صورت زیر در جداول ما ذخیره شده اند.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
اکنون می خواهیم تنها کسانی که دو حرف اول نام آنها با حروف A و R شروع شده را انتخاب کنیم، واضح است که این کار با علامت هایی که پیشتر گفتیم ممکن نیست، چرا که آنها یک عدد یا یک مقدار صحیح را مقایسه می کنند، مثلا با عبارت مساوی تنها می توانیم بنویسیم:<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">این دستور فقط ردیف یا ردیف هایی را که مقادیر نام در آن Arman باشد، انتخاب می کند، اما با استفاده از عبارتی دیگر در WHERE، این مشکل قابل حل است، این عبارت نیز LIKE و علامت  % (percent Wildcard) است، در مثال زیر با کاربرد آن بیشتر آشنا می شوید.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
وقتی پس از دو حرف Ar علامت % را قرار می دهیم، در واقع به دیتابیس می گوییم که فقط دو حرف اول برایمان اهمیت دارد و بقیه عبارت، هر چیزی می تواند باشد، دستور بالا اسامی زیر را برایمان انتخاب می کند.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
حال تصور کنید کاربری با نام فرضی PHPArmin نیز در بین کاربران خود داریم، دستور بالا این کاربر را انتخاب نمی کند، چرا که حروف ابتدایی عبارت  PHPArmin با Ar شروع نشده است، اما تغییر آن به صورت زیر، شامل این نوع اسامی نیز می شود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
در واقع با افزودن یک % در ابتدا و انتهای عبارت مورد پرس و جو، دیتابیس چنین برداشت می کند که تنها برایمان وجود عبارت Ar در بین یک اسم مهم است و به ابتدا یا انتهای آن کاری ندارد.<br />
ذکر این نکته ضروری است که در کار با  عبارت LIKE و علامت  %، باید دقت کنید که دامنه انتخاب ردیف ها را بیش از حد مورد انتظار، توسعه ندهید، برای اعداد نیز بهتر است از علامت های &lt;=&gt; به جای LIKE استفاده کنید.<br />
در مباحث بعدی در رابطه با تکمیل WHERE با پارامترهای بیشتر و نحوه نمایش و دسته بندی اطلاعات، صحبت خواهیم کرد.<br />
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[انتخاب ردیف ها با دستور SELECT FROM در MySQL]]></title>
			<link>https://forum.romaak.ir/showthread.php?tid=405</link>
			<pubDate>Mon, 14 Sep 2015 14:55:46 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.romaak.ir/member.php?action=profile&uid=1">saberi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.romaak.ir/showthread.php?tid=405</guid>
			<description><![CDATA[<div style="text-align: justify;" class="mycode_align">تا این قسمت از آموزش مقدماتی کار با mysql و کدهای php، دیدیم که چگونه با دستورات مربوط به پایگاه داده در mysql، php را مدیریت کنیم، نحوه اتصال، ساخت دیتابیس، جدول و ردیف با دستور CREATE را فرا گرفتیم و اطلاعات را با INSERT INTO در پایگاه داده خود ذخیره کردیم، همچنین در آموزش قبلی به طور مختصر کلیاتی در رابطه با mysql_query گفتیم و وعده دادیم که در ادامه در این خصوص بیشتر خواهیم گفت، اکنون می خواهیم به وعده خود جامع عمل بپوشانیم و در مورد دستور SELECT FROM در MySQL صحبت کنیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">کاربرد SELECT FROM در MySQL چیست؟</span><br />
<br />
اگر خاطرتان باشد، پیش تر گفتیم که صرف ساخت دیتابیس، جدول و ردیف و وارد کردن اطلاعات در آن، تمام نیازهایمان (و شاید خیلی از نیازهایمان) را پوشش نمی دهد، با این کار، صرفا اطلاعات را دریافت می کنیم، اما اگر بخواهیم از آنها مجددا استفاده نمائیم، نیاز داریم که به کمک PHP موارد را فراخوانی کنیم، این کار در تعامل بین PHP و MySQL توسط SELECT FROM و پارامترهای آن انجام می شود که وظیفه دارد با توجه به نیاز شما و تنظیماتی که انجام داده اید، اطلاعات خاصی را از ردیف های موجود در جداول، فراخوانی کند، تا پردازش روی آنها صورت گرفته و به خروجی ارسال شوند.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">شیوه نگارش (syntax) دستور SELECT FROM در MySQL</span><br />
<br />
شیوه نگارش یا syntax دستور SELECT FROM در MySQL به صورت زیر است.</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
توضیح:<br />
- در مورد mysql_query، قبلا گفته ایم که یک تابع درونی php برای کار با پایگاه داده است و در واقع یک پُرس و جو و عملیات را بین php و mysql مدیریت می کند.<br />
- دستور SELECT FROM با پارامترهای دیگری از جمه WHERE تکمیل می شود که در بحث های بعدی به طور مفصل در این خصوص خواهیم گفت.<br />
- پس از اینکه یک mysql_query با SELECT FROM اجرا شد، بر اساس نوع درخواست و تنظیمات شما، مقادیری برگردانده می شود (این مقادیر می تواند اطلاعات موجود در دیتابیس یا مثلا تعداد ردیف ها و ... باشد)، برای استفاده از این مقادیر بهتر است mysql_query را با یک متغیر فراخوانی کنیم تا اطلاعات در متغیر قابل دسترسی باشد (در ادامه خواهیم دید).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">پارامترهای دستور SELECT FROM در MySQL</span><br />
<br />
SELECT FROM در حالت عادی و بدون وجود پارامترهای محدود کننده، معمولا تمام موارد را از یک جدول برمی گرداند، لذا برای اینکه بتوانیم به دنبال محتوای مخصوصی بگردیم، باید از پارامترهای اضافه استفاده کنیم، یکی از این پارامترها WHERE است که خود زیرمجموعه های دیگری دارد (مثلا استفاده از LIKE و علامت های &lt;،=،&gt; و...)، چون بحث ما به دستور SELECT FROM محدود می شود، موارد پیشرفته تر را که نیاز به دانستن مقدمات بیشتر است، به آینده موکول و در اینجا به ذکر چند مثال بسنده می کنیم.<br />
در مثال های زیر ما با پارامترهای بیشتر، اطلاعاتی دقیق تر از پایگاه داده به دست می آوریم.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
توضیح:<br />
- مقادیر در مثال های بالا کاملا فرضی هستند و صرفا برای آشنایی شما با نحوه نگارش دستورات و پارامترهای SELECT FROM تعریف شده اند.<br />
- همانطور که می بینید برای سه متغیر فرضی name، family و age سه query متفاوت (صرفا جهت مثال) تنظیم کرده ایم.<br />
- به پارامترهایی که بعد از قسمت WHERE آمده اند دقت کنید، در متغیر اول از مقایسه برابری (=) ستون user با مقادیر your name استفاده کرده ایم (یعنی تنها ردیف هایی انتخاب می شوند که نام کاربر your name باشد)، در متغیر دوم از LIKE و LIMIT و در متغیر سوم از علامت های کوچکتر بزرگتر به همراه ORDER BY استفاده کرده ایم (بحث تفصیلی در این خصوص را به آینده موکول می کنیم).<br />
- ملاحظه می کنید که دستورات مربوط به mysql_query در پایگاه داده، بی شباهت به حالت معمول برنامه نویسی با php نیستند.<br />
- دقت کنید که در ارتباط با پایگاه داده توسط php، قبل از همه چیز باید اطلاعات اتصال را فراهم کرده باشید.<br />
نمایش اطلاعات با mysql_fetch_array<br />
<br />
پس از اینکه اطلاعات ستون ها و ردیف های مورد نظر را به متغیر خود نسبت دادیم، باید در یک حلقه while در php با کمک تابع mysql_fetch_array، مقادیر موجود را جایگزین کرده و خروجی دهیم، یا پردازش های دیگری روی آنها صورت دهیم.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">توضیح:<br />
- وظیفه تابع mysql_fetch_array این است که مقادیر برگردانده شده توسط mysql_query که در یک متغیر نگهداری می شود را به صورت آرایه هایی قابل استفاده در php در آورد.<br />
- سپس این آرایه ها با کلید ها و مقادیری در دسترس هستند که در قسمت {} درون حلقه while ملاحظه می کنید.<br />
- در مثال بالا درون قسمت {} در حلقه while، مقادیر داخل [] در واقع همان نام ستون های موجود در پایگاه داده هستند که در هر دور حلقه while تا زمانی که مقادیری برای خروجی دادن وجود داشته باشد، تکرار می شوند.<br />
- به طور ساده کد بالا این طور تفسیر می شود: ابتدا مقادیر query با SELECT * FROM و محدود شده با WHERE به متغیر result تعلق می گیرد، سپس mysql_fetch_array مقادیر موجود در result را به متغیر row اختصاص می دهد، در هر دور حلقه while تا زمانی که آرایه ای وجود داشته باشد (true باشد)، ردیف به ردیف (سطر به سطر) به صورت داینامیک مقادیر موجود در ستون ها با عناوین آنها جایگزین می شود و در قسمت خروجی با دستور echo چاپ می گردند.</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;" class="mycode_align">تا این قسمت از آموزش مقدماتی کار با mysql و کدهای php، دیدیم که چگونه با دستورات مربوط به پایگاه داده در mysql، php را مدیریت کنیم، نحوه اتصال، ساخت دیتابیس، جدول و ردیف با دستور CREATE را فرا گرفتیم و اطلاعات را با INSERT INTO در پایگاه داده خود ذخیره کردیم، همچنین در آموزش قبلی به طور مختصر کلیاتی در رابطه با mysql_query گفتیم و وعده دادیم که در ادامه در این خصوص بیشتر خواهیم گفت، اکنون می خواهیم به وعده خود جامع عمل بپوشانیم و در مورد دستور SELECT FROM در MySQL صحبت کنیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">کاربرد SELECT FROM در MySQL چیست؟</span><br />
<br />
اگر خاطرتان باشد، پیش تر گفتیم که صرف ساخت دیتابیس، جدول و ردیف و وارد کردن اطلاعات در آن، تمام نیازهایمان (و شاید خیلی از نیازهایمان) را پوشش نمی دهد، با این کار، صرفا اطلاعات را دریافت می کنیم، اما اگر بخواهیم از آنها مجددا استفاده نمائیم، نیاز داریم که به کمک PHP موارد را فراخوانی کنیم، این کار در تعامل بین PHP و MySQL توسط SELECT FROM و پارامترهای آن انجام می شود که وظیفه دارد با توجه به نیاز شما و تنظیماتی که انجام داده اید، اطلاعات خاصی را از ردیف های موجود در جداول، فراخوانی کند، تا پردازش روی آنها صورت گرفته و به خروجی ارسال شوند.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">شیوه نگارش (syntax) دستور SELECT FROM در MySQL</span><br />
<br />
شیوه نگارش یا syntax دستور SELECT FROM در MySQL به صورت زیر است.</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
توضیح:<br />
- در مورد mysql_query، قبلا گفته ایم که یک تابع درونی php برای کار با پایگاه داده است و در واقع یک پُرس و جو و عملیات را بین php و mysql مدیریت می کند.<br />
- دستور SELECT FROM با پارامترهای دیگری از جمه WHERE تکمیل می شود که در بحث های بعدی به طور مفصل در این خصوص خواهیم گفت.<br />
- پس از اینکه یک mysql_query با SELECT FROM اجرا شد، بر اساس نوع درخواست و تنظیمات شما، مقادیری برگردانده می شود (این مقادیر می تواند اطلاعات موجود در دیتابیس یا مثلا تعداد ردیف ها و ... باشد)، برای استفاده از این مقادیر بهتر است mysql_query را با یک متغیر فراخوانی کنیم تا اطلاعات در متغیر قابل دسترسی باشد (در ادامه خواهیم دید).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">پارامترهای دستور SELECT FROM در MySQL</span><br />
<br />
SELECT FROM در حالت عادی و بدون وجود پارامترهای محدود کننده، معمولا تمام موارد را از یک جدول برمی گرداند، لذا برای اینکه بتوانیم به دنبال محتوای مخصوصی بگردیم، باید از پارامترهای اضافه استفاده کنیم، یکی از این پارامترها WHERE است که خود زیرمجموعه های دیگری دارد (مثلا استفاده از LIKE و علامت های &lt;،=،&gt; و...)، چون بحث ما به دستور SELECT FROM محدود می شود، موارد پیشرفته تر را که نیاز به دانستن مقدمات بیشتر است، به آینده موکول و در اینجا به ذکر چند مثال بسنده می کنیم.<br />
در مثال های زیر ما با پارامترهای بیشتر، اطلاعاتی دقیق تر از پایگاه داده به دست می آوریم.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<br />
توضیح:<br />
- مقادیر در مثال های بالا کاملا فرضی هستند و صرفا برای آشنایی شما با نحوه نگارش دستورات و پارامترهای SELECT FROM تعریف شده اند.<br />
- همانطور که می بینید برای سه متغیر فرضی name، family و age سه query متفاوت (صرفا جهت مثال) تنظیم کرده ایم.<br />
- به پارامترهایی که بعد از قسمت WHERE آمده اند دقت کنید، در متغیر اول از مقایسه برابری (=) ستون user با مقادیر your name استفاده کرده ایم (یعنی تنها ردیف هایی انتخاب می شوند که نام کاربر your name باشد)، در متغیر دوم از LIKE و LIMIT و در متغیر سوم از علامت های کوچکتر بزرگتر به همراه ORDER BY استفاده کرده ایم (بحث تفصیلی در این خصوص را به آینده موکول می کنیم).<br />
- ملاحظه می کنید که دستورات مربوط به mysql_query در پایگاه داده، بی شباهت به حالت معمول برنامه نویسی با php نیستند.<br />
- دقت کنید که در ارتباط با پایگاه داده توسط php، قبل از همه چیز باید اطلاعات اتصال را فراهم کرده باشید.<br />
نمایش اطلاعات با mysql_fetch_array<br />
<br />
پس از اینکه اطلاعات ستون ها و ردیف های مورد نظر را به متغیر خود نسبت دادیم، باید در یک حلقه while در php با کمک تابع mysql_fetch_array، مقادیر موجود را جایگزین کرده و خروجی دهیم، یا پردازش های دیگری روی آنها صورت دهیم.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">توضیح:<br />
- وظیفه تابع mysql_fetch_array این است که مقادیر برگردانده شده توسط mysql_query که در یک متغیر نگهداری می شود را به صورت آرایه هایی قابل استفاده در php در آورد.<br />
- سپس این آرایه ها با کلید ها و مقادیری در دسترس هستند که در قسمت {} درون حلقه while ملاحظه می کنید.<br />
- در مثال بالا درون قسمت {} در حلقه while، مقادیر داخل [] در واقع همان نام ستون های موجود در پایگاه داده هستند که در هر دور حلقه while تا زمانی که مقادیری برای خروجی دادن وجود داشته باشد، تکرار می شوند.<br />
- به طور ساده کد بالا این طور تفسیر می شود: ابتدا مقادیر query با SELECT * FROM و محدود شده با WHERE به متغیر result تعلق می گیرد، سپس mysql_fetch_array مقادیر موجود در result را به متغیر row اختصاص می دهد، در هر دور حلقه while تا زمانی که آرایه ای وجود داشته باشد (true باشد)، ردیف به ردیف (سطر به سطر) به صورت داینامیک مقادیر موجود در ستون ها با عناوین آنها جایگزین می شود و در قسمت خروجی با دستور echo چاپ می گردند.</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[آشنایی با mysql_query در php و دیتابیس]]></title>
			<link>https://forum.romaak.ir/showthread.php?tid=404</link>
			<pubDate>Mon, 14 Sep 2015 14:53:27 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.romaak.ir/member.php?action=profile&uid=1">saberi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.romaak.ir/showthread.php?tid=404</guid>
			<description><![CDATA[<div style="text-align: justify;" class="mycode_align">تا این مرحله از آموزش مقدماتی کار با php و MySQL، دیدیم که چگونه می توان به کمک دستورات php، دیتابیس، جدول و ردیف ساخت و اطلاعات را در آنها ذخیره نمود، همان طور که در مثال های گذشته اشاره شد، تابع mysql_query، یکی از پرکاربرد ترین توابعی است که در کار با پایگاه داده با آن سر و کار داریم، این تابع به صورت پیش فرض در مفسر php وجود دارد و با پارامترهای آن می توان به راحتی موارد مورد نیاز و منظور خود را به سیستم انتقال داد، در این مطلب می خواهیم نگاهی اجمالی داشته باشیم به نحوه انتخاب و نمایش مطالب از دیتابیس به کمک تابع mysql_query و بحث تفضیلی را به آموزش های بعدی موکول می کنیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">انتخاب اطلاعات از دیتابیس با php و mysql</span><br />
<br />
در کار با سیستم مدیریت پایگاه داده، انتخاب اطلاعات از دیتابیس امری عادی و پرکاربرد است، مثلا اگر بخواهید مطالب خود را به کاربران نشان دهید، باید آنها را از دیتابیس انتخاب و به صفحه مرورگر انتقال دهید، این کار در php و mysql به کمک عنصری به نام SELECT انجام می شود، به همراه این عنصر، باید از FROM نیز استفاده کنیم، به اینصورت به سیستم خواهیم گفت که ما قصد انتخاب از چه جدولی را داریم، برای مثال کد زیر شیوه نگارش یک درخواست از پایگاه داده به کمک SELECT و FROM را نشان می دهید.</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
<span style="font-weight: bold;" class="mycode_b">خروجی اطلاعات از دیتابیس با php و mysql</span><br />
<br />
برای اینکه بتوانیم اطلاعات ارسالی از دیتابیس را در کد php خروجی دهیم به تابع mysql_fetch_array نیاز داریم، ردیف های (سطرهای) انتخاب شده با SELECT و FROM به کمک mysql_fetch_array به صورت آرایه ای از اطلاعات درمی آیند که می توان با شیوه نگارشی زیر از آنها خروجی گرفت.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">در مثال بالا از جدولی فرضی با دو ردیف (ستون) نام و نام خانوادگی، اطلاعات را انتخاب و خروجی داده ایم، درک نحوه کارکرد mysql_fetch_array چندان سخت نیست (در بحث های آینده در این خصوص بیشتر خواهیم گفت)، به طور ساده این تابع اطلاعات ردیف ها را بر اساس SELECT * FROM در خود نگهداری می کند و با متغیر row (عنوانی دلخواه است)، با توجه به مقادیر داخل [] خروجی می دهد.<br />
<br />
اگر موضوع به نظر پیچیده می رسد، عجله نکنید!، این یادداشت صرفا مقدمه ای بود تا شما را با کلیات کار آشنا کند، در آموزش های بعدی با جزئیات بیشتری خواهیم دید که چگونه می توان اطلاعات را از دیتابیس انتخاب و خروجی گرفت.<br />
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;" class="mycode_align">تا این مرحله از آموزش مقدماتی کار با php و MySQL، دیدیم که چگونه می توان به کمک دستورات php، دیتابیس، جدول و ردیف ساخت و اطلاعات را در آنها ذخیره نمود، همان طور که در مثال های گذشته اشاره شد، تابع mysql_query، یکی از پرکاربرد ترین توابعی است که در کار با پایگاه داده با آن سر و کار داریم، این تابع به صورت پیش فرض در مفسر php وجود دارد و با پارامترهای آن می توان به راحتی موارد مورد نیاز و منظور خود را به سیستم انتقال داد، در این مطلب می خواهیم نگاهی اجمالی داشته باشیم به نحوه انتخاب و نمایش مطالب از دیتابیس به کمک تابع mysql_query و بحث تفضیلی را به آموزش های بعدی موکول می کنیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">انتخاب اطلاعات از دیتابیس با php و mysql</span><br />
<br />
در کار با سیستم مدیریت پایگاه داده، انتخاب اطلاعات از دیتابیس امری عادی و پرکاربرد است، مثلا اگر بخواهید مطالب خود را به کاربران نشان دهید، باید آنها را از دیتابیس انتخاب و به صفحه مرورگر انتقال دهید، این کار در php و mysql به کمک عنصری به نام SELECT انجام می شود، به همراه این عنصر، باید از FROM نیز استفاده کنیم، به اینصورت به سیستم خواهیم گفت که ما قصد انتخاب از چه جدولی را داریم، برای مثال کد زیر شیوه نگارش یک درخواست از پایگاه داده به کمک SELECT و FROM را نشان می دهید.</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
<span style="font-weight: bold;" class="mycode_b">خروجی اطلاعات از دیتابیس با php و mysql</span><br />
<br />
برای اینکه بتوانیم اطلاعات ارسالی از دیتابیس را در کد php خروجی دهیم به تابع mysql_fetch_array نیاز داریم، ردیف های (سطرهای) انتخاب شده با SELECT و FROM به کمک mysql_fetch_array به صورت آرایه ای از اطلاعات درمی آیند که می توان با شیوه نگارشی زیر از آنها خروجی گرفت.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">در مثال بالا از جدولی فرضی با دو ردیف (ستون) نام و نام خانوادگی، اطلاعات را انتخاب و خروجی داده ایم، درک نحوه کارکرد mysql_fetch_array چندان سخت نیست (در بحث های آینده در این خصوص بیشتر خواهیم گفت)، به طور ساده این تابع اطلاعات ردیف ها را بر اساس SELECT * FROM در خود نگهداری می کند و با متغیر row (عنوانی دلخواه است)، با توجه به مقادیر داخل [] خروجی می دهد.<br />
<br />
اگر موضوع به نظر پیچیده می رسد، عجله نکنید!، این یادداشت صرفا مقدمه ای بود تا شما را با کلیات کار آشنا کند، در آموزش های بعدی با جزئیات بیشتری خواهیم دید که چگونه می توان اطلاعات را از دیتابیس انتخاب و خروجی گرفت.<br />
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[نحوه ذخیره کردن اطلاعات با دستور INSERT در MySQL]]></title>
			<link>https://forum.romaak.ir/showthread.php?tid=403</link>
			<pubDate>Mon, 14 Sep 2015 14:51:41 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.romaak.ir/member.php?action=profile&uid=1">saberi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.romaak.ir/showthread.php?tid=403</guid>
			<description><![CDATA[<div style="text-align: justify;" class="mycode_align">پس از آشنایی با نحوه ساخت دیتابیس، جدول و ردیف با دستور CREATE در MySQL، اکنون نوبت به فراگیری قابلیتی دیگر از این سیستم مدیریت پایگاه داده است، هدف این آموزش آشنایی شما با نحوه ورود اطلاعات از کدهای PHP به وسلیه دستور INSERT INTO در جداول و ردیف های MySQL است، چرا که صرف ساختن پایگاه داده، جدول و ردیف، کاربردی ندارد و همه ی این مقدمات برای فراهم کردن شرایطی است که بتوانیم اطلاعاتمان را ذخیره سازی و در مواقع لزوم از آنها استفاده نمائیم.<br />
<br />
گفتیم که قبل از انجام هر کاری، ابتدا باید به پایگاه داده متصل شویم، برای این کار از کدی شبیه به مثال زیر استفاده می کنیم:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">حال فرض کنید در پایگاه داده خود، جدولی داریم با نام cars که می خواهیم لیست چند خودرو و رنگ آنها را در ردیف های (ستون های) car و color ذخیره کنیم، ابتدا با دستور CREATE جدول و ردیف هایمان را ایجاد می کنیم:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">توضیح:<br />
- اطلاعات اتصال را باید با توجه به نام کاربری و کلمه عبور پایگاه داده خود تعریف کنید.<br />
- در مثال بالا جدولی با نام cars ساخته ایم و سه ردیف (ستون) در آن ایجاد کرده ایم (id,car,color).<br />
- INT و VARCHAR نوع داده (Data Types) ای هستند که در ردیف ها ذخیره می شوند، این امکان در MySQL وجود دارد که از مقادیری مثل INT برای اعداد، VARCHAR و CHAR برای متن های کوتاه با مقادیر مشخص (که می توانند حاوی اعداد هم باشند)، یا TEXT، MEDIUMTEXT، LONGTEXT برای متن های طولانی و... استفاده کنید.<br />
- مقادیر NOT NULL و AUTO_INCREMENT جزء ویژگی هایی هستند که هر نوع از داده (Data Types)، مقادیر بخصوص خود را می تواند داشته باشد، مثلا برای INT که یک مقدار عددی است خاصیت AUTO_INCREMENT به معنی افزایش خودکار است، یعنی با هر بار Insert اطلاعات در آن جدول، یک مقدار به id ما به طور خودکار اضافه خواهد شد (1، 2، 3 و...).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">افزودن مقادیر با دستور INSERT INTO در دیتابیس</span><br />
<br />
پس از ساختن جدول و ردیف، اکنون می خواهیم نام سه خودرو پیکان سفید رنگ، پژو مشکی و پراید نقره ای را به لیست خود اضافه کنیم، بدین منظور از کدی شبیه به مثال زیر استفاده می کنیم:</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
توضیح:<br />
- دستور INSERT INTO مقادیر را در ردیف های تعیین شده ذخیره می کند (به شیوه نگارش آن دقت کنید).<br />
- در عمل، برنامه نویسان وب معمولا به جای نوشتن مجزای دستور INSERT INTO برای هر مقدار، آن را در حلقه های while یا for قرار می دهند و برای هر مقدار، مقادیر را جایگزین می کنند (درک این مطلب نیاز به دانستن نحوه عملکرد for و while در php است).<br />
- در صورت بروز خطا، ادامه کد با die اجرا نخواهد شد و mysql_error علت خطا را نشان خواهد داد.<br />
- فراموش نکنید که پس از پایان کار، حتما با تابع mysql_close، اتصال به پایگاه داده را خاتمه دهید.</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;" class="mycode_align">پس از آشنایی با نحوه ساخت دیتابیس، جدول و ردیف با دستور CREATE در MySQL، اکنون نوبت به فراگیری قابلیتی دیگر از این سیستم مدیریت پایگاه داده است، هدف این آموزش آشنایی شما با نحوه ورود اطلاعات از کدهای PHP به وسلیه دستور INSERT INTO در جداول و ردیف های MySQL است، چرا که صرف ساختن پایگاه داده، جدول و ردیف، کاربردی ندارد و همه ی این مقدمات برای فراهم کردن شرایطی است که بتوانیم اطلاعاتمان را ذخیره سازی و در مواقع لزوم از آنها استفاده نمائیم.<br />
<br />
گفتیم که قبل از انجام هر کاری، ابتدا باید به پایگاه داده متصل شویم، برای این کار از کدی شبیه به مثال زیر استفاده می کنیم:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">حال فرض کنید در پایگاه داده خود، جدولی داریم با نام cars که می خواهیم لیست چند خودرو و رنگ آنها را در ردیف های (ستون های) car و color ذخیره کنیم، ابتدا با دستور CREATE جدول و ردیف هایمان را ایجاد می کنیم:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">توضیح:<br />
- اطلاعات اتصال را باید با توجه به نام کاربری و کلمه عبور پایگاه داده خود تعریف کنید.<br />
- در مثال بالا جدولی با نام cars ساخته ایم و سه ردیف (ستون) در آن ایجاد کرده ایم (id,car,color).<br />
- INT و VARCHAR نوع داده (Data Types) ای هستند که در ردیف ها ذخیره می شوند، این امکان در MySQL وجود دارد که از مقادیری مثل INT برای اعداد، VARCHAR و CHAR برای متن های کوتاه با مقادیر مشخص (که می توانند حاوی اعداد هم باشند)، یا TEXT، MEDIUMTEXT، LONGTEXT برای متن های طولانی و... استفاده کنید.<br />
- مقادیر NOT NULL و AUTO_INCREMENT جزء ویژگی هایی هستند که هر نوع از داده (Data Types)، مقادیر بخصوص خود را می تواند داشته باشد، مثلا برای INT که یک مقدار عددی است خاصیت AUTO_INCREMENT به معنی افزایش خودکار است، یعنی با هر بار Insert اطلاعات در آن جدول، یک مقدار به id ما به طور خودکار اضافه خواهد شد (1، 2، 3 و...).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">افزودن مقادیر با دستور INSERT INTO در دیتابیس</span><br />
<br />
پس از ساختن جدول و ردیف، اکنون می خواهیم نام سه خودرو پیکان سفید رنگ، پژو مشکی و پراید نقره ای را به لیست خود اضافه کنیم، بدین منظور از کدی شبیه به مثال زیر استفاده می کنیم:</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
توضیح:<br />
- دستور INSERT INTO مقادیر را در ردیف های تعیین شده ذخیره می کند (به شیوه نگارش آن دقت کنید).<br />
- در عمل، برنامه نویسان وب معمولا به جای نوشتن مجزای دستور INSERT INTO برای هر مقدار، آن را در حلقه های while یا for قرار می دهند و برای هر مقدار، مقادیر را جایگزین می کنند (درک این مطلب نیاز به دانستن نحوه عملکرد for و while در php است).<br />
- در صورت بروز خطا، ادامه کد با die اجرا نخواهد شد و mysql_error علت خطا را نشان خواهد داد.<br />
- فراموش نکنید که پس از پایان کار، حتما با تابع mysql_close، اتصال به پایگاه داده را خاتمه دهید.</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[نگاهی به MySQL، پرکاربردترین سیستم مدیریت پایگاه داده]]></title>
			<link>https://forum.romaak.ir/showthread.php?tid=412</link>
			<pubDate>Mon, 14 Sep 2015 14:48:28 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.romaak.ir/member.php?action=profile&uid=1">saberi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.romaak.ir/showthread.php?tid=412</guid>
			<description><![CDATA[<div style="text-align: justify;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">نگاهی به MySQL، پرکاربردترین سیستم مدیریت پایگاه داده</span><br />
<br />
یکی از پرکاربردترین سیستم های مدیریت پایگاه داده که تقریبا در وب رقیبی ندارد، MySQL است؛ تا حدی که امروزه سایتهای بزرگ و معروف نیز از آن استفاده می کنند، فلسفه پیدایش این سیستم جهت تسهیل دسته بندی یکپارچه و منظم اطلاعات و دسترسی آسان تر به آنها است، مخصوصا اگر مطالب و محتوای سایتی مرتب به روز شود، نیاز به پایگاه داده کاملا احساس می شود؛ هر چند فراگیری زبان های برنامه نویسی وب به خودی خود مهم و ضروری است اما امروزه دیگر آموختن MySQL جزء جدا ناپذیری از این مجموعه شده است، خوشبختانه با تسلط نسبی بر روی PHP می توان در مدت کوتاهی نکات ضروری MySQL را فراگرفت و البته مسلما گسترده گی و تنوع قابلیت های سیستم و فراوانی نیازهای کاربران، کمی کار را پیچیده و مشکل می کند.<br />
<span style="font-weight: bold;" class="mycode_b">دسته بندی اطلاعات در پایگاه داده</span><br />
<br />
شیوه کلی دسته بندی اطلاعات در پایگاه داده بر اساس جداول و فیلد هاست، به عنوان مثال فرض کنید می خواهیم اسامی دانش آموزان یک مدرسه را بر اساس سن در جداول مختلف نگهداری  و در صورت نیاز به آنها دسترسی پیدا کنیم، در یک بیان ساده می توانیم چند جدول کلی ایجاد کنیم با عناوینی مربوط به سن آنها (مثلا ردیف سنی 8 تا 10 سال و...) حال در هر جدول اطلاعات مربوط به هر دانش آموز را در ردیف های مشخصی وارد می کنیم (مثلا در جدول 8 تا 10 سال برای هر دانش آموز یک ردیف می سازیم و اطلاعات را وارد می کنیم، فرضا نام: احمد، سن: 8 سال، محل سکونت: تهران و...)؛ پس از ثبت اطلاعات بعدها می توانیم بر اساس نیازمان آنها را فراخوانی کنیم یا دسته بندی کرده و به نمایش دربیاوریم و یا پردازش کنیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">مدیریت پایگاه داده با PHPMyAdmin و PHP</span><br />
<br />
خوشبختانه در اکثر سرورها به همراه MySQL برنامه ی PHPMyAdmin نیز وجود دارد که به کمک آن به راحتی می توانید دستورات مروبط به پایگاه داده را اجرا کنید، به فرض پایگاه جدیدی ایجاد کنید، جداول بسازید، جداول را ستون بندی کرده، ردیف های دلخواه ایجاد و مدیریت کنید، یونیکدها را تغییر دهید و... نکته مهم تر از این، قابلیت کنترل پایگاه داده از طریق دستورات PHP است، خوشبختانه php تقریبا امکانات کاملی را در این خصوص در اختیارمان قرار می دهد، نتیجه اینکه برنامه PHPMyAdmin کار مدیریت مستقیم (با محیط کاربری) پایگاه داده را تسهیل می کند، اما در کدنویسی و برنامه های کاربردی، باید از php استفاده کنیم؛ برای آشنایی بیشتر از بحث تئوری می گذریم و برای شروع، توجه شما را به چند مثال جلب می کنیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ارتباط پایگاه داده با php</span><br />
<br />
برای اینکه بتوانیم با پایگاه داده ارتباط بر قرار کنیم قبل از هر چیز باید یوزر و پسورد (نام کاربری و کلمه عبور) و همچنین پایگاه داده ایجاد کنیم، انجام این کار در قسمت مربوط به پایگاه داده و برنامه PHPMyAdmin یا به صورت کدهای php ممکن است (در سرور یا در لوکال هاست)  اکنون همه چیز آماده است تا با کد php پایگاه داده را مدیریت نمائیم.<br />
کد زیر مثالی برای ایجاد ارتباط با پایگاه داده است:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">اطلاعات پایگاه خود را در مقادیر مشخص شده وارد می کنیم، به جای یوزر نام کاربری، در قسمت پسورد کلمه عبور و در قسمت db نام پایگاه داده (دیتابیس) را می نویسیم، اگر همه چیز درست باشد پیام "ارتباط برقرار شد" و "ارتباط با پایگاه داده برقرار شد" را در خروجی خواهیم داشت در غیر این صورت قسمت or die اجرا شده و خطای مربوطه نشان داده می شود؛ نهایتا نیز با دستور mysql_close به ارتباط پایان می دهیم.<br />
<br />
اکنون فرض کنید قصد داریم جدولی با نام school و سه فیلد (ستون) ایجاد کنیم، برای این کار از کد زیر استفاده می نمائیم:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">توضیح:<br />
- mysql_query یک دستور مربوط به پایگاه داده را برایمان اجرا می کند.<br />
- CREATE TABLE یکی از query های mysql است که یک جدول و ستون های آن را ایجاد می نماید.<br />
- در کد بالا ردیف (ستون) id با مقادیر INT (عدد صحيح) و NOT NULL (در صورت خالی بودن، بی مصرف نیست) و AUTO_INCREMENT (عملکرد افزایش خودکار) ایجاد می شود و ویژگی کلید اولیه را به آن می دهیم (در این باره بعدا بیشتر خواهیم گفت).<br />
- دو فیلد name و age با خاصیت VARCHAR ایجاد شده اند که مقدار حداکثر مجاز کاراکتر را در خود دارند.<br />
تا اینجا صرفا جهت آشنایی با شیوه نگارش دستوارت mysql و نحوه ارتباط آن با php مثال هایی را ذکر کردیم، درک کامل نحوه عملکرد mysql، نیاز به بررسی مثال ها و مباحث آموزشی بیشتری دارد که در مطالب بعدی به جزئیات و قابلیت های گوناگون آن خواهیم پرداخت.<br />
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">نگاهی به MySQL، پرکاربردترین سیستم مدیریت پایگاه داده</span><br />
<br />
یکی از پرکاربردترین سیستم های مدیریت پایگاه داده که تقریبا در وب رقیبی ندارد، MySQL است؛ تا حدی که امروزه سایتهای بزرگ و معروف نیز از آن استفاده می کنند، فلسفه پیدایش این سیستم جهت تسهیل دسته بندی یکپارچه و منظم اطلاعات و دسترسی آسان تر به آنها است، مخصوصا اگر مطالب و محتوای سایتی مرتب به روز شود، نیاز به پایگاه داده کاملا احساس می شود؛ هر چند فراگیری زبان های برنامه نویسی وب به خودی خود مهم و ضروری است اما امروزه دیگر آموختن MySQL جزء جدا ناپذیری از این مجموعه شده است، خوشبختانه با تسلط نسبی بر روی PHP می توان در مدت کوتاهی نکات ضروری MySQL را فراگرفت و البته مسلما گسترده گی و تنوع قابلیت های سیستم و فراوانی نیازهای کاربران، کمی کار را پیچیده و مشکل می کند.<br />
<span style="font-weight: bold;" class="mycode_b">دسته بندی اطلاعات در پایگاه داده</span><br />
<br />
شیوه کلی دسته بندی اطلاعات در پایگاه داده بر اساس جداول و فیلد هاست، به عنوان مثال فرض کنید می خواهیم اسامی دانش آموزان یک مدرسه را بر اساس سن در جداول مختلف نگهداری  و در صورت نیاز به آنها دسترسی پیدا کنیم، در یک بیان ساده می توانیم چند جدول کلی ایجاد کنیم با عناوینی مربوط به سن آنها (مثلا ردیف سنی 8 تا 10 سال و...) حال در هر جدول اطلاعات مربوط به هر دانش آموز را در ردیف های مشخصی وارد می کنیم (مثلا در جدول 8 تا 10 سال برای هر دانش آموز یک ردیف می سازیم و اطلاعات را وارد می کنیم، فرضا نام: احمد، سن: 8 سال، محل سکونت: تهران و...)؛ پس از ثبت اطلاعات بعدها می توانیم بر اساس نیازمان آنها را فراخوانی کنیم یا دسته بندی کرده و به نمایش دربیاوریم و یا پردازش کنیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">مدیریت پایگاه داده با PHPMyAdmin و PHP</span><br />
<br />
خوشبختانه در اکثر سرورها به همراه MySQL برنامه ی PHPMyAdmin نیز وجود دارد که به کمک آن به راحتی می توانید دستورات مروبط به پایگاه داده را اجرا کنید، به فرض پایگاه جدیدی ایجاد کنید، جداول بسازید، جداول را ستون بندی کرده، ردیف های دلخواه ایجاد و مدیریت کنید، یونیکدها را تغییر دهید و... نکته مهم تر از این، قابلیت کنترل پایگاه داده از طریق دستورات PHP است، خوشبختانه php تقریبا امکانات کاملی را در این خصوص در اختیارمان قرار می دهد، نتیجه اینکه برنامه PHPMyAdmin کار مدیریت مستقیم (با محیط کاربری) پایگاه داده را تسهیل می کند، اما در کدنویسی و برنامه های کاربردی، باید از php استفاده کنیم؛ برای آشنایی بیشتر از بحث تئوری می گذریم و برای شروع، توجه شما را به چند مثال جلب می کنیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ارتباط پایگاه داده با php</span><br />
<br />
برای اینکه بتوانیم با پایگاه داده ارتباط بر قرار کنیم قبل از هر چیز باید یوزر و پسورد (نام کاربری و کلمه عبور) و همچنین پایگاه داده ایجاد کنیم، انجام این کار در قسمت مربوط به پایگاه داده و برنامه PHPMyAdmin یا به صورت کدهای php ممکن است (در سرور یا در لوکال هاست)  اکنون همه چیز آماده است تا با کد php پایگاه داده را مدیریت نمائیم.<br />
کد زیر مثالی برای ایجاد ارتباط با پایگاه داده است:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">اطلاعات پایگاه خود را در مقادیر مشخص شده وارد می کنیم، به جای یوزر نام کاربری، در قسمت پسورد کلمه عبور و در قسمت db نام پایگاه داده (دیتابیس) را می نویسیم، اگر همه چیز درست باشد پیام "ارتباط برقرار شد" و "ارتباط با پایگاه داده برقرار شد" را در خروجی خواهیم داشت در غیر این صورت قسمت or die اجرا شده و خطای مربوطه نشان داده می شود؛ نهایتا نیز با دستور mysql_close به ارتباط پایان می دهیم.<br />
<br />
اکنون فرض کنید قصد داریم جدولی با نام school و سه فیلد (ستون) ایجاد کنیم، برای این کار از کد زیر استفاده می نمائیم:<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">توضیح:<br />
- mysql_query یک دستور مربوط به پایگاه داده را برایمان اجرا می کند.<br />
- CREATE TABLE یکی از query های mysql است که یک جدول و ستون های آن را ایجاد می نماید.<br />
- در کد بالا ردیف (ستون) id با مقادیر INT (عدد صحيح) و NOT NULL (در صورت خالی بودن، بی مصرف نیست) و AUTO_INCREMENT (عملکرد افزایش خودکار) ایجاد می شود و ویژگی کلید اولیه را به آن می دهیم (در این باره بعدا بیشتر خواهیم گفت).<br />
- دو فیلد name و age با خاصیت VARCHAR ایجاد شده اند که مقدار حداکثر مجاز کاراکتر را در خود دارند.<br />
تا اینجا صرفا جهت آشنایی با شیوه نگارش دستوارت mysql و نحوه ارتباط آن با php مثال هایی را ذکر کردیم، درک کامل نحوه عملکرد mysql، نیاز به بررسی مثال ها و مباحث آموزشی بیشتری دارد که در مطالب بعدی به جزئیات و قابلیت های گوناگون آن خواهیم پرداخت.<br />
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ساخت دیتابیس، جدول و ردیف با دستور CREATE در MySQL]]></title>
			<link>https://forum.romaak.ir/showthread.php?tid=401</link>
			<pubDate>Mon, 14 Sep 2015 14:45:42 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.romaak.ir/member.php?action=profile&uid=1">saberi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.romaak.ir/showthread.php?tid=401</guid>
			<description><![CDATA[<div style="text-align: justify;" class="mycode_align">در بخش آموزش مقدماتی MySQL و در مطلب گذشته با کلیاتی از پرکاربرد ترین سیستم مدیریت پایگاه داده یعنی MySQL آشنا شدیم، گفتیم که دستورات مربوط به پایگاه داده از طریق برنامه phpMyAdmin به طور مستقیم قابل اعمال هستند و از طرفی کدهای php قابلیت های فراوانی برای مدیریت و اعمال همان دستورات در اختیارمان می گذارند، از آنجایی که یک برنامه خوب بیشتر تکیه بر کدها و ابزار های داینامیک دارد، لذا ما از طرح مباحث مربوط به phpMyAdmin می گذریم و به نحوه اجرای دستورات در php می پردازیم، در این مطلب نیز می خواهیم در رابطه با آموزش ساخت دیتابیس، جدول و ردیف با دستور CREATE در MySQL صحبت کنیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ساخت دیتابیس با دستور CREATE</span><br />
<br />
اگر چه ساخت دستی دیتابیس با برنامه phpMyAdmin بیشتر کاربرد دارد، اما کدهای PHP نیز این قابلیت را با دستور CREATE DATABASE دارا هستند.</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
توضیح:<br />
- پیش از اجرای هر دستوری، ابتدا باید به MySQL متصل شویم.<br />
- mysql_connect، mysql_error، mysql_query و mysql_close از توابع درونی php هستند که برای کار با پایگاه داده مورد استفاده قرار می گیرند.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ساخت جدول و چند ردیف (ستون) با دستور CREATE</span><br />
<br />
پس از ساختن دیتابیس نوبت به ایجاد جداول و ردیف ها است که این کار با دستور CREATE TABLE انجام می شود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">توضیح:<br />
- در کد بالا ما query ساخت یک جدول با دو ردیف (ستون) id و table را اجرا کردیم و به هر کدام ویژگی هایی را نسبت دادیم.<br />
- INT و VARCHAR نشان دهنده نوع داده ای است که در آن ردیف (ستون) ذخیره می شود.<br />
- ENGINE=MyISAM برای قرار دادن موتور MyISAM به صورت پیش فرض برای جدولی است که ایجاد می کنیم (در برخی نسخه ها به صورت TYPE=MyISAM قابل قبول است)، برخی نسخه های MySQL به جای MyISAM از موتور INNODB به صورت پیش فرض استفاده می کنند. <br />
<br />
<span style="font-weight: bold;" class="mycode_b">تغییر یونیکد به UTF8 برای کار با داده های زبان فارسی با دستور ALTER TABLE</span><br />
<br />
برای اینکه بتوانیم داده های خود را به زبان فارسی به درستی در دیتابیس ذخیره و بازیابی کنیم، توصیه می شود همواره از یونیکد استاندارد UTF8 استفاده کنید، لذا بعد از ایجاد جدول تکه کد زیر را هم در ادامه، برای آن جدول اجرا نمائید.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">توضیح:<br />
- ALTER TABLE یک دستور ثانویه است که می توانید به کمک آن روی جداول موجود تغییراتی اعمال نمائید یا به فرض آنها را حذف کنید.<br />
- DEFAULT CHARACTER SET به همراه COLLATE utf8_general_ci، یونیکد پیش فرض یک جدول و ستون های زیر مجموعه آن را تغییر می دهد.<br />
- پس از اینکه یونیکد را بر روی UTF8 تنظیم کردیم برای ارتباط صحیح و مقایسه یکسان کاراکترها باید از COLLATE و قانون utf8_general_ci استفاده کنیم که در مثال بالا این کار انجام شده است.</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;" class="mycode_align">در بخش آموزش مقدماتی MySQL و در مطلب گذشته با کلیاتی از پرکاربرد ترین سیستم مدیریت پایگاه داده یعنی MySQL آشنا شدیم، گفتیم که دستورات مربوط به پایگاه داده از طریق برنامه phpMyAdmin به طور مستقیم قابل اعمال هستند و از طرفی کدهای php قابلیت های فراوانی برای مدیریت و اعمال همان دستورات در اختیارمان می گذارند، از آنجایی که یک برنامه خوب بیشتر تکیه بر کدها و ابزار های داینامیک دارد، لذا ما از طرح مباحث مربوط به phpMyAdmin می گذریم و به نحوه اجرای دستورات در php می پردازیم، در این مطلب نیز می خواهیم در رابطه با آموزش ساخت دیتابیس، جدول و ردیف با دستور CREATE در MySQL صحبت کنیم.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ساخت دیتابیس با دستور CREATE</span><br />
<br />
اگر چه ساخت دستی دیتابیس با برنامه phpMyAdmin بیشتر کاربرد دارد، اما کدهای PHP نیز این قابلیت را با دستور CREATE DATABASE دارا هستند.</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
<div style="text-align: justify;" class="mycode_align">
توضیح:<br />
- پیش از اجرای هر دستوری، ابتدا باید به MySQL متصل شویم.<br />
- mysql_connect، mysql_error، mysql_query و mysql_close از توابع درونی php هستند که برای کار با پایگاه داده مورد استفاده قرار می گیرند.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ساخت جدول و چند ردیف (ستون) با دستور CREATE</span><br />
<br />
پس از ساختن دیتابیس نوبت به ایجاد جداول و ردیف ها است که این کار با دستور CREATE TABLE انجام می شود.<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">توضیح:<br />
- در کد بالا ما query ساخت یک جدول با دو ردیف (ستون) id و table را اجرا کردیم و به هر کدام ویژگی هایی را نسبت دادیم.<br />
- INT و VARCHAR نشان دهنده نوع داده ای است که در آن ردیف (ستون) ذخیره می شود.<br />
- ENGINE=MyISAM برای قرار دادن موتور MyISAM به صورت پیش فرض برای جدولی است که ایجاد می کنیم (در برخی نسخه ها به صورت TYPE=MyISAM قابل قبول است)، برخی نسخه های MySQL به جای MyISAM از موتور INNODB به صورت پیش فرض استفاده می کنند. <br />
<br />
<span style="font-weight: bold;" class="mycode_b">تغییر یونیکد به UTF8 برای کار با داده های زبان فارسی با دستور ALTER TABLE</span><br />
<br />
برای اینکه بتوانیم داده های خود را به زبان فارسی به درستی در دیتابیس ذخیره و بازیابی کنیم، توصیه می شود همواره از یونیکد استاندارد UTF8 استفاده کنید، لذا بعد از ایجاد جدول تکه کد زیر را هم در ادامه، برای آن جدول اجرا نمائید.</div>
<br />
<div style="text-align: justify;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *</span></span></div>
</div>
<div style="text-align: justify;" class="mycode_align">توضیح:<br />
- ALTER TABLE یک دستور ثانویه است که می توانید به کمک آن روی جداول موجود تغییراتی اعمال نمائید یا به فرض آنها را حذف کنید.<br />
- DEFAULT CHARACTER SET به همراه COLLATE utf8_general_ci، یونیکد پیش فرض یک جدول و ستون های زیر مجموعه آن را تغییر می دهد.<br />
- پس از اینکه یونیکد را بر روی UTF8 تنظیم کردیم برای ارتباط صحیح و مقایسه یکسان کاراکترها باید از COLLATE و قانون utf8_general_ci استفاده کنیم که در مثال بالا این کار انجام شده است.</div>]]></content:encoded>
		</item>
	</channel>
</rss>