Hallo zusammen,
folgende Fragestellung:
Ich möchte eine Joomla-Komponente anpassen und stoße hier bei einer Datenbankabfrage (MySQL) auf Probleme.
Die Komponente (DT Register) soll einen Wert aus der DB auslesen und in der Admin-Ansicht ausgeben.
<?php
$k = 0;
$i = 0;
$fieldNameMap = $this->mUser->table->TableUserfield->Tablefield->mapNametoId();
if($this->rows)
foreach($this->rows as $row){
$fee = $this->mUser->table->TableFee->findByUserId($row->userId);
$name = array();
$link = 'index.php?option=com_dtregister&task=edit&controller=user&cid[]='. $row->userId;
$field_values = $this->mUser->table->TableUserfield->findByUserId($row->userId);
$field_address = $field_values[$fieldNameMap['address']];
$field_lastname = $field_values[$fieldNameMap['lastname']];
$field_zip = $field_values[$fieldNameMap['zip']];
$field_city = $field_values[$fieldNameMap['city']];
$field_phone = $field_values[$fieldNameMap['phone']];
$field_studiengang = $field_values[$fieldNameMap['studiengang']];
$field_semester = $field_values[$fieldNameMap['semester']];
$name = array();
if(isset($field_values[$fieldNameMap['firstname']])){
$name[] = $field_values[$fieldNameMap['firstname']];
}
$name = implode(" ",array_filter($name));
$email = "";
if(isset($field_values[$fieldNameMap['email']])){
$email = $field_values[$fieldNameMap['email']];
}
?>
Das klappt bei obenstehendem Code auch (fast! ausschließlich) gut. Ausnahme ist die Abfrage des Studiengangs. Dieser ist in der DB-Tabelle (ufivb\_dtregister\_user\_field\_values
) als Zahl hinterlegt. Die zugehörigen Werte liegen in einer anderen Tabelle (ufivb_dtregister_fields) und zwar als value durch Striche voneinandergetrennt: BW: Betriebswirtschaft|IB: Internationale Betriebswirtschaftslehre usw. (BW ist also 1, IB 2 usw.)
Wie müsste denn eine korrekte Abfrage aussehen, damit in meiner Übersicht nicht die Zahlen, sonder die dazugehörigen Werte auftauchen?
Herzlichen Dank schon mal für Unterstützung!
Viele Grüße
Dominik