Hi,
[Zeile 1-14]
Aus einer Datenbank ermittle ich Werte(uids) aus verschiedenen Feldern und speichere diese in den ensprechenden arrays ($players_uid usw..). Array deswegen, weil in einem Feld mehrere uids sind (z.Bsp 4,5,6). mit explode erstelle ich meine arrays.
[Zeile 21-33]
Nun habe ich mir in der Tabelle(tx_cfcleague_profiltyp) die Feld_Namen(profiltyp_fieldname) für players, coaches etc. erstellt, um hierdurch die Feldnamen für die Tabelle(tx_cfcleague_teams) aus der DB zu ermitteln.
Die For-Schleife funktioniert auch wunderbar, alles wird wie gewollt ausgegeben.
MEIN PROBLEM:
ich möchte überprüfen, ob ein bestimmtes ($this->piVars['id_profiles']='4') uid in dem array $players_uid ist und falls ja die checkebox ($check_result) aktivieren. Im Anschluss soll die Schleife mit dem nächsten Feld weiter machen.
Die Lösung erreicht man wenn man array_search nimmt!
Hierfür habe ich die Variable für das zweite Argument selber zusammengebaut:
$profiltyp_fieldname_var='$'.$profiltyp_fieldname[$i].'_uid';
//Ausgabe 0: $players_uid
ich erhalte aber diese Meldung:
FEHLERMELDUNG:
Warning: array_search() [function.array-search]: Wrong datatype for second argument in /opt/lampp/htdocs/beta_06/typo3conf/ext/sd_t3sports_fe_admin/pi1/class.tx_sdt3sportsfeadmin_pi1.php on line 1949 -->Die Zeile mit array_search!!!!
FRAGE:
Darf ich Variablen_Namen nicht zusammenbauen?
Danke,
Sefer
Hier der Code:
<?php
//1.)ermittelt den Datensatz der ausgewählten Mannschaft
$field='*';
$table='tx_cfcleague_teams';
$where='uid='.$this->piVars['id_team'];
$rows=$this->getItem($field, $table, $where, $groupBy, $orderBy, $limit);
while(list($c,$row)=each($rows)) {
//1.1.2 Alle profile_id's werden in den entsprechenden arrays gespeichert
$players_uid = explode(",",$row["players"]);
$coaches_uid = explode(",",$row["coaches"]);
$supporters_uid = explode(",",$row["supporters"]);
$fan_uid = explode(",",$row["fan"]);
$functionary_uid = explode(",",$row["functionary"]);
}
//print_r($players_uid);
//Ausgabe:
//Array ( [0] => 4 [1] => 5 [2] => 6 )
//#############Option aus Datenbank füllen BEGINN Funktionsauswahl
$abfrage = "SELECT * FROM `tx_cfcleague_profiltyp` ORDER BY uid";
$ergebnis = mysql_query($abfrage);
$profiltyp = array();
$profiltyp_fieldname = array();
$uids = array();
while($row = mysql_fetch_object($ergebnis))
{
$profiltyp[] = $row->profiltyp;
$profiltyp_fieldname[] = $row->profiltyp_fieldname;
$uids[] = $row->uid;
}
for ($i=0; $i<sizeof($uids); i="" profiltyp_fieldname_var="$" profiltyp_fieldnamei_uid="" check_result="array_search($this-">piVars['id_profiles'], $profiltyp_fieldname_var);
if ($check_result) $check_result='checked="checked"';
$content.='<br /><input type="checkbox" name="'.$this-" />prefixId.'[profiltyp][]" value="'.$uids[$i].'"'.$check_result.' > '.$profiltyp[$i];
}
//#############Option aus Datenbank füllen ENDE
?>
Meine Beiden Tabellen:
CREATE TABLE IF NOT EXISTS `tx_cfcleague_teams` (
`uid` int(11) NOT NULL auto_increment,
`coaches` blob NOT NULL,
`players` blob NOT NULL,
`supporters` blob NOT NULL,
`fan` text NOT NULL,
`functionary` text NOT NULL,
PRIMARY KEY (`uid`),
KEY `parent` (`pid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
CREATE TABLE IF NOT EXISTS `tx_cfcleague_profiltyp` (
`uid` int(11) NOT NULL auto_increment,
`profiltyp` varchar(30) default NULL,
`profiltyp_fieldname` varchar(30) default NULL,
PRIMARY KEY (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
--
-- Daten für Tabelle `tx_cfcleague_profiltyp`
--
INSERT INTO `tx_cfcleague_profiltyp` (`uid`, `profiltyp`, `profiltyp_fieldname`) VALUES
(1, 'Spieler', 'players'),
(2, 'Trainer', 'coaches'),
(3, 'Betreuer', 'supporters'),
(4, 'Fan', 'fan'),
(5, 'Funktionär', 'functionary');