Select-Elemente die sich gegenseitig beeinflussen

Romeo-G

Mitglied
Hallo,
ich habe folgendes vor.

Ich arbeite an einem Skript bei dem man verschiedene Spielbegegnungen eintragen können soll.

Bislang gibt es zwei Select Elemente in die alle registrierten Benutzer geladen werden - jetzt mein Problem:
Logischer weise soll es nicht möglich sein das Spieler A gegen Spieler A spielt, weshalb Spieler A auch nicht im zweiten Select Element auftauchen soll, wenn dieser im ersten Select Element ausgewählt wurde.

Mein Ansatz sieht so aus:

PHP:
<?php

$sqlkommando ="SELECT * FROM benutzerdaten WHERE Berechtigung = 'Spieler' ORDER BY Berechtigung DESC";
				    	
$sqlanfrage = mysql_query($sqlkommando) or die("Error: " . mysql_error());
				
echo "<select name='Spieler1' size='1'>";
echo "<option value='Spieler 1'>Spieler 1</option>
<option value='------------------------'>------------------------</option>";
						
while($daten = mysql_fetch_row($sqlanfrage))
{                                               
echo "<option value='$daten[2]'>$daten[2]</option>";
} 
						  	
echo "</select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
#-----------------------------------------------------------------------------------------------------------
				    	
$sqlkommando ="SELECT * FROM benutzerdaten WHERE Berechtigung = 'Spieler' ORDER BY Berechtigung DESC";
				    	
$sqlanfrage = mysql_query($sqlkommando) or die("Error: " . mysql_error());
						
echo "<select name='Spieler2' size='1'>";
echo "<option value='Spieler 2'>Spieler 2</option>
 <option value='------------------------'>------------------------</option>";
							
$Spieler1 = addslashes($Spieler1);
							
while($daten = mysql_fetch_row($sqlanfrage))
{
if($daten[2]!=$Spieler1)
{                                               
echo "<option value='$daten[2]'>$daten[2]</option>";
}} 
						
echo "</select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
							
?>

Irgendwie ist es schon klar, dass das nicht funktioniert, da die beiden Elemente ja gleichzeitig "konstuiert" werden und somit das Feld Spieler2 nur den Start Eintrag von Feld1 ("Spieler 1") ignoriert.

Habt ihr ne Idee für mein Problem?

Danke
Romeo
 
versuchs doch mal indem zu zwei schritte machst weil mit reinem php ist das UNMÖGLICH!
Also erst muss man den ersten Spieler auswählen, anschließend den zweiten.
du kannst das auch mit javascript lösen...
aber wenn du jetzt bei php bleiben willst kannst du auch einfach checken ob die identisch sind. dann erspart der normale benutzer ein schritt und ein versehen / absicht wird auch behandelt. Erstellst denn eine abfrage
PHP:
if ($_POST['spieler1'] != $_POST['spieler2']) { 
     echo'Spieler eintrag erlaubt';
} else {
     echo'Spieler eintrag NICHT erlaubt';
}
 
:D

1. Brauchst du nur die Berechtigung fragt man nicht die komplette Tabelle nach allen Daten sondern differenziert das * auf die jeweilige Spalte. Geht viel schneller.

2. Wenn über ein Anmeldeformular die Spielerdaten wie User und Passwort übergeben werden, kann man das bereits in der Bedigung der MySQL - Abfrage deffinieren.

3. Die Ausgabe aus der Abfrage wird in ".$[]." gesetzt. Eigentl. dürfte die Anzeige oder Ausgabe nicht .

Erkläre mal den Hintergrund deiner Abfrage was du damit bezwecken willst.
 
Zurück