• 1 رای - 4 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
فراخوانی مقدار یک فیلد
#1
سلام دوستان،

من یک function توی یک فایل دیدم که برام جالب بود تغییرش بدم! کار این کد این بود که مقدار مثلا فیلد ali که در sql وارد شده رو بهت میده!
یک مثال کامل: فیلد Name دارای مقدار Alireza هست که با اون کد می تونیم اون مقدارش رو در اسکریپتی که نوشتیم نمایش بدیم!

کد مورد نظر:

کد پی‌اچ‌پی:
function getstats ($stats_name)
  {
    if (!(
$sql mysql_query ('' 'SELECT * FROM `stats` WHERE `Name` = \'' $stats_name '\'')))
    {
      exit (
'<b>SQL ERROR:</b> 101, SQL Stats error.');
      ;
    }

    if (
$row mysql_fetch_array ($sql))
    {
      
$Value '' $row['Value'];
      return 
$Value;
    }

  } 

اما این کد فقط جدول stats رو می خونه و اگه تغییرش بدیم به users عمل نمی کنه! و مشکلش این هست که اعداد رو پشتیبانی می کنه فقط!

درخواست من: حالا من میخوام که یک چیزی شبیه این داشته باشم یا شما یک کدی تحویل بنده بدین که کلا با اون مقدار هر فیلد که بخوام نشون بده!

امیدوارم کامل و واح توضیح داده باشم ... Blush
غایب
  پاسخ
تشکر شده توسط : Y.P.Y
#2
کاری که شما باید بکنید اینه که تو این تابع که یه ورودی داره، یکی دیگه هم اضافه کنید که شامل نام جدول باشه.
به عبارتی :
کد پی‌اچ‌پی:
<?php

function getstats ($stats_name$tbl_name)
  {
    if (!(
$sql mysql_query ('SELECT * FROM `'.$tbl_name.'` WHERE `Name` = \'' $stats_name '\'')))
    {
      exit (
'<b>SQL ERROR:</b> 101, SQL Stats error.');
      ;
    }

    if (
$row mysql_fetch_array ($sql))
    {
      
$Value '' $row['Value'];
      return 
$Value;
    }

  } 
?>
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط :
#3
از توجهتون ممنونم اما این کار نمی کنه و خطای SQL میده! من خودم یکسری ویرایش کردم باز نشد. تو یک انجمن دیگه یکی از کاربرانش گفت تمام query هارو داخل array ببرم و return کنم.

میخوام بدونم نظر شما راجع به این چیه و اگه مثبت هست یک مثالی برام بزنید

ممنونم Smile
غایب
  پاسخ
تشکر شده توسط :
#4
ببینید این تابع در واقع مقدار فیلد name رو در جدولtbl_name جایی که برابر با مقداری باشه که شما بهش میدین به شما می ده

یه جور دیگه هم می شه نوشت :
کد پی‌اچ‌پی:
<?php

function getstats ($tbl_name$field$value)
  {
    if (!(
$sql mysql_query ('SELECT * FROM `'.$tbl_name.'` WHERE '.$firld.' = \'' $value'\'')))
    {
      exit (
'<b>SQL ERROR:</b> 101, SQL Stats error.');
      ;
    }

    if (
$row mysql_fetch_array ($sql))
    {
      
$Value $row['Value'];
      return 
$Value;
    }

  } 
?>

اگه خطا داد خطا رو بزارین تا بررسی کنم
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : cyletech
#5
سلام

دوست من همیشه قبل از تست کوئری در PHP ، باید با خود دیتابیس چک کنید و ...

اگر ارور SQL دریافت میکنید بررسی کنید که ارور به چه دلیل هست . ( ()mysql_error )

الان مشکل شما از SQL هست نه کد Exclamation

در مورد کل کدت هم میشه گفت که کار خارق العاده قرار نیست انجام بده ، پس اگه راهنمایی می خواهید بهتر صورت مسئله رو کامل مطرح کنید تا دوستان بدونند شما به دنبال چه کاری هستید و .... اینطوری سریع تر میشه پاسخی رو پیدا کرد . Wink
  پاسخ
تشکر شده توسط : cyletech
#6
ممنونم،

نه خطایی که من دریافت می کنم همون چیزی هست که در تابع exit مشخص کردم یعنی خط زیر:

کد پی‌اچ‌پی:
exit ('<b>SQL ERROR:</b> 101, SQL Stats error.'); 

---

درخواست کلی من: من می خوام یک کدی بنویسم که از اون در فایل های دیگه استفاده کنم برای نمایش مقدار یک فیلد از SQL. این رو بهتر می دونم که از function استفاده بشه تا راحت با قرار دادن کد زیر در فایل مورد نظر اون مقدار نمایش داده بشه:

کد پی‌اچ‌پی:
<?php getStats ("Name"?>

دیگه بهتر از این توانایی توضیح ندارم دوستان - شرمنده ام Blush
غایب
  پاسخ
تشکر شده توسط :
#7
خوب، ابتدا کد زیر رو جایگزین کن . اینطوری می تونی متوجه خطایی که از دیتابیس برمیگرده میشی :

کد پی‌اچ‌پی:
exit (mysql_errno($link) . ' : ' mysql_error($link)); 
مقدار لینک هم که مشخصه ، ارتباطی که توسط mysql_connect بدست آوردی هست . ( که تو کد فعلی هیچ اثری ازش دیده نمیشه ... )

مابقی رو هم که از همون کدی مولانا جان داد استفاده کن . به همین سادگی Wink
  پاسخ
تشکر شده توسط : cyletech
#8
مولانا جان و امیر جان دستتون درد نکنه. مشکلم کاملا حل شد و چند چیز خوب هم یاد گرفتم.

اما من مشکل خودم رو بصورت ساختن دو function تونستم حل کنم که این بنظر من فعلا خوبه اما بعد ها که TABLE های این اسکریپتم زیاد بشه خیلی محتوا فایل مسخره میشه!
نیاز به یک روش فوق العاده داشتم واسه اینکه تمام این function ها بشه یکی و راحت و دقیق نمایش داده بشه.

موفق باشید ... Heart
غایب
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان