php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.08.2006, 12:01  
Erfahrener Benutzer
 
Registriert seit: 04.12.2005
Beiträge: 286
PHP-Kenntnisse:
Fortgeschritten
snatch-ic
Standard Adressen ausgeben

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:
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");

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:
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 
Ich hoffe man kann verstehen was ich meine.
Um das oben beschriebene auszugeben benutze ich Smarty.
snatch-ic ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.08.2006, 12:14  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Bei fehlenden Daten einfach als Standard-Wert nen leeren String oder (falls notwendig) einfach einen Zeilenumbruch.
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 23.08.2006, 12:21  
Erfahrener Benutzer
 
Registriert seit: 17.07.2006
Beiträge: 140
louis
Standard

Hmmm...vielleicht wäre das Smarty-Template ganz hilfreich für eine sinnvolle Antwort!
__________________
mfg louis
louis ist offline  
Alt 23.08.2006, 13:15  
Erfahrener Benutzer
 
Registriert seit: 04.12.2005
Beiträge: 286
PHP-Kenntnisse:
Fortgeschritten
snatch-ic
Standard

Zitat:
Zitat von KingCrunch
Bei fehlenden Daten einfach als Standard-Wert nen leeren String oder (falls notwendig) einfach einen Zeilenumbruch.
ich hätte es aber gerne so das bei fehlenden daten überhaupt keine spalte angezeigt wird. ein leerer string oder ein zeilenumbruch wäre ja kein problem.

hier das momentane template:
Code:
{foreach from=$address_data item=address_data}
  {$address_data.anrede}
  {$address_data.vorname}
  {$address_data.nachname}
{/foreach}
so sieht es grundsätzlich aus.
momentan nutze ich das aber nur zu testzwecken.
das entgültige template hab ich aber noch nicht fertig.

ich habe schon nach plugins für smarty gesucht die es möglich machen das einfach nur das array durchlaufen wird und dabei ausgegeben wird.
habe aber noch keine möglichkeit gefunden.
snatch-ic ist offline  
Alt 23.08.2006, 13:49  
Erfahrener Benutzer
 
Registriert seit: 17.07.2006
Beiträge: 140
louis
Standard

Frage halt im Template ab, ob die Variable leer ist, und geb dann das entsprechende aus.

http://smarty.php.net/manual/de/lang...unction.if.php
louis ist offline  
Alt 23.08.2006, 14:01  
Erfahrener Benutzer
 
Registriert seit: 04.12.2005
Beiträge: 286
PHP-Kenntnisse:
Fortgeschritten
snatch-ic
Standard

ja klar, danke für den tipp.
das ich da nicht selber drauf gekommen bin ärgert mich jetzt gerade ziemlich...
aber naja. manchmal hat man in seiner denkeinheit auch mal ne blockade
snatch-ic ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Doppelte E-Mail Adressen herausfinden r-ene PHP Tipps 2008 16 16.07.2008 12:54
verschachtelte Rubriken ausgeben / alle anzeigen prinzli PHP Tipps 2008 3 25.02.2008 22:37
Mod Rewrite - nur für Adressen größer als ? tayke Server, Hosting und Workstations 9 02.05.2007 14:30
Es werden zuviel Daten ausgeben Kein Genie PHP Tipps 2006 5 12.11.2006 12:37
Download starten (header funktion), vorher Text ausgeben? Harakiri81 PHP-Fortgeschrittene 19 16.05.2006 21:15
Spaltennamen ausgeben PHP Tipps 2005-2 13 26.10.2005 12:39
Höchste IP ausgeben krummzahn PHP Tipps 2005-2 9 17.10.2005 00:16
Ein Datensatz ausgeben PHP Tipps 2005 8 02.06.2005 21:52
Ein Nutzer mehrere IP Adressen innerhalb von Minuten? CSS PHP Tipps 2005 14 23.05.2005 20:59
HTML - Datei ausgeben PHP Tipps 2005 5 19.02.2005 16:58
Funktion ausgeben PHP Tipps 2005 8 10.01.2005 17:18
[Erledigt] Array ausgeben PHP Tipps 2004-2 4 05.12.2004 00:53
[Erledigt] Ganze Tabelle ausgeben PHP Tipps 2004-2 1 21.11.2004 16:48
datenbank: gleiche zeileninhalte nur 1 mal ausgeben PHP Tipps 2004 1 16.10.2004 20:23
spalte auswählen und alle einträge ausgeben Datenbanken 6 02.08.2004 13:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php adressen ausgeben a b, smarty url adresse ausgeben, adressen ausgeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.