Verknüfung FOR-Schleife und IF-Abfrage
B-18Plus
- php
Abend,
ich habe folgendes "Problem":
for($i=1;$i<=18;$i=$i+2)
{
if ($_POST['verein_'.$i] == "Alemannia Aachen")
{} else {}
}
D.h. ich möchte den Wert der FOR-Schleife mit der if-Abfrage kombinieren..nur leider weiss ich nicht genau wie ich $i bei $_POST['verein_'.$i] einsetzen muss.
Danke für eure Hilfe!!
Lg Benni
ps. schönen Abend noch!
Hi,
D.h. ich möchte den Wert der FOR-Schleife mit der if-Abfrage kombinieren..nur leider weiss ich nicht genau wie ich $i bei $_POST['verein_'.$i] einsetzen muss.
welches Problem besteht denn bei dem von Dir gezeigten Code?
Cheatah
Hi,
Tach auch :)
welches Problem besteht denn bei dem von Dir gezeigten Code?
Das wird nicht akzeptiert...es wird kein Fehler ausgegeben. Beim prüfen wird das: $_POST['verein_'.$i] nicht richtig umgeschrieben
(nur um Fehler meinerseits vorzubeugen: $_POST['verein_1] bei einem entsprechenden Eintrag klappt und ich hab bei $_POST['verein_'.$i] ein weiteres else eingefügt, die dortige echo-Ausgabe wird bei der Ausführung des Dokuments ausgeführt (desshalb bin ich der Ansicht dass die IF-Bedingung nie akzeptiert wird weil sie nicht richtig umgeschriebn wird))
Lg Benni
Hi,
Beim prüfen wird das: $_POST['verein_'.$i] nicht richtig umgeschrieben
was enthält $_POST denn tatsächlich? Und was ergibt 'verein_'.$i?
Cheatah
ich weiß nicht wie es mit deinem problem genau aussieht, aber könntest du nicht einfach eine foreach-schleife benutzen?
Selbst mit einer Abfrage ob es der struktur ist, die du vorgesehen hast kann man es machen
// zuerst die variante ohne die struktur zu berücksichtigen
foreach($_POST as $v)
if($v === "Alemania Aachen")
{} else {}
// danch die variante mit struktur, ist halt langsamer
foreach($_POST as $k => $v)
if(preg_match("@verein_\d\d?@", $k) !== -1 and $v === "Alemania Aachen")
{} else {}
damit solltest du eigentlich weiter kommen... fraglich ist halt bei der Lösung wie es mit deinem $i+2 aussieht, ob das so essentiell ist, dass es unbedingt beachtet werden muss.
mfg nemoinho
damit solltest du eigentlich weiter kommen... fraglich ist halt bei der Lösung wie es mit deinem $i+2 aussieht, ob das so essentiell ist, dass es unbedingt beachtet werden muss.
Ich werde deinen Vorschlag morgen mal versuchen umzusetzen.
Ein Wort noch zu $i+2: das ist wichtig weil bei dieser Aktion nur $_POST['verein_'.$i] mit $i=ungerade Zahlen beachtet werden sollen wobei ich die Sache vermutlich auch einfach durch eine weitere Variable lösen könnte.
Lg Benni
Hi,
wenn wirklich nur ungerade zahlen berücksichtigt werden sollen wäre vielleicht eine solche struktur besser:
foreach($_POST as $k => $v)
if(preg_match("@verein_1?[13579]?@", $k) !== -1 and $k !== "verein_19" and $v === "Alemania Aachen")
{} else {}
in diesem fall werden nur ungerade zahlen berücksichtigt, die zwischen 1 und 19 liegen, deshalb auch die extra-abfrage, dass der schlüssel nicht verein_19 ist :-)
mfg nemoinho
Hello,
Ein Wort noch zu $i+2: das ist wichtig weil bei dieser Aktion nur $_POST['verein_'.$i] mit $i=ungerade Zahlen beachtet werden sollen wobei ich die Sache vermutlich auch einfach durch eine weitere Variable lösen könnte.
Du möchstest also die geraden mit den ungeraden Vereinen paaren? :-)
Warum baust Du die Vereien im $_POST-Array nicht auch als Array auf, dann ist es ganz einfach:
<p><input name="verein[1]" size="30>
<input name="verein[2]" size="30></p>
<p><input name="verein[3]" size="30>
<input name="verein[4]" size="30></p>
<p><input name="verein[5]" size="30>
<input name="verein[6]" size="30></p>
Bau das mal ein in Dein Formular und schaue Dir dann im Script das $_POST-Array an:
echo "<pre>\r\n";
echo htmlspecialchars(print_r($_POST,1));
echo "</pre>\r\n";
Dann sollte es Dir klar werden.
Der Zugriff ist dann ganz einfach möglich:
if (isset($_POST['verein'][1]), $_POST['verein'][2]))
{
echo "1. Paarung lautet: ".htmlspecialchars($_POST['verein'][1]).' + '
.htmlspecialchars($_POST['verein'][2])."<br />\r\n";
}
http://www.php.net/manual/en/function.isset.php
Mit der Prüfung durch isset() ersparst Du Dir Zugriffe auf nicht vorhandene Variablen.
Zusätzlich könntest Du fragen, ob überhaupt etwas drin steht in der Variable.
if (isset($_POST['verein'][1]), $_POST['verein'][2])
and strlen($_POST['verein'][1]) > 0
and strlen($_POST['verein'][2]) > 0)
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
echo $begrüßung;
Warum baust Du die Vereien im $_POST-Array nicht auch als Array auf, dann ist es ganz einfach:
Grad wollte ich ansetzen und den gleichen Vorschlag unterbreiten.
Mit der Prüfung durch isset() ersparst Du Dir Zugriffe auf nicht vorhandene Variablen.
Zusätzlich könntest Du fragen, ob überhaupt etwas drin steht in der Variable.if (isset($_POST['verein'][1]), $_POST['verein'][2])
and strlen($_POST['verein'][1]) > 0
and strlen($_POST['verein'][2]) > 0)
Beide Prüfungen kann man durch Anwendung von empty() kombinieren (es sei denn '0' wäre ein gültiger in $_POST['verein'][x] vorkommender Wert).
if (!empty($_POST['verein'][1] and !empty($_POST['verein'][2]))
echo "$verabschiedung $name";
Hello,
<p><input name="verein[1]" size="30">
^
Da fehlte noch ein Anführungszeichen, aber das hättest Du bestimmt auch selbst gefunden :-)
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg