php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit Vergleich


 
Gopher
25-02-2003, 16:41 
 
Hi,

ich speichere in einer Datei verschiedene Werte, unter anderem auch einen bestimmten Monat. Beim Auslesen wird der Inhalt in ein Array gespeichert da die Datei sehr klein ist. Der Monat steht jetzt im Array an Position 4 ($counter[3]). In einem zweiten Array sind alle Monate gespeichert ($monate).

So weit so gut aber will ich jetzt die beiden Arrays vergleichen um in einem DropDown-Feld den Monat anzuzeigen, der in der Datei gespeichert wurde, funktioniert das nicht.

Von den 2. Möglichkeiten (selected oder nicht selected) wird generell die nicht selected genommen. Ich habe auch schon überprüft ob in den Arrays das richtige drinnen steht, tut es auch. Ich komme einfach nicht hinter das Geheimnis warum der Vergleich immer fehl schlägt.

Ich hätte echt nichts dagegen wenn mich einer Aufklären könnte was an meinem Code falsch ist. Ich danke jedenfalls schon mal allen die mir bei der Lösung des Problems behilflich sein werden.

$monate = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli",
"August", "September", "Oktober", "November", "Dezember");
for ($n=0; $n<=11; $n++)
{
if ($counter[3] == $monate[$n])
echo "<option selected>$monate[$n]</option>";
else
echo "<option>$monate[$n]</option>";
}

 
mrhappiness
25-02-2003, 16:46 
 
so auf anhieb sieht dein code richtig aus$monate = array("Januar", "Februar", "März", "April", "Mai", "Juni",
"Juli", "August", "September", "Oktober", "November", "Dezember");
for ($n=0; $n<=11; $n++)
{
if ($counter[3] == $monate[$n])
echo "<option selected>$monate[$n]</option>";
else
echo "<option>-".$counter[3]."- -".$monate[$n]."-</option>";
}mach das mal zum testen, er sollte dann sowas in der art ausgeben:-April- -April-

wenn du die datei ins array $counter einliest, wäre es da u.U. möglich, dass du noch nen zeilenumbruch da drin hast?$counter[3]=='Januar\n'

 
Gopher
25-02-2003, 17:21 
 
Hi mrhappiness,

Deine Idee mit den Strichen vor bzw. nach den Arrays gefällt mir. Jetzt weiss ich schon mal was falsch läuft.

Aussehen tut es dann so:

-April - -April-

Ich hab also im $counter immer noch ein leerzeichen am Ende. Und wie Du schon vermutet hast ist ein Zeilenumbruch am Ende eingefügt der wird wohl mit ausgelesen, oder wie?

Ich habe das Problem jetzt so gelöst.

$monate = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli",
"August", "September", "Oktober", "November", "Dezember");
$neuer_monat = rtrim($counter[3]);
for ($n=0; $n<=11; $n++)
{
if ($neuer_monat == $monate[$n])
echo "<option selected>$monate[$n]</option>";
else
echo "<option>$monate[$n]</option>";
}

Ich Danke Dir für Deine Hilfe, hätte sonst wahrscheinlich noch lange dran zu knabbern gehabt.


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:42 Uhr.