View Full Version : توضیح درمورد تابع mysql_fetch_array
poozhan
یک شنبه 29 شهریور 1388, 21:18 عصر
سلام
خسته نباشید
کسی میتونه یه توضیح نسبتا کاملی در مورد تابع های زیر بده توی نتگشتم ولی چیزی که بدردم بخوره پیدا نکردم
cmysql_fetch_array
mysql_fetch_assoc
mrrajabi
دوشنبه 30 شهریور 1388, 12:31 عصر
اینا مقدار برگشتیشون یک آرایه هست که نام هر خانه آرایه نام همان فیلد جدول شما است. fetch_array شامل اندیس های عدد و نام فیلد می باشد در حالیکه fetch_assoc آرایه انجمنی هست, یعنی فقط حاوی نام فیلد است.
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf ("ID: %s Name: %s", $row[0], $row["name"]);
}
mysql_free_result($result);
?>
<?php
$conn = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}
if (!mysql_select_db("mydbname")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}
$sql = "SELECT id as userid, fullname, userstatus
FROM sometable
WHERE userstatus = 1";
$result = mysql_query($sql);
if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
// then create $userid, $fullname, and $userstatus
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}
mysql_free_result($result);
?>
poozhan
دوشنبه 30 شهریور 1388, 21:13 عصر
ممنون
توضیح کاملی بود
ولی یکم دیگه مشکل دارم
فرض کنید ما یه جدول داریم
=============
| user | pass |
=============
| mojtaba |12345|
=============
ali | 25412 |
=============
|mahdi |...... |
=============
حالا میخواستم اگه مشکلی نیست یه توضیحی برام بدید
ما با دستور fetch_array این جدول رو داخل یک آرایه میریزیم درسته؟
بعد من گیج شدم سر اینکه حلقه while چطوری داخل این ارایه میچرخه و عملیات رو انجام میده
چون من با این حلقه یکم مشکل دارم اگه میشه یکم توضیح بدید
و اینکه این کار رو میشه با حلقه for انجام داد؟
ممنون میشم
afi_program
دوشنبه 30 شهریور 1388, 22:03 عصر
وقتی کوئری زدی حاصل رو توی یک متغیر میریزی .ازتابع mysql_num_array() با پارامتر همون متغیر قبلی فراخوانی کن حالا یک حلقه به تعداد برگشتی از این تابع داشته باش و هربار حاصل تابعmysql_fetch_array با مقدار برگشتی کوئری توی یک متغیردیگه که در اصل یک آرایه است بریز حالا مقادیر مربوطه با حفظ ترتیب توی دیتابیس در اندیس های آرایه هستن(اندیس ها از 0 شروع میشن).
موفق باشی
poozhan
دوشنبه 30 شهریور 1388, 22:18 عصر
وقتی کوئری زدی حاصل رو توی یک متغیر میریزی .ازتابع mysql_num_array() با پارامتر همون متغیر قبلی فراخوانی کن حالا یک حلقه به تعداد برگشتی از این تابع داشته باش و هربار حاصل تابعmysql_fetch_array با مقدار برگشتی کوئری توی یک متغیردیگه که در اصل یک آرایه است بریز حالا مقادیر مربوطه با حفظ ترتیب توی دیتابیس در اندیس های آرایه هستن(اندیس ها از 0 شروع میشن).
موفق باشی
ممنون
ولی یا من خیلی گیجم یا نمیدونم دیگه چی
اگه میشه سوال دوم منو یک بار دیگه بخونید شاید یه پست جدید بزنید که شاید من بهتر بفهمم
ممنون میشم
afi_program
دوشنبه 30 شهریور 1388, 23:03 عصر
با توجه به چیزی که من گفتم از for استفاده میشه(فرقی نمیکنه از چه حلقه ای).
$query="کوئری مربوط به کاری که میخوا انجام بدی'";
$result=ExecuteQuery($query);
$num=mysql_num_rows($result);
for($i=1;$i<=$num;$i++){
$row = mysql_fetch_array($result);
}
امیدوارم متوجه حرف همدیگه شده باشیم.
موفق باشی
afi_program
دوشنبه 30 شهریور 1388, 23:07 عصر
حالا توی متغیر rowاگه اندیس را برابر 0 یا user (اگه کوئری توی جدول اول انجام شده باشه و همه مقادیر را select کرده باشی)قرار بدی مقادیر داده ها موجود در user توی دیتابیس را بهت نشون میده.
موفق باشی
poozhan
دوشنبه 30 شهریور 1388, 23:23 عصر
حالا توی متغیر rowاگه اندیس را برابر 0 یا user (اگه کوئری توی جدول اول انجام شده باشه و همه مقادیر را select کرده باشی)قرار بدی مقادیر داده ها موجود در user توی دیتابیس را بهت نشون میده.
موفق باشی
خیلی ممنون داداش
توضیحتون خیلی خوب بود فکر کنم دیگه مشکلم حل شده باشه
بازم ممنون
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.