PDA

View Full Version : خواندن اطلاعات گرفته شده از دیتابیس با ایندکس عددی یا نام فیلد



H:Shojaei
جمعه 17 بهمن 1393, 18:26 عصر
سلام...
شرمنده عنوان خوبی پیدا نکردم و مشکل هم اصلا نمیدونم خودم چی هست که عنوان واسش بگم:
مشکل اینه که اطلاعات رو از دیتابیس خوندم 2تا رکورد بعد وقتی میخوام اطلاعات رو نمایش بدم اگر با ایندکس عددیش صدا بزنم مثلا فیلد اول اسمش a1 هست یکی از رکورد ها مقدار چیزمیز1 و رکورد دیگه مقدار چیزمیز2 رو داره حالا وقتی میخوام نشون بدم رکورد ها رو به این صورت:
echo $rows[0]['a1']
echo $rows[1]['a1']
هر دو مقدار چیزمیز1 چاپ میشن ولی اگه به این صورت کدها رو بنویسم:
echo $rows[0][0]
echo $rows[1][0]
درست نشون داده میشن یعنی اولی چیزمیز1 و دومی هم چیزمیز2 هست!!!!!
واقعا دیگه این مدل خطا رو تا حالا ندیده بودم!؟!؟
شایدم اشکال از کد من باشه ولی همه چی مرتبه خودم حدس میزنم باگی چیزی باشه که تو یه شرایط خواص رخ داده ولی نمیدونم والا!!

MMSHFE
جمعه 17 بهمن 1393, 21:59 عصر
کدتون رو بگذارین. تا وقتی ندونیم چطور اطلاعات رو توی آرایه ریختین نمیشه فهمید خطا از کجاست.

H:Shojaei
شنبه 18 بهمن 1393, 11:24 صبح
بله ولی با کلاس کل کارا انجام میشه و فقط هم تو همین مورد این اشکال پیش میاد... این آرایه منه که وقتی اطلاعات رو با تابع fetchAll() میگیرم (PDO) این آرایه رو بهم میده و میبینید که مثلا مقدار trueguess تو هر سطر مقادیر مختلفی داره ولی تو نمایش همونطور که در بالا گفتم با ایندکس های فیلد ها نمایش درست داده نمیشه و فقط با ایندکس عددی درست نمایش میده!!



Array



(



[0] => Array



(



[id] => 375



[0] => 375



[trueguess] => 10



[5] => 10



)



[1] => Array



(



[id] => 383



[0] => 383



[trueguess] => 0



[5] => 0



)



)


حالا دقیقا من میخوام مقادیر رو با نام فیلد بکشم بیرون یعنی با trueguess
ولی هردو یه مقدار میشن اون هم 10 ولی وقتی مقادیر رو با ایندکس عددی صدا میزنم اولی 10 و دومی هم 0 میشه که این درسته
اینم کدی که به این منظور هست:
این سطر ها رو تو آرایه $wars1 ریختم که بالا دقیقا الآن همین آرایه نمایش داده شده...


$userguess=$wars1[0]['trueguess'];
$rivalguess=$wars1[1]['trueguess'];
و مقادیر تو متغیر ها رو هم بعد از این چاپ میکنم باز هم میگم روش درسته چون هم آرایه درست نشون داده میشه هم وقتی با ایندکس مقادیر رو میخونم ولی با نام فیلد کلا اشتباه میشه!
اسم فیلد رو هم عوض کردم گفتم شاید کلمه کلیدی چیزی باشه ولی باز هم هیچ تغییری نکرد!
حتی سطر های آرایه رو به صورت جدا پرینت میگیرم (فکر کردم شاید ایندکس 0 و 1 از آرایه هردو به 0 اشاره کنن احتمالا) ولی اینجا هم همه چیز درست بود مقادیر هر کدوم از $wars[0] و $wars[1] با هم تفاوت داشتن و همون چیزی بودن که تو کل آرایه هست...
واقعا دیگه موندم چشه!!!!!!

H:Shojaei
شنبه 18 بهمن 1393, 14:41 عصر
همیشه خودم میگم هیچ وقت به برنامه خودت که خطا داره اعتماد نکن اول خوب تستش کنا ولی این بار زود قضاوت کردم مشکل از کد خودم بود...