I developed an object-oriented guestbook and I have my Class GuestBookEntry
:
class GuestBookEntry {
protected $id;
protected $entryDate;
protected $authorName;
protected $authorMail;
protected $entryText;
// getters, setters and specific functions are omitted
}
I also have a mysql
table with the same names as columns.
Well, when I fetch guestbook entries, it seems to work, but it only displays the ID
and the Date
, which where returned by getters. The other things won't return to the template.
The code looks like this:
public function showEntries() {
$query = mysql_query('SELECT * FROM dng_entries ORDER BY id DESC');
while($entry = @mysql_fetch_object($query, 'GuestBookEntry')) {
if(empty($entry)) {
echo '<font color="white">Keine Einträge vorhanden...</font>';
} else {
var_dump($entry);
echo '<table class="table table-bordered entryfield" align="right">
<thead>
<tr>
<td rowspan="2">'.$entry->getId().'</td>
<td width="20%">Datum:</td>
<td>Name:</td>
<td>Email:</td>
</tr>
<tr>
<td>'.$entry->getEntryDate().'</td>
<td>'.$entry->getAuthorName().'</td>
<td><a href="mailto:'.$entry->getAuthorMail().'">'.$entry->getAuthorMail().'</a></td>
</thead>
<tbody>
<tr>
<td width="10%" valign="middle">Eintrag:</td>
<th colspan="3" valign="top" height="100px">'.$entry->getEntryText().'</td>
</tr>
</tbody>
</table>';
}
}
}
Here's a var_dump
of e.g. object:
object(GuestBookEntry)#2 (5) { ["id":protected]=> string(1) "2" ["entryDate":protected]=> int(1344696811) ["authorName":protected]=> NULL ["authorMail":protected]=> NULL ["entryText":protected]=> NULL }
update: well here is the rest of GuestBookEntry class:
public function __construct($authorName, $authorMail, $entryText) {
$this->authorName = $authorName;
$this->authorMail = $authorMail;
$this->entryDate = time();
$this->entryText = $entryText;
}
public function getId() {
return $this->id;
}
public function getAuthorName() {
return (String) $this->authorName;
}
public function getAuthorMail() {
return (String) $this->authorMail;
}
public function getEntryDate() {
return date('d.n.Y', $this->entryDate);
}
public function getEntryText() {
return $this->entryText;
}
public function setAuthorName($authorName) {
$this->authorName=$authorName;
}
public function setAuthorMail($authorMail) {
$this->authorMail=$authorMail;
}
public function setEntryDate($entryDate) {
$this->entryDate=$entryDate;
}
public function setEntryText($entryText) {
$this->entryText=$entryText;
}
@
operator. There might be something funny going on in yourguestBookEntry
class getters/setters, show their code. – DCoder Aug 11 '12 at 14:57var_dump()
output you include shows that some of your attributes, e.g.authorName
areNULL
. Have you checked the data the query is returning? – JMM Aug 11 '12 at 14:59mysql_fetch_object
. Don't use it. – Stephen Sarcsam Kamenar Aug 11 '12 at 15:00