PDA

View Full Version : فرق دو تابع



cpuram
سه شنبه 07 آبان 1392, 13:07 عصر
سلام لطفا بفرمائید
فرق mysql_fetch_assoc و mysql_fetch_array چی هست؟

Reza1607
سه شنبه 07 آبان 1392, 13:26 عصر
تابع mysql_fetch_assoc رکورد رو به صورت یک آرایه برمیگردونه که اندیس های این آرایه نام فیلد ها هست
اما تابع mysql_fetch_array رکورد رو به صورت یک آرایه برمیگردونه که اندیس های این آرایه عدد هستند و از 0 شروع میشن

Tarragon
سه شنبه 07 آبان 1392, 14:15 عصر
در ضمن بیشتر جاها mysql_fetch_assoc پیشنهاد شده.

cpuram
سه شنبه 07 آبان 1392, 14:19 عصر
در ضمن بیشتر جاها mysql_fetch_assoc پیشنهاد شده.
بله منم خودم از mysql_fetch_assoc استفاده میکنم ولی خواستم بدونم فرقشون چیه شاید مزیتی داشته باشه.

shahriyar3
سه شنبه 07 آبان 1392, 14:33 عصر
تابع mysql_fetch_assoc رکورد رو به صورت یک آرایه برمیگردونه که اندیس های این آرایه نام فیلد ها هست
اما تابع mysql_fetch_array رکورد رو به صورت یک آرایه برمیگردونه که اندیس های این آرایه عدد هستند و از 0 شروع میشن
به نظرم اشتباه میکنی
mysql_fetch_array خروجیش یک آرایه 2 بعدی شامل عدد ردیف های جدول و اسم فیلد ها هست
اون که شما میگی فقط عدد بر میگردونه mysql_fetch_row هست
mysql_fetch_assoc هم یک آرایه از نام فیلد ها برمیگردونه
...

Tarragon
سه شنبه 07 آبان 1392, 14:48 عصر
شما خودتون اینجا (http://stackoverflow.com/questions/11480129/mysql-fetch-row-vs-mysql-fetch-assoc-vs-mysql-fetch-array) رو ببینید ببینید خودشون چی گفتن.

MMSHFE
سه شنبه 07 آبان 1392, 14:48 عصر
دوستان لطفاً صحیح راهنمایی کنید:
1- mysql_fetch_row یک آرایه با اندیس عددی برمیگردونه که فیلدهای انتخابی، به ترتیب خونه های 0 و 1 و 2 و... رو مشخص میکنن.
2- mysql_fetch_assoc یک آرایه با اندیس رشته ای برمیگردونه که فیلدهای انتخابی به ترتیب در اندیسهایی همنام با اسم فیلد قرار میگیرن (name و id و...)
3- mysql_fetch_array یک آرایه با حجم دو برابر دستورات قبلی برمیگردونه که فیلدها هم با اندیس عددی (0 و 1 و 2 و...) و هم با کمک اسامی (name و id و...) قابل دسترسی هستن
4- mysql_fetch_object یک شئ برمیگردونه که فیلدها، propertyهای اون هستن (obj->name$ و...) و بیشتر در کاربردهای شئ گرا مفیده
اینکه کدوم رو بکار ببرین، بستگی به نیازتون داره ولی اکثراً استفاده از mysql_fetch_array بدلیل مصرف دوبرابر حافظه، توصیه نمیشه.

hamedarian2009
سه شنبه 07 آبان 1392, 18:22 عصر
سلام
ما دونوع آرایه داریم 1-انجمنی 2-شمارشی
حالا اگه بدونبم آرایه ما انجمنی است از تابع mysql_fetch_assoc برای واکشی اطلاعات استفاده می کنیم اما اگه ندونیم از تابع mysql_fetch_array استفاده می کنیم که قطعا دومی دوبرابر اولی نیاز به زمان برای اجرا خواهد داشت

cpuram
سه شنبه 07 آبان 1392, 21:50 عصر
سلام
ما دونوع آرایه داریم 1-انجمنی 2-شمارشی
حالا اگه بدونبم آرایه ما انجمنی است از تابع mysql_fetch_assoc برای واکشی اطلاعات استفاده می کنیم اما اگه ندونیم از تابع mysql_fetch_array استفاده می کنیم که قطعا دومی دوبرابر اولی نیاز به زمان برای اجرا خواهد داشت
تشکر.
متوجه
1-انجمنی 2-شمارشی نشدم.میشه بیشتر توضیح بدید؟

MMSHFE
چهارشنبه 08 آبان 1392, 09:29 صبح
آرایه شمارشی (Enumerational) به آرایه ای میگن که اندیسهاش عددیه (0 و 1 و 2 و 3 و...) - مزیت اصلی: استفاده راحت در حلقه هایی مثل for و...
آرایه انجمنی (Associative) به آرایه ای میگن که اندیسهاش رشته است (name و id و...) - مزیت اصلی: دسترسی مستقیم به هر عنصر بدون نیاز به دونستن ترتیب عناصر

skyzare
جمعه 03 شهریور 1396, 15:51 عصر
2- mysql_fetch_assoc یک آرایه با اندیس رشته ای برمیگردونه که فیلدهای انتخابی به ترتیب در اندیسهایی همنام با اسم فیلد قرار میگیرن (name و id و...)
3- mysql_fetch_array یک آرایه با حجم دو برابر دستورات قبلی برمیگردونه که فیلدها هم با اندیس عددی (0 و 1 و 2 و...) و هم با کمک اسامی (name و id و...) قابل دسترسی هستن
اینکه کدوم رو بکار ببرین، بستگی به نیازتون داره ولی اکثراً استفاده از mysql_fetch_array بدلیل مصرف دوبرابر حافظه، توصیه نمیشه.

سلام . درست هست ... داخل این مثال به وضوح تفاوت مشخص هست :

در این برنامه ساده زیر student یک جدول در پایگاه داده است اگر از تابع mysql_fetch_array استفاده کنیم یعنی :



$r=mysql_query("select * from student");
while($row = mysql_fetch_array($r)){ echo '<pre>';
print_r($row); echo '<pre>';}

در این حالت خروجی به صورت زیر است :



146132

و همان طور که گفته شده بود :

فیلدها هم با اندیس عددی (0 و 1 و 2 و...) و هم با کمک اسامی (name و id و...) قابل دسترسی هستن

فیلدها با هر دو قابل دسترسی هستند ....




******************************************

اما اگر در دستور بالا به جای mysql_fetch_array از تابع mysql_fetch_assoc استفاده شود





$r=mysql_query("select * from student");
while($row = mysql_fetch_assoc($r)){ echo '<pre>';
print_r($row); echo '<pre>';}



خروجی به صورت زیر خواهد بود




146133