Mehrere Variabeln auf inhaltliche Gleichheit prüfen

DonDemf

Erfahrenes Mitglied
Hallo Community,
gibt es eine Möglichkeit wie ich Variabeln auf Gleichheit prüfen kann, außer:

PHP:
if($s1==$s2)

********


Denn ich habe insgesamt 11 Variabeln (s1-s11) und es darf keine auch nur identisch mit einer anderen sein. Und es ist sicherlich zu aufwendig, für jede variabel 10 if-anweisungen zu schreiben..


Gibt es dort eine Möglichkeit?

Die variabeln werden alle mit POST gefüllt, sprich:
PHP:
$s1 = $_POST["s1"];
$s2 = $_POST["s2"]; 
$s3 = $_POST["s3"];

usw
 
Hi

Für 11 Stück:
PHP:
for($a = 0; $a < 10; $a++)
{
    for($b = $a + 1; $b < 11; $b++)
    {
        if($_POST['s' . $a] == $_POST['s' . $b])
        {/*Irgendwas ist gleich*/}
    }
}
Sowas vielleicht?
Natürlich kann man noch auf Existenz prüfen usw usw, aber prinzipiell...

Gruß
 
Zuletzt bearbeitet:
Hm, es scheint nicht zu funktionieren, ich habe 10 veschiedene spieler auf 11 positionen. Sprich 2 Positionen sind beide mit "Tevez" besetzt. und er gibt mir aus:

Bitte beachte, das jeder Spieler nur auf einer Position gesetzt werden kann.
Bitte beachte, das jeder Spieler nur auf einer Position gesetzt werden kann.
Bitte beachte, das jeder Spieler nur auf einer Position gesetzt werden kann.
Bitte beachte, das jeder Spieler nur auf einer Position gesetzt werden kann.
Bitte beachte, das jeder Spieler nur auf einer Position gesetzt werden kann.
Bitte beachte, das jeder Spieler nur auf einer Position gesetzt werden kann.
Bitte beachte, das jeder Spieler nur auf einer Position gesetzt werden kann.
Bitte beachte, das jeder Spieler nur auf einer Position gesetzt werden kann.
Bitte beachte, das jeder Spieler nur auf einer Position gesetzt werden kann.
Bitte beachte, das jeder Spieler nur auf einer Position gesetzt werden kann.
Bitte beachte, das jeder Spieler nur auf einer Position gesetzt werden kann.
 
Hm, irgendwie klappt es immer noch nicht so ganz...

ich habe nun folgenden Code:
PHP:
if($userdata["teamid"]=="") {
	echo 'Du bist nicht befugt, diese Seite aufzurufen.'; } else {
for($a = 0; $a < 10; $a++)
{
    for($b = $a + 1; $b < 11; $b++)
    {
        if($_POST['s' . $a] == $_POST['s' . $b])
        {

echo 'Irgendwas ist gleich.';} else {

$mysql_update_funktionen 

echo 'Aufstellung erfolgreich gespeichert.';}

Wenn ich wirklich 11 verschiedene Spieler aufstelle, komm ich in die else schleife, wo er mir dann folgendes ausgibt:

Code:
Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Irgendwas ist gleich.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Irgendwas ist gleich.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.Deine Formation wurde erfolgreich gespeichert.
 
Wenn du meinen Code übernommen hättest, würde es klappen;)
Da, in die zwei Schleifen, darf kein else rein.

Mach es zB. so:

PHP:
$c = 1;
for($a = 0; $a < 10; $a++)
{
    for($b = $a + 1; $b < 11; $b++)
    {
        if($_POST['s' . $a] == $_POST['s' . $b])
            $c = 0;
    }
}

if($c == 1)
{/*Erfolgreich*/}
else
{/*Nicht Erfolgreich*/}

Gruß
 
ok, jetzt zeigt er mir die fehlermeldungen wirklich nur einmal an ;-) Danke soweit!

Jedoch funktioniert es nicht. Ich habe 11 verschiedene Spieler aufgestellt und es kommt die Meldung:

Bitte beachte, dass jeder spieler nur einmal aufgestellt werden darf.

PHP:
if($userdata["teamid"]=="") {
	echo 'Du bist nicht befugt, diese Seite aufzurufen.'; } else {
		$c = 1;
for($a = 0; $a < 10; $a++)
{
    for($b = $a + 1; $b < 11; $b++)
    {
        if($_POST['s' . $a] == $_POST['s' . $b])
            $c = 0;
    }
}
if($c == 1)
{
$sfa = 'UPDATE fifa_mannschaften Set
aufstellung = "'.$formation.'"
WHERE id = "'.$userdata["teamid"].'"';
$sfb = mysql_query($sfa);

$aend1 = $s1e["0"];
$s1a = 'UPDATE fifa_spieler Set
pos = "s1"
WHERE id = "'.$aend1.'"';
$s1b = mysql_query($s1a);

$aend2 = $s2e["0"];
$s2a = 'UPDATE fifa_spieler Set
pos = "s2"
WHERE id = "'.$aend2.'"';
$s2b = mysql_query($s2a);

$aend3 = $s3e["0"];
$s3a = 'UPDATE fifa_spieler Set
pos = "s3"
WHERE id = "'.$aend3.'"';
$s3b = mysql_query($s3a);

$aend4 = $s4e["0"];
$s4a = 'UPDATE fifa_spieler Set
pos = "s4"
WHERE id = "'.$aend4.'"';
$s4b = mysql_query($s4a);

$aend5 = $s5e["0"];
$s5a = 'UPDATE fifa_spieler Set
pos = "s5"
WHERE id = "'.$aend5.'"';
$s5b = mysql_query($s5a);

$aend6 = $s6e["0"];
$s6a = 'UPDATE fifa_spieler Set
pos = "s6"
WHERE id = "'.$aend6.'"';
$s6b = mysql_query($s6a);

$aend7 = $s7e["0"];
$s7a = 'UPDATE fifa_spieler Set
pos = "s7"
WHERE id = "'.$aend7.'"';
$s7b = mysql_query($s7a);

$aend9 = $s9e["0"];
$s9a = 'UPDATE fifa_spieler Set
pos = "s9"
WHERE id = "'.$aend9.'"';
$s9b = mysql_query($s9a);

$aend10 = $s10e["0"];
$s10a = 'UPDATE fifa_spieler Set
pos = "s10"
WHERE id = "'.$aend10.'"';
$s10b = mysql_query($s10a);

$aend11 = $s11e["0"];
$s11a = 'UPDATE fifa_spieler Set
pos = "s11"
WHERE id = "'.$aend11.'"';
$s11b = mysql_query($s11a);

$aend = $s8e["0"];
$s8a = 'UPDATE fifa_spieler Set
pos = "s8"
WHERE id = "'.$aend.'"';
$s8b = mysql_query($s8a);

echo 'Deine Formation wurde erfolgreich gespeichert.';
		
		}
else
{
	
	echo 'Bitte beachte, dass jeder Spieler nur einmal aufgestellt werden darf.';
	}  


		
	}
?>
 
Meinst du nicht, dass bei den ganzen Updates eine Schleife gut wäre?

Gib vor der for-Schleife einmal das gesamte Post-Array aus (print_r)
 
Öhm, ich habe gar kein post array :rolleyes: *schäm*

ich habe jedes einzelne dropdown als Post variabel gespeichert und splitte die dann:

PHP:
$s1 = $_POST["s1"]; $s2 = $_POST["s2"]; $s3 = $_POST["s3"]; $s4 = $_POST["s4"]; $s5 = $_POST["s5"]; $s6 = $_POST["s6"]; $s7 = $_POST["s7"]; $s8 = $_POST["s8"]; $s9 = $_POST["s9"]; $s10 = $_POST["s10"]; $s11 = $_POST["s11"];  $formation = $_POST["formation"];


$s1e = explode('|', $s1); $s2e = explode('|', $s2); $s3e = explode('|', $s3); $s4e = explode('|', $s4); $s5e = explode('|', $s5); $s6e = explode('|', $s6); $s7e = explode('|', $s7); $s8e = explode('|', $s8); $s9e = explode('|', $s9); $s10e = explode('|', $s10); $s11e = explode('|', $s11);
 
Was, kein Post-Array?
Was ist denn dann $_POST ? :D

Und für solche Sachen wie dieses Codestück oder die updates weiter oben gibt es Schleifen.

Was würdest du denn mit 11000 statt 11 machen? An sowas zu denken ist ja grausig...

Warum kopierst du das Ganze überhaupt in andere Variablen?

Und mysql_real_escape_string wäre gut.
 
Zurück