Ich habe mal eine Frage zum Auslesen von Daten aus der Datenbank.
Folgendes Szenario:
Ich mache gerade einen Spielplan fuer einen Fussballverein, und mein groesstes Hindernis derzeit ist eine Select-Box in der der Inhalt eines Feldes aller Spieler sein soll, die einer Gewissen Rolle angehoeren.
(Rolle und Feld sind einstellbar, dies ist aber kein Problem)
Und irgendwie kommt mir der Code mehr als umstaendlich vor:
Code: Alles auswählen
public function createInput ($game_id, $cnt)
{
global $gPreferences;
// ID des Spielers, welcher das aktuelle Tor geschossen hat, auslesen:
$player_id = $this->getGoalPlayerID($game_id, $cnt);
// "Select-Kopf" schreiben
$return = '<select name="player'.$cnt.'">';
// alle User mit der, in den Einstellungen eingestellten Rolle, auslesen:
$sql = 'SELECT `mem_usr_id` FROM '.TBL_MEMBERS.' WHERE `mem_rol_id` LIKE '.$gPreferences["spielplan_group"];
$result = $this->db->query($sql);
while($row = $this->db->fetch_object($result))
{
// fuer jeden User den Namen ermitteln und ausgeben:
$sql1 = 'SELECT `usd_value` FROM '.TBL_USER_DATA.' WHERE
`usd_usf_id` LIKE '.$gPreferences["spielplan_field"].' AND
`usd_usr_id` LIKE '.$row->mem_usr_id;
$result1 = $this->db->query($sql1);
$row1 = $this->db->fetch_object($result1);
$return .= '<option value="'.$row->mem_usr_id.'"';
// falls ID des Torschuetzen u. ID des aktuellen Users uebereinstimmen, diesen Markieren.
if ($row->mem_usr_id == $player_id)
{
$return .= ' selected="selected"';
}
$return .='>'.$row1->usd_value.'</option>';
}
$return .= "</select>";
return $return;
}
*) danach der "Kopf" fuer den Select-Teil in die Rueckgabevariable geschrieben.
*) dann eine Liste der ID's der User mit der gewaehlten Rollenmitgliedschaft aus der Tabelle "TBL_MEMBERS" ausgelesen.
*)Anhand dieser Liste wird das eingestellte Feld aus der Tabelle "TBL_USER_DATA" ausgelesen.
*)Und dies dann zwischen "<option>" und "</option>" geschrieben.
*)Am Ende "</select>" wieder geschlossen und das ganze zurueckgegeben.
Ich vermute das dies noch viel einfacher geht und ob mir hier eventuell jemand einen Tip geben koennte?
(ich vermute das es mit JOIN gehen sollte, nur blick ich da noch nicht zu 100% durch )
MfG & schoenes WE
D347h
PS:
Dieses Wochenende kann ich hier leider nicht mehr nachsehen, Rock im Park ruft