PDA

View Full Version : سوال: راهنمایی در مورد حلقه while



reza_alie
سه شنبه 01 اردیبهشت 1394, 16:41 عصر
سلام خدمت دوستان من یک نمونه کد تقریبا ساختارش مثل زیر هست وقتی اجرا می کنم اخطار زیرو میده بنظرتون چی کار کنم؟


while($row=mysql_fetch_assoc($sql))
{
function test($In,$d,$q)
{
//my code
}
echo test($a,$b,$c)
}


ارووووووووووور:
Fatal error: Cannot redeclare array_element() (previously declared in C:\xampp\htdocs\RezaAli\process.php:54) in C:\xampp\htdocs\RezaAli\process.php on line 54

MMSHFE
سه شنبه 01 اردیبهشت 1394, 16:59 عصر
بهتره تابع رو داخل حلقه تعریف نکنید. الان کد داخل حلقه میخواد به تعداد رکوردها تکرار بشه و هربار تابعی با همون نام قبلی تعریف کنه.

reza_alie
سه شنبه 01 اردیبهشت 1394, 17:01 عصر
چون یک سری اطلاعات از دیتابیس خونده می شه و وارد تابع میشه و یکسری کارهایی روی اون انجام می شه

MMSHFE
سه شنبه 01 اردیبهشت 1394, 17:02 عصر
تابع رو بیرون تعریف کنید و داخل، صدا بزنید.

reza_alie
سه شنبه 01 اردیبهشت 1394, 17:03 عصر
معذرت می خوام میشه یک مثال کوتاه بزنید؟

MMSHFE
سه شنبه 01 اردیبهشت 1394, 17:06 عصر
function test($a, $b, $c)
{
echo '<p>ID: ' . $a . '</p>' . PHP_EOL;
echo '<p>Name: ' . $b . '</p>' . PHP_EOL;
echo '<p>Grade: ' . $c . '</p>' . PHP_EOL;
echo '<hr />' . PHP_EOL;
}

while($row = mysql_fetch_assoc($sql))
{
test($row['id'], $row['name'], $row['grade']);
}

reza_alie
سه شنبه 01 اردیبهشت 1394, 17:11 عصر
باتشکر از استاد
درست کردم البته حلقه رو بردم داخل تابع بنظرتون مشکلی پیش نمیاد چون قراره 1200000 رکورد پردازش بشه؟؟؟؟

-سیّد-
سه شنبه 01 اردیبهشت 1394, 23:43 عصر
درست کردم البته حلقه رو بردم داخل تابع بنظرتون مشکلی پیش نمیاد چون قراره 1200000 رکورد پردازش بشه؟؟؟؟
این که اجرای یه حلقه داخل یه تابع باشه یا داخل روند اصلی اجرا باشه، تقریباً هیییییییچ تأثیری در سرعت اجرا نداره. این که می‌گم تقریباً، دلیلش اینه که واقعاً تأثیر داره، ولی سرعتش مثلاً 0.000001 ثانیه بیشتر می‌شه!