Hi
ich habe eine Frage zur Vererbung.
Die mir bis jetzt noch kein Tutorial und Forumeintrag ,den ich bis jetzt dazu gefunden habe beantworten konnet.
Ich habe zwei Klassen, Base als Elternklasse und Messages als Kindklasse.
In Messages gibt es die Funktion MessageRead():
PHP-Code:
public function MessageRead() {
//SQL Statement
$sql = "SELECT
m.message_id, m.content, m.betreff, m.datum, b.benutzer, m.autor
FROM
messages m, benutzer b
WHERE
m.empfaenger = '" . $this->Session->get('BenutzerId') . "' AND
b.benutzer_id = m.autor
ORDER BY
m.message_id DESC";
//Ausgabe bei Erfolg
$this->HtmlReturnSuccess = '<table class="tablemessage">
<tr>
<td class=tablemessagebetreffhighlight>
[size="1"]Betreff: ' . $this->row['betreff'] . '[/size]
</td>
<td class=tablemessageautorhighlight>
[size="1"]Von: ' . $this->row['benutzer'] . '[/size]
</td>
<td class=tablemessagedatumhighlight>
[size="1"]Am: ' . $this->row['datum'] . '[/size]
</td>
<td class=tablemessageantworthighlight>
[url="' . $_SERVER['PHP_SELF'] . '?mode=write&betreff=Re:' . $this->row['betreff'] . '&to=' . $this->row['benutzer'] . '&' . SID . '"][size="1"]Antworten[/size][/url]
</td>
<td class=tablemessagedelhighlight>
<input type=checkbox name=del_' . $this->row['message_id'] . ' value=del_' . $this->row['message_id'] . '>
</td>
</tr>
<tr>
<td class=tablemessagetext colspan=5>
' . $this->row['content'] . '
</td>
</tr>
</table>
';
//Ausgabe bei Fehlschlag
$this->HtmlReturnFailure = "Deine Nachrichen konnten nicht geholt werden.
\n";
//Ausgabe wenn keine Zeile aus der DB geholt wird
$HtmlReturnEmpty = "Keine Nachrichten vorhanden
\n";
//pruefen ob ein SQL Statement uebergeben wurde
if(empty($sql)) {
echo $this->HtmlReturnFailure;
return 'SQLEmpty';
}
echo $this->Read($sql, $HtmlReturnEmpty);
}
Mit dieser rufe ich die Funktion Read() in der Elternklasse auf:
PHP-Code:
protected function Read($sql, $HtmlReturnEmpty) {
//Datenbank Verbindung herstellen
if(!$this->ConnectDB()) {
echo "Die Verbindung zur Datenbank konnte nicht hergestellt werden";
return $this->HtmlReturnFailure;
}
//Das SQL Statement ausfuehren
//Bei Erfolg $HtmlReturnSuccess ausgeben
//Bei Fehlschlag $HtmlReturnFailure ausgeben
if($result = mysql_query($sql)) {
//feststellen wie viele Zeilen ausgewaehlt wurden
//wenn keine dann $HtmlReturnEmpty zurueckgeben
if(mysql_num_rows($result) == 0) {
return $HtmlReturnEmpty;
} else {//sonst die Tabelle zurueckgeben
$return = '';
while($this->row = mysql_fetch_assoc($result)) {
$return .= $this->HtmlReturnSuccess;
}
return $return;
}
} else {//wenn der Query nicht ausgefuehrt wurde
return $this->HtmlReturnFailure;
}
}
Ich möchte mit der Funktion MessageRead() auf die Funktion Read() zugreifen, einen Query durchführen und dann die gewonnen Daten in der Variabe $row als ein assoziatives Array speichern.
Das klappt auch, aber nun möchte ich die Daten aus dem Array in HTML Code setzen den ich mit $HtmlReturnSuccess überschreibe. Mein Problem besteht darin ,dass die Daten aus $row nicht in den HTML Code gesetzt werden.
Wie kann ich das Problem lösen?
Ich hoffe ihr versteht was ich meine.
MfG und Thx 250