2017-11-11 2 views
0

Ich bin in einer Situation in meinem Code stecken. Eine Variable $end_date iteriert in einer while-Schleife, um das Enddatum von fünf Kapiteln anzuzeigen. Auf der Basis dieser Variable muss ich jetzt eine Alarmbox anzeigen. Mein Problem ist, wenn das Enddatum des letzten Kapitels gefunden wird, erscheint die Alarmbox, die nicht gültig ist, da das Enddatum für die anderen vier Kapitel verlängert wird. Wie kann ich das Enddatum nur für das letzte Kapitel belassen und die Bedingung der Alarmbox sollte nicht übereinstimmen? Ich habe viel versucht, aber ich kann keine Logik dafür machen. Hilfe oder Beratung wird geschätzt.Lassen Variable in der letzten Iteration der While-Schleife

if((strtotime($today_date) >= strtotime($end_date) || ($pass_count == 0 && $status_request != 2 && $status_request != 0))) 
    { 


echo ("<SCRIPT LANGUAGE='JavaScript'> 
     mess1='Your exam validity date has been expired. Click OK to request for extending your Quiz validity or you can ignore by clicking Cancel.' 

     x = confirm(mess1); 
     if (x == true) 
    { 
     window.location = 'validity_request_mail.php?userid=$userid ';  

    } 

     </SCRIPT>"); 

} 
+1

Das 'language' Attribut für eine lange Zeit als veraltet und sollte nicht verwendet werden. – Andreas

+2

was während der Schleife? Es gibt keine While-Schleife in Ihrem Code –

+0

@JaromandaX Ich habe nicht das ganze Skript veröffentlicht. $ end_date kommt von einer while-Schleife. – Ansh

Antwort

0

Lösung

Wir haben eine neue Variable $last_date genannt vorstellen kann, die für die Erfassung der „größte“ Enddatum aller Kapitel ist.

Es scheint, dass das Problem ist, dass nach einer while() Schleife die $end_date festgelegt ist, und es sollte das letzte Datum sein. Allerdings hat die letzte (5. Iteration) eine $end_date vor anderen $end_date (s) von anderen Kapiteln, so dass die confirm() Box nicht korrekt ist (da es einige Kapitel gibt, die noch nicht abgelaufen sind).

So sollte es beheben:

while (...) { 
    ... 
} 
... 
// snippet in OP's post 

An:

$last_date = ''; 
while (...) { 
    ... 
    if (strtotime($end_date) > strtotime($last_date)) { 
     $last_date = $end_date; 
    } 
} 
... 
$end_date = $last_date; // continue with snippet in OP's post 
+1

Kommentare werden nicht verlängert Diskussion; Diese Konversation wurde [verschoben, um zu chatten] (http://chat.stackoverflow.com/rooms/158967/discussion-on-answer-by-sunny-pun-leave-variable-on-last-iteration-of-while- Schleife). – Andy

Verwandte Themen