PDA

View Full Version : سوال: mysql_fetch_array



mkhaled
شنبه 04 آبان 1387, 21:27 عصر
دوستان سلام خسته نباشید.
من خیلی تازه کارم ولی تا اینجا تو این 3 هفته خوب پیش رفتم و دارم با پی اچ پی حال میکنم.
مشکل جدیدم اینه

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\wamp\www\famp3\result.php on line 97

این مشکل وقتی پیش میاد که من کلید جستجو رو میزنم و دیاتابیس چیزی پیدا نمی کنه.
منظورم اینه که تو خط قبل fetch کردن یه select به جدول زدم که شرط like داره و کلمه مورد نظر رو تو دیتا می گرده . حالا مشکل اینجاست که وقتی کلمه تو دیتابیس هست رکوردهای مورد نظر رو بر می گردونه ولی وقتی نیست این ارور رو میده.
به نظر خودم وقتی آرایه فچ شده خالیه خوب مطمئنا به مشکل بر میخوره.
به فکرم رسید شاید بشه گفت اگه دیتابیس null باشه کاری نکنه
و از این دستور استفاده کردم ولی جواب نداد

while($rt=mysql_fetch_array($resnex))
{
if ($r !=null)
{ اطلاعات رو نشون بده

}}


لطفا کمک کنید
ببخشید خیلی توضیح میدم آخه میخوام زودتر به نتیجه برسم.
اگه امشب این حل بشه خوبه ممنون

taknegaar
شنبه 04 آبان 1387, 21:41 عصر
...
$result = mysql_query($query,$con);

$num = 0;
if ($result != "")
{
$num = mysql_num_rows($result);
}

if ($num > 0)
{

while ($row = mysql_fetch_array ($result))
{
...

mkhaled
شنبه 04 آبان 1387, 22:00 عصر
...
$result = mysql_query($query,$con);


$num = 0;
if ($result != "")
{
$num = mysql_num_rows($result);
}


if ($num > 0)
{


while ($row = mysql_fetch_array ($result))
{
...




فدات برم من
مشکلم حل (تشدید) ید
طراحی الگوریتم 20 - کاربر تازه وارد مثه تو نیست

farshad_persia
شنبه 04 آبان 1387, 23:33 عصر
باید اول تعداد رکورد ها رو بشمری اگر بیشتر از 0 بود اون موقع fetch کنی
یعنی :


$num = mysql_num_rows($resnex);
for($i=0;$i<$num;$i++)
{
$row = mysql_fetch_array($resnex);
echo $row['field'];
}
اینجوری تعداد رکورد هارو میشمری میریزی تو num$ بعد به تعداد اون fetch میکنی
اگه مشکلی بود بپرس در خدمتم

mkhaled
شنبه 04 آبان 1387, 23:49 عصر
دوست عزیز من گفتم مشکلم با الگوریتم تک نگار حل شد و اینطور که من بررسی کردم فکر کنم الگوریتم شما مشکل داره
تصور کن تعداد row ها مون 2 باشه بعد میاد از 0 تا 2 یعنی به تعداد 2 بار mysql_fetch_array رو اجرا میکنه و اولین خونه آرایه رو میخونه و دوتا داده تکراری میده ! درست نمیگم ؟
اگه اشتباه میکنم و جور دیگه ای عمل می کنه لطفا واسم توضیح بدید .

farshad_persia
یک شنبه 05 آبان 1387, 00:45 صبح
نه دوست نازنین
چون در حلقه for هست و بار اول اطلاعات row اول رو میریزه تو آرایه بار دوم row2 .....

mkhaled
یک شنبه 05 آبان 1387, 00:58 صبح
آهان
یعنی هر بار که mysql فچ میشه به row بعدی میره حواسم نبود.
پس دوتا راه حل شد جفتشم بهتره :-)
ممنون