php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.11.2004, 10:41  
Gast
 
Beiträge: n/a
Standard [Erledigt] formatierung der ausgabe, felder mit zeilenumbruch

ich möchte gerne datensätze auf einer seite ausgeben. ein datensatz besteht aus mehreren feldern. alle felder sollen aber in einer zeile passen, das heißt: ein langes feld soll umgebrochen werden.

beispielausgabe

|name**|text**********|
-----------------------
-----------------------
|klaus*|klaus*ist*der*|
|******|weihnachtsmann;
|sabine;ist*blond*****|
|peter*|hat*kurze*****|
|******|haare*********|


kann mysql so eine ausgabe erzeugen?
wenn nicht, wie programmiere ich eine solche ausgabe am geschicktesten?
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.11.2004, 10:44  
Erfahrener Benutzer
 
Registriert seit: 25.02.2004
Beiträge: 1.524
Orolhawion
Standard

PHP-Code:
<?php
echo "<table><tr><td>head1</td><td>head2</td> ... </tr>";

while (
$row=mysql_fetch_array($result))
{
    echo 
"<tr><td>$row[feld1]</td><td>$row[feld2]</td> ... </tr>";
}

echo 
"</table>";
?>
sowas? wenn du keine tables willst, dann schreib die $rows hinternander und abschließende
oder setz die $rows in

</p>
irgendwie so halt..
__________________
"die Mitte des Textes kann ja theor. mitten in einem Text liegen"

http://www.jagr.de/
Orolhawion ist offline   Mit Zitat antworten
Alt 19.11.2004, 10:59  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$len 80;  // Maximale Zeilenlänge
while ($row mysql_fetch(row))
{
    
$zeile '';
    foreach(
$row as $feld)
    {
        if ((
strlen($zeile) + strlen($feld)) > $len)
        {
            echo 
"$zeile
"
;  // Wenn Text + aktelles Feld länger
            
$zeile '';                // Text ausgeben
        
}
        
$zeile .= $feld;
    }
    echo 
"$zeile
"
;  // Rest des Datensatzes ausgeben

__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 21.11.2004, 21:21  
Gast
 
Beiträge: n/a
Standard

@Orolhawion
was ist das denn für ein name!? deine idee ist in der tat geschickt, in html kann man den width-tags die formatierung überlassen.

@lazydog
danke für die anregung, aber mit mehr als 2 feldern klappt das nicht, wenn ich das richtig blicke.

ich hoffe, es ist kein absoluter frevel perl code hier wiederzugeben, denn ich habe es mit perl und einer textdatei gelöst!?

inhalt von text

12;123456;123456789
123456;123456789;12

ausgabe von cs_format.pl

12**|1234|1234|
****|56**|5678|
****|****|9***|
1234|1234|12**|
56**|5678|****|
****|9***|****|


cs_format.pl

open file , "text" ;
@zeilen=<file>;
@max_len = ( 4, 4, 4) ;

foreach (@zeilen)
{
chop $_;
@feld = split ";", $_;
while ( check (@feld) )
{
@feld = reduce(@feld);
print "\n";
}
}

sub reduce
{
my @array = @_;
for ( $i=0 ; $i<=$#array ; $i++ )
{
if ( length @array[$i] > @max_len[$i] )
{
print substr (@array[$i], 0 , @max_len[$i]) , "|" ;
@array[$i] = substr (@array[$i], @max_len[$i]) ;
}
else
{
printf("%-4s|", @array[$i] ) ;
@array[$i] = "";
}
}
return @array;
}

sub check
{
foreach (@_)
{
if ( $_ != "" )
{
return false;
}
}
}
  Mit Zitat antworten
Alt 25.11.2004, 10:34  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Ich weiss nicht, ob das Thema noch aktuell ist. Ich habe die Frage zuerst falsch verstanden und nur die ganzen Zeilen umgebrochen. Es sollte aber kein grosses Problem sein, das Perl-Script nach PHP zu übersetzen. Ich habe allerdings einen etwas anderen Ansatz gewählt:
PHP-Code:
echo "<font face='Courier'>";  // Nicht-proportionale Schrift
$zeilen file('text');
$max_len = array(444);

foreach(
$zeilen as $zeile)
{
    
$zeile chop($zeile);
    
$felder split(";"$zeile);
    
ausgabe($felder$max_len);
}

function 
ausgabe($felder$max_len)
{
    
$anz get_zeilen($felder$max_len);
    for(
$i 0;$i $anz;$i ++)
    {
        
$zeile[$i] = '';
        for(
$j 0;$j count($felder); $j ++)
        {
            
$zeile[$i] .= substr($felder[$j], 0$max_len[$j]);
            for (
$n strlen($felder[$j]);$n $max_len[$j];$n ++)
            {
                
$zeile[$i] .= "";
            }
            
$zeile[$i] .= '|';
            
$felder[$j] = substr($felder[$j], $max_len[$j]);
        }
        echo 
"$zeile[$i]
\n"
;
    }
    return(
$felder);
}

function 
get_zeilen($felder$max_len# Anzahl benötigte Zeilen bestimmen
{
    
$anz 1;
    for(
$i 0;$i count($felder); $i ++)
    {
        
$fld_len strlen($felder[$i]);
        
$loc_anz ceil($fld_len $max_len[$i]);
        
$anz max($loc_anz$anz);
    }
    return(
$anz);
}
echo 
"</font>"
Allerdings stellt sich die Frage, ob man nicht besser mit einer Tabelle arbeiten sollte, dann müsste das Ganze auch mit jeder andern Schrift gehen. Dazu schreibst du vor und nach der ersten foreach-Schleife:
PHP-Code:
echo "<table border='1' frame='vsides' rules='cols'>\n";
...
echo 
"</table>\n"
und die Funktion ausgabe() sieht dann folgendermassen aus:
PHP-Code:
function ausgabe($felder$max_len)
{
    
$anz get_zeilen($felder$max_len);
    for(
$i 0;$i $anz;$i ++)

    {
        echo 
"<tr>";
        
$zeile[$i] = '';
        for(
$j 0;$j count($felder); $j ++)
        {
            
$zeile[$i] .= '<td>' substr($felder[$j], 0$max_len[$j]) . '</td>';
            
$felder[$j] = substr($felder[$j], $max_len[$j]);
        }
        echo 
"$zeile[$i]</tr>\n";
    }

Wenn du mehr Felder hast, musst du nur noch den Array $max_len anpassen.
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Antwort


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
Textarea mit Zeilenumbruch HSFighter HTML, Usability und Barrierefreiheit 8 22.10.2007 14:04
Textarea mit Zeilenumbruch Andi00 HTML, Usability und Barrierefreiheit 2 19.10.2007 20:44
HTML Formatierung beibehalten HaraDej PHP Tipps 2007 6 15.02.2007 16:12
Problem mit Ausgabe bzw. Abfrage mit ORDER BY mayer Datenbanken 7 02.07.2006 21:45
[Erledigt] Zeilenumbruch bleibt erhalten - trotz entfernen? PHP Tipps 2005-2 3 16.10.2005 02:22
Zeilenumbruch PHP Tipps 2005-2 5 01.10.2005 08:19
Ausgabe der Auswahlliste PHP Tipps 2005-2 6 21.09.2005 13:43
3 Tabellen verbunden -- Ausgabe in einer Spalte Datenbanken 4 06.09.2005 10:43
automatischer zeilenumbruch bei gb ausgabe PHP Tipps 2005-2 6 03.07.2005 11:25
[Erledigt] Geteilte Ausgabe an den Browser... PHP-Fortgeschrittene 4 01.07.2005 13:07
leere felder entfernen PHP Tipps 2007 14 04.01.2005 10:59
felder gegebenen falls überprüfen und sonst mail schicken. lindner PHP Tipps 2004-2 1 14.11.2004 15:47
Sortierung der Ausgabe PHP-Fortgeschrittene 3 08.10.2004 09:22
zeilenumbruch in mysql gibt als ausgabe in pdf sonderzeichen PHP Tipps 2004 10 27.09.2004 23:08
PHP -> PDF Ausgabe mit Zeilenumbruch über MySQL tekknotrip PHP Tipps 2004 6 23.08.2004 16:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zeilenumbruch sql ausgabe, echo zeilenumbruch beibehalten, php mysql zeilenumbrüche aus feld werden nicht, php textdateien zeilenumbruch in datensatz, mysql ausgabe umbruch nach 2 zeilen, html table td anzahl zeilen bei umbruch ermitteln, zeilenumbruch aus sql ausgeben php, sql echo zeilenumbruch, zielformatierung feld zeilenumbruch, mysql ausgabe zeilenumbruch in $row-> ;, sql ausgabe feld mit zeilenumbruch, sql ausgabe spalte zweizeilig, php text formatierung ausgabe zeilenumbruch, zeilenumbruch ausgabe echo, html ent_quotes, sql ausgabe formatieren zeilenende, sql zeilenumbruch bei einer ausgabe, zeilenumbruch in sql ausgabe, ausgabefelder php, echo zeilenumbruch sql

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:00 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.