我有一個名稱和4個狀態,有日期和說明的條目。4個日期中的最後一個日期的PHP訂單foreach
表與此類似:
name,
date_cancelation,
date_success,
date_meeting,
date_setup,
note_cancelation,
note_success,
note_meeting,
note_setup
在我的foreach循環我實現以確定這些4個日期是最新的,所以我表現出我的名單是這樣的:
1) John Doe - last status at 11.12.2016 - canceled
2) Mary Jane - last status at 02.01.2017 - meeting
3) Peter Meyer - last status at 10.12.2016 - canceled
日期我有4列在sql中
現在我想知道我可以如何排序這個列表的最新日期,而日期不是一個獨特的列。
我的理解通過搜索,我應該先排序的日期,但隨着日期的SQL的解決方案是在4列i'm丟了怎麼給它:)
誰能給我一個提示?
謝謝!
編輯:
這是代碼我已經和它給了我成功的人的名單以及他們最近的狀態:
$query = "SELECT abc__form_jobstate.id ,
`jobstate_applicant` , `jobstate_jobstate` ,
`applicant__personid` , `applicant_name` , \t \t \t \t `status_success_date` , `status_cancel_date` , `status_meeting_date` , `status_application_date`,
`success_note` , `cancel_note` , `meeting_note` , `application_note`
FROM `abc__form_jobstate`
LEFT JOIN abc__form_applicant ON (applicant__personid = abc__form_applicant.id)
WHERE `applicant_jobangebot` =" . $di . „;
$db->setQuery($query);
$output = $db->loadObjectList();
foreach ($output as $outputs) {
// set variables for dates
$vm_date = $outputs->status_success_date;
$ab_date = \t $outputs->status_cancel_date;
$pa_date = \t $outputs->status_meeting_date;
$ll_date = \t $outputs->status_application_date;
// set variables for notes
$vm_note = $outputs->success_note;
$ab_note = $outputs->cancel_note;
$pa_note = $outputs->meeting_note;
$ll_note = $outputs->application_note;
// put the dates into an array
$statusdates = [
\t \t „Success「 => $vm_date,
\t \t „Cancel「 => $ab_date,
\t \t „Work「 => $pa_date,
\t \t „Application「 => $ll_date
\t \t \t ];
// See what date is the most recent inside the record
$max = max(array_map('strtotime', $statusdates));
$recent_status = date('d.m.Y', $max);
$recent_statustype = array_search(max($statusdates),$statusdates);
if ($recent_statustype== „Success「) {
\t \t $statusnote = $vm_note;
\t \t };
if ($recent_statustype== „Cancel「) {
\t \t $statusnote = $ab_note;
\t \t };
if ($recent_statustype== „Work「) {
\t \t $statusnote = $pa_note;
\t \t };
if ($recent_statustype == „Application「) {
\t \t $statusnote = $ll_note;
\t \t };
echo '<div class="col-lg-5「><strong>' . $recent_statustype . '</strong> at ' . $recent_status . '<br>' . $statusnote . '</div>';
}
\t \t \t \t ?>
It's像列表以上
- 1)John Doe - 最後狀態11.12.2016 - 取消
- 2)瑪麗珍 - 在2017年2月1日最後的狀態 - 在二○一六年十月一十二日最後的狀態 - - 會議
- 3)彼得·邁耶取消
現在我需要排序列表本身日期(瑪麗珍將在這種情況下是最高的) - 但日期來自不同的列。
希望我能更好地解釋一下我的努力。謝謝你們!!!
的只是顯示你試圖查詢和樣本數據。所以我們可以幫助您 –
您可以添加到您的文章從日期表的「desc」?也許我們可以只用mysql來做:) – Fky
請參閱http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to- be-a-very-simple-sql-query – Strawberry