Frage wegen spezieller Datenbank Abfrage

Schneeflocke

Grünschnabel
Hi,

ich bin zwar kein blutiger Anfänger mehr in Sachen PHP und Mysql, aber ich komme gerade nicht weiter bei einer speziellen Sache und zwar :


Ich habe eine Tabelle mit mehreren Spalten. Die eine davon heisst Spieler und die andere Liga .
In einem vorherigen Formularfeld habe ich die Liga angegeben.
Nun sollten mit einer Abfrage alle Spielernamen ausgelesen werden die zu dieser Liga gehören. Ein kleines Beispiel :

Spieler A - 1
Spieler B - 2
Spieler C - 1
Spieler D - 1
Spieler E - 2

Wenn ich also Liga 1 eingeben sollten also Spieler A, C und D ausgelesen werden und bei Liga 2 natürlich Spieler B und E.

PHP:
$sql = "SELECT Name FROM Mitglieder WHERE Liga='$Liganr'";
        $result = mysql_query ($sql);
        $zeilen = mysql_num_rows ($result);
        
        if (mysql_num_rows ($result) > 0) {

            // Benutzerdaten in ein Array auslesen.
            $data = mysql_fetch_array ($result);

            $player1 = "$data[0]";

Die Abfrage geht soweit. Beim echo von $zeilen zeigt er 3 bzw 2 Treffer an.
Nur bei $player1 zeigt er immer nur einen Namen an und zwar den ersten Eintrag den er gefunden hatte, obwohl er wie gesagt weiß das es mehrere Einträge sind.

Wie schafft man es, das alle Treffer in einem Array sind und das man diese nachher auch noch einzeln abfragen kann da diese weiterverarbeitet werden müssen. :(

Wenn ich schreibe
PHP:
 $player2 = "$data[1]";
wird kein Eintrag gemacht, also leer.


Ein Idee war es vielleicht mit einer Schleife zu machen. Ich weiß ja wieviele Spieler ich haben will, wird auch im Forumlar angegeben, und dann zieht er die Namen solange raus bis er die Anzahl erreicht hat. Da weiß ich aber auch nicht wie man sagt das er den Namen vom xten Treffer rausziehen soll und das in einem Array speichern.

Oder kann man es alles noch einfacher lösen ?
Ich bin selbst noch ein fortgeschrittener Anfänger sage ich mal und kenne noch längst nicht alle Befehele die man verwenden könnte.

Wäre dankbar für ein paar Tipps. :)
 
Ich denke du hast einen kleinen Fehler mit der Funktion mysql_fetch_array. Diese Funktion gibt einen Datensatz als Array zurück, nicht alle Datensätze!

Ein Beispiel:
PHP:
while ($data = mysql_fetch_array ($result))
{
  $player[] = $data;
}

Jetzt hast du ein Array $player, in dem alle Spieler gespeichert sind. Zugriff also so:
PHP:
echo $player[0]; // Liefert den ersten Spieler
echo $player[1]; // Liefert den zweiten Spieler ... usw.
 
Vielen Dank für die Hilfe. :)
Jetzt zieht er sich die richtigen Namen raus und man kann sie einzeln danach noch abrufen und weiterverarbeiten. :)


Nur hatte ich noch ein seltsames Phänomen gehabt. :rolleyes:

PHP:
$player[] = $data[0];

$test[] = $data[0];


Zuerst ging der obere Code nicht, weil er immer Parse Error gemeldet hatte in dieser Zeile. Dann hatte ich aus Spass mal Test eingegeben und dann gings komischweise ohne was zu ändern.

Als ich $player mal mit echo anzeigen gelassen hatte war da noch etwas drinne, aber löscht er das nicht Normalerweise rüber ? :eek:
Als ich dann einmal $player = ""; gemacht hatte konnte ich wieder mit der Variable player arbeiten.

Wie kann man sich sowas erklären ? Wie kann man verhindern das dies nochmal passiert ? :rolleyes:
 
Naja im Normalfall benutzt man ja eine Variable nicht immer wieder. Bei mir kommt es selten vor, dass ich einen Variablennamen zweimal in einem Script verwende, außer es ist soetwas wie eine Zählvariable in Schleifen.
Also angewöhnen, treffende Namen zu wählen und dann sollte das auch nicht so oft vorkommen. Wenn man ein eigenes größeres Script schreibt weiß man irgendwann auch welche Variablen man schon verwendet hat.
 
Zurück