Hallo,
ich bin dabei ein Adressbuch zu schreiben.
Standartmäßig sollte es natürlich möglich sein sich die Adressen ausgeben zu lassen. Aber genau hier liegt mein Problem.
Die Ausgabe an sich ist kein Problem wenn alle Adressfelder ausgefüllt wurden. Wenn aber ein Adressfeld nicht ausgefüllt wurde, würde bei der Ausgabe eine Freiraum zwischen den Feldern angezeigt werden.
Um also die leeren Felder heraus zu filtern habe ich die Funktion array_filter verwendet, was auch super funktioniert.
Hier der Quellcode:
Das Problem liegt jetzt bei der Ausgabe.
Hat der User alle Daten angegeben wird alles angezeigt. Wurde aber z.B. nur die Hälfte angegeben, steht auch nur die Hälfte der Daten zur Verfügung.
Die Sache ist jetzt die das ich diese Freiräume zwischen den Daten vermeiden will. Wie kann ich das also machen das die Daten auf jeden Fall immer in einem Block angezeigt werden.
Hier noch ein kurzes Beispiel:
Ich hoffe man kann verstehen was ich meine.
Um das oben beschriebene auszugeben benutze ich Smarty.
ich bin dabei ein Adressbuch zu schreiben.
Standartmäßig sollte es natürlich möglich sein sich die Adressen ausgeben zu lassen. Aber genau hier liegt mein Problem.
Die Ausgabe an sich ist kein Problem wenn alle Adressfelder ausgefüllt wurden. Wenn aber ein Adressfeld nicht ausgefüllt wurde, würde bei der Ausgabe eine Freiraum zwischen den Feldern angezeigt werden.
Um also die leeren Felder heraus zu filtern habe ich die Funktion array_filter verwendet, was auch super funktioniert.
Hier der Quellcode:
PHP-Code:
if($address_kategorie_id <> NULL) {
$sel_address_data = mysql_query("SELECT
admin_addressbook_id, anrede,
vorname, nachname, plz, stadt, strasse, hausnummer,
tel_vorwahl, tel_nummer, mobil_vorwahl, mobil_nummer,
fax_vorwahl, fax_nummer, geb_datum, email, website
FROM
$db_t_admin_addressbook
WHERE
addressbook_kategorie_id = $address_kategorie_id
ORDER BY
nachname");
while($row_address_data = mysql_fetch_array($sel_address_data)) {
$address_data = array('anrede' => $row_address_data['anrede'],
'vorname' => $row_address_data['vorname'],
'nachname' => $row_address_data['nachname'],
'strasse' => $row_address_data['strasse'],
'hausnummer' => $row_address_data['hausnummer'],
'plz' => $row_address_data['plz'],
'stadt' => $row_address_data['stadt'],
'tel_vorwahl' => $row_address_data['tel_vorwahl'],
'tel_nummer' => $row_address_data['tel_nummer'],
'mobil_vorwahl' => $row_address_data['mobil_vorwahl'],
'mobil_nummer' => $row_address_data['mobil_nummer'],
'fax_vorwahl' => $row_address_data['fax_vorwahl'],
'fax_nummer' => $row_address_data['fax_nummer'],
'geb_datum' => $row_address_data['geb_datum'],
'email' => $row_address_data['email'],
'website' => $row_address_data['website']);
}
$address_data = array_filter($address_data);
$address_data_anzahl = count($address_data);
$smarty->assign('address_data', $address_data);
$smarty->assign('address_data_anzahl', $address_data_anzahl);
$content = $smarty->fetch("admin/address_show.tpl");
}
Hat der User alle Daten angegeben wird alles angezeigt. Wurde aber z.B. nur die Hälfte angegeben, steht auch nur die Hälfte der Daten zur Verfügung.
Die Sache ist jetzt die das ich diese Freiräume zwischen den Daten vermeiden will. Wie kann ich das also machen das die Daten auf jeden Fall immer in einem Block angezeigt werden.
Hier noch ein kurzes Beispiel:
Code:
Volständige Daten: Max Musterman Musterstr. 1 12345 Musterstadt 01234 / 56789 max@musterman.de http://www.musterman.de ----------------------------------------------- Unvollständige Daten: Max Musterman 12345 Musterstadt max@musterman.de http://www.musterman.de
Um das oben beschriebene auszugeben benutze ich Smarty.

Kommentar