نمایش array در خروجی گرفتن از آرایه

حل شده 

PHP

توسط mahbobe-prog در 3 سال پیش
0 5.6k 13 3 سال پیش
mahbobe-prog daniel rockstar php-sec
0

سلام دوستان من کدی نوشتم میاد همه اطلاعات داخل table  رو سلکت میگیره بعد میخوام که فیلد تاریخ رو به شمسی تبدیل کنم بعد بیاد کل ارایه رو خروجی بده ولی الان فقط رکورد اخری جدول رو میده و قسمت تاریخ هم میده array و محتواشو نشون نمیده لطفا اشکالشو بهم بگین

function listComplaints()
{
    $q = "SELECT * FROM `com_complaint` ORDER BY `com_complaint`.`com_dateRegCOM` ASC , `com_state` ASC LIMIT ".($_GET['pagelist']-1)* $pagenumrow ." ,".$_GET['pagelist'] * $pagenumrow ."" ;

    $query = mysql_query($q) ;
	$i = 0 ;
	while($res1= mysql_fetch_assoc($query))
	{
		$array[] = $res1 ;

		$exp = explode( "''" ,$res1['com_dateRegCOM'] ) ;
		$array[$i]['com_dateRegCOM'] = array_map('date_sh' , $exp) ;
		$i = $i++ ;
}
}

پاسخ ها

2

سلام شاید تو LIMIT مشکل وجود داره اول از $array یه خروجی بگیرید ببینید نتیجش درسته یا نه وقتی نتیجه خروجی آرایه array میشه یعنی آرایه چند بعدی دارید مثل همین $array[$i]['com_dateRegCOM'] در ضمن نحوه خروجی گرفتن رو نذاشتی

1

از $array  خروجی گرفتم اون مشکلی نداره و درسته . من داخل حلقه از [font=nassim, arial]$a[/font][font=nassim, arial]rr[/font][font=nassim, arial]a[/font][font=nassim, arial]y خروجی گرفتم همه رکوردای جدولو میده ولی بیرون حلقه فقط رکورد اخری رو میده و در حالی که میخوام که بیرون حلقه هم همه رکوردا رو بده . تاریخ رو هم array میده چیکارش کنم ؟[/font] [font=nassim, arial]خروجی رو واسه یه رکورد میذارم [/font]

array(1) {


[0]=>

array(27) {

["com_companyName"]=>

string(0) ""

["com_namePerson"]=>

string(5) "qqqaa"

["com_ID"]=>

string(3) "444"

["com_nationalCode"]=>

string(10) "1234567890"

["com_middleName"]=>

string(5) "xxxxx"

["com_numberRegistering"]=>

string(0) ""

["com_resident"]=>

string(0) ""

["com_activities"]=>

string(0) ""

["com_referenceName"]=>

string(5) "kkkkk"

["com_license"]=>

string(4) "oooo"

["com_referenceNumber"]=>

string(4) "7777"

["com_dueProtest"]=>

string(60) "قانع نشدن از پاسخ منفی مرجع مسئول"

["com_Descriptions"]=>

string(7) "ppppppp"

["com_oppositionProcceing"]=>

string(0) ""

["com_tell"]=>

string(10) "5555555555"

["com_mobile"]=>

string(10) "9555555553"

["com_email"]=>

string(16) "kkkkkkk@kkkk.com"

["com_address"]=>

string(0) ""

["com_code"]=>

string(15) "LRF9CK6NBYWEMS4"

["com_feedback"]=>

string(0) ""

["com_dateRegCOM"]=>

array(1) {

[0]=>

string(8) "1393/9/2"

}

["com_dateRegFEED"]=>

string(10) "0000-00-00"

["com_state"]=>

string(1) "0"

["com_mardoud"]=>

string(1) "0"

["document1"]=>

string(0) ""

["document2"]=>

string(0) ""

["document3"]=>

string(0) ""

}

}
آخرین ویرایش: 27-11-2014 ساعت 00:27، توسط mahbobe.prog
1

اول از همه یه تذکر بدم به خاطر عنوانی نامناسبی که برای تاپیک انتخاب کردین!!! لطفا از عناوین مرتبط با موضوع سوال استفاده کنید. خروجی رو که از دیتابیس می گیرید داخل var_dump قرار بدین تا در صفحه چاپ بشه و ببینید نتیجه خروجی چیه. اینجا هم نتیجه رو بذارید


پس مشکلی در کد دیتابیس نیست. چون با فیلد تاریخ مشکل دارین به نظرم مربوط میشه به اینکه شما تاریخ رو به صورت فارسی در دیتابیس ذخیره کردین درسته؟ بهتره در دیتابیس تاریخ و یا زمان رو با فرمت های مناسب تر یعنی فرمت هایی که مثلا تابع time میده ذخیره کنید و برای تغییر به تاریخ شمسی بعد از خروجی گرفتن از دیتابیس از کلاس های تبدیل کننده تاریخ شمسی استفاده کنید

آخرین ویرایش: 27-11-2014 ساعت 00:27، توسط rockstar
1

[font=nassim, arial]باشه توی انتخاب عناوین بیشتر دقت میکنم .[/font] نه من تاریخ رو به میلادی در دیتابیس ذخیره کردم و موقعی که تاریخ شمسی لازم دارم تبدیلش میکنم وردامپ رو واسه یه رکورد گذاشتم . 

1

این موضوعی رو که الان میگم شاید دلیل منطقی نداشته باشه. یبار که در کد از این دستور استفاده کردم:while($res1= mysql_fetch_assoc($query))تا آرایه ها رو پیمایش کنم برای کد مشکل پیش اومد و نتیجه نمیداد برای همین از foreach بجای دستور بالا استفاده کردم. اینو گفتم چون من مشکلی در کد شما ندیدم شاید سایر دوستان بهتر بتونن کمک کنن به هر حال پیشنهادی هست از طرف من میتونید امتحان کنید اگر جواب داد نتیجه رو بذارین اینجا

1

> این موضوعی رو که الان میگم شاید دلیل منطقی نداشته باشه. یبار که در کد از این دستور استفاده کردم: `while($res1= mysql_fetch_assoc($query))` تا آرایه ها رو پیمایش کنم برای کد مشکل پیش اومد و نتیجه نمیداد برای همین از foreach بجای دستور بالا استفاده کردم. اینو گفتم چون من مشکلی در کد شما ندیدم شاید سایر دوستان بهتر بتونن کمک کنن به هر حال پیشنهادی هست از طرف من میتونید امتحان کنید اگر جواب داد نتیجه رو بذارین اینجا

لطف کردین ممنون من دارم با حلقه while خروجی رو میگیرم . مشکل من سر همون دو موردی که توی پستای قبلیم گفتم هستش :-/

1

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

0

با مورد شما امتحان کردم نشد با همون حلقه while وردامپ رو خروجی میده . قسمت اینکه تاریخ array میداد درست شد - تاریخ که ارایه میداد  رو به رشته تبدیل کردم و دوباره داخل همون متغیر [color=#444444] $array[$i]['com_dateRegCOM'] ذخیره کردم و درست شد .[/color] [color=#444444]ولی اینکه بیرون حلقه متغیر [font=nassim, arial]a[/font][font=nassim, arial]rray [/font]$ رو وردامپ میزنم فقط رکورد اخری رو میده ولی من میخوام که همه رکورد ها رو بده چیکارش کنم ؟[/color]

function listComplaints()
{
    $q = "SELECT * FROM `com_complaint` ORDER BY `com_complaint`.`com_dateRegCOM` ASC , `com_state` ASC LIMIT ".($pagelistall-1)*$pagenumrow ." ,".$pagelistall * $pagenumrow ."" ;
    $query = mysql_query($q) ;
	$i = 0 ;
	while($res1= mysql_fetch_assoc($query))
	{
		$array[$i] = $res1 ;
		$exp = explode( "''" ,$res1['com_dateRegCOM'] ) ;
		$array[$i]['com_dateRegCOM'] = array_map('date_sh' , $exp) ;
		$array[$i]['com_dateRegCOM']= implode( '' , $array[$i]['com_dateRegCOM']) ;
		$i = $i++ ;
}
var_dump($array) ;
}
array(1) {
  [0]=>
  array(27) {
    ["com_companyName"]=>
    string(0) ""
    ["com_namePerson"]=>
    string(5) "qqqaa"
    ["com_ID"]=>
    string(3) "444"
    ["com_nationalCode"]=>
    string(10) "1234567890"
    ["com_middleName"]=>
    string(5) "xxxxx"
    ["com_numberRegistering"]=>
    string(0) ""
    ["com_resident"]=>
    string(0) ""
    ["com_activities"]=>
    string(0) ""
    ["com_referenceName"]=>
    string(5) "kkkkk"
    ["com_license"]=>
    string(4) "oooo"
    ["com_referenceNumber"]=>
    string(4) "7777"
    ["com_dueProtest"]=>
    string(60) "قانع نشدن از پاسخ منفی مرجع مسئول"
    ["com_Descriptions"]=>
    string(7) "ppppppp"
    ["com_oppositionProcceing"]=>
    string(0) ""
    ["com_tell"]=>
    string(10) "5555555555"
    ["com_mobile"]=>
    string(10) "9555555553"
    ["com_email"]=>
    string(16) "kkkkkkk@kkkk.com"
    ["com_address"]=>
    string(0) ""
    ["com_code"]=>
    string(15) "LRF9CK6NBYWEMS4"
    ["com_feedback"]=>
    string(0) ""
    ["com_dateRegCOM"]=>
    string(8) "1393/9/2"
    ["com_dateRegFEED"]=>
    string(10) "0000-00-00"
    ["com_state"]=>
    string(1) "0"
    ["com_mardoud"]=>
    string(1) "0"
    ["document1"]=>
    string(0) ""
    ["document2"]=>
    string(0) ""
    ["document3"]=>
    string(0) ""
  }
}
1

اون آرایه ای که میخواین var_dump ازش بگیرید یک آرایه چند بعدی هست احتمالا پس باید با یک حلقه یا foreach پیمایش بشه و ازش var_dump بگیرید

0

من هنوز به جوابم نرسیدم  :(  دارم از $array خروجی میگیرم که داخل حلقه هستش . وقتی داخل حلقه ازش وردامپ میگیرم همه نتیجه ای رو که میخوام رو میده ولی بیرون حلقه وردامپ میزنم فقط اخری رو میده درحالی که من همه نتیجه رو میخوام . rockstar لطفا یه نمونه کد برام بذارین 

1

سلام شما این چند لاین رو غیر فعال کن ببین چی میشه

       $array[$i] = $res1 ;
        //$exp = explode( "''" ,$res1['com_dateRegCOM'] ) ;
        //$array[$i]['com_dateRegCOM'] = array_map('date_sh' , $exp) ;
        //$array[$i]['com_dateRegCOM']= implode( '' , $array[$i]['com_dateRegCOM']) ;
        $i++ ;
0

> سلام شما این چند لاین رو غیر فعال کن ببین چی میشه ```        $array[$i] = $res1 ;        //$exp = explode( "''" ,$res1['com_dateRegCOM'] ) ;        //$array[$i]['com_dateRegCOM'] = array_map('date_sh' , $exp) ;        //$array[$i]['com_dateRegCOM']= implode( '' , $array[$i]['com_dateRegCOM']) ;        $i++ ; ```
سلام اون چند لاین که گفتین رو کامنت کردم و $i رو از داخل براکت متغیر $array برداشتم بعد بیرون حلقه که متغیر رو وردامپ میکنم همه رکوردایی که میخوام رو میده
0

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

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.

لطفا ابتدا لاگین کنید