Jan Kirchmeyer: Zeilenumbruch in PHP?

hallo,
ich hab folgendes problem:
ich hab mittels PHP SQL-Abfragen gestartet, die mir auf einer vorgefertigten seite dann ausgegeben werden.
das unten stehende skript deklariert die tabelle und die anzahl der spalten und zeilen.
in der variable $feld_ergebnis1 (6. zeile von unten) wird das ergebnis ausgegeben (es sind 3 zellen, die ausgelesen werden - A2_NAME,A5_PREIS,A4_BGF)

nun ist mein eigentliches problem, dass wenn der text mehr platz braucht, als die deklarierten 320pixel, macht er keinen zeilenumbruch, sondern er passt die zelle so an, soviel platz wie er brauch.
wie kann ich ihm denn sagen, dass er einen zeielnumbruch machen soll, wenn der text in der zelle mehr platz als die vorgegeben 320pixel benötigt. mit dem \n scheint nicht zu klappen.

danke und gruß jan

$ergebnis1 = mysql_query("SELECT A2_NAME,A5_PREIS,A4_BGF FROM haupt WHERE A4_BGF BETWEEN $flaeche_nutz_min AND $flaeche_nutz_max AND A5_PREIS BETWEEN $preis_kauf_min AND $preis_kauf_max AND D5_BRAN LIKE '%7%'");
$anzahl=mysql_num_rows($ergebnis1);
if ($anzahl == 0)

echo "<table border='0'><tr><td width='800' colspan='6' align='middle'><p class='gross'>Es wurden leider keine Einträge gefunden!!!</p></td></tr></table>";
else
while ($treffer1 = mysql_fetch_row($ergebnis1))
{
echo "<table border='0' cellspacing='0' cellpadding='0'>";
echo "<tr>\n";
echo "<td width='30'>";
echo "</td>";
echo "<td width='130'>";
echo "</td>";
echo "\t<td width='320' align='left'>\n";
echo "</td>\n";
echo "<td width='90' align='right'>";
echo "</td>";
echo "<td width='110 align='right'>";
echo "</td>";
echo "<td width='120'>";
echo "</td>";
echo "</tr>";
echo "<tr><td height='10' bgcolor='#ff9900' colspan='6'> </td></tr>";
echo "<tr>\n";
echo "<td align='middle'  bgcolor='#ff9900'></td>\n";
echo "<td align='middle'> bild</td>\n";

foreach ($treffer1 as $feld_ergebnis1)
if ($feld_ergebnis1 !="")
echo "\t<td align='left' height='40'><p class='klein'> $feld_ergebnis1</p></td>\n";
echo "\t<td align='middle'> <img src='../graphiken/b_anzeigen1.gif' width='120' height='40' border='0'> </td>\n";
echo "</tr>\n";
echo "<tr><td height='10' bgcolor='#ff9900' colspan='6'> </td></tr>";
echo "</table>";
}

  1. echo "\t<td align='left' height='40'><p class='klein'> $feld_ergebnis1</p></td>\n";

    erstmal hier die 320 reinknallen, dann noch alle Weiten aufaddieren und der tabelle als width-attribut verpassen

    Wenns dann immer noch nicht will, ist colgroup evtl. restriktiver; keine Ahnung. Kannst ja mal probieren :

    <table border="1" width="100%">
         <colgroup>
            <col width="4*">
            <col width="2*">
            <col width="1*">
         </colgroup>
        <tr>
          <td>1. Zeile, 1. Spalte</td>
          <td>1. Zeile, 2. Spalte</td>
          <td>1. Zeile, 3. Spalte</td>
        </tr>
            <!-- usw. andere Zeilen der Tabelle -->
    </table>

    1. Hallo,

      vor allem die Interpretationsschichten nicht durcheinander bringen.

      Daten in der DB
      Abfrage
      Resultset mit Verweisen auf die Daten
      Daten im PHP-Script
      PHP Quellcode
      PHP Ausgabe
        lesbare Textdatei mit Zeilenumbrüchen: \r\n
        interpretierbare HTML-Datei mit Zeilenumbrüchen: <br />
      HTML-Ausgabe
        angezeigte Daten.

      In Tabellenspalten sollte eigentlich per default umgebrochen werden, wenn die tabelle nicht mehr ins Fenster passt und im Text in der Zelle auch umbruchfähige Zeichen enthalten sind.

      Mach einfach mal ein paar Trockenübungen mit Tabellen. Dann wird es Dir klarer, als wenn Du Dir bei einem "komplexen Projekt" gleich die Ohren brichst.

      Liebe Grüße

      Tom

  2. hallo,
    ich hab folgendes problem:
    ich hab mittels PHP SQL-Abfragen gestartet, die mir auf einer vorgefertigten seite dann ausgegeben werden.
    das unten stehende skript deklariert die tabelle und die anzahl der spalten und zeilen.

    Hallo,

    es gäbe die Möglichkeit jeden Text den Du ausgeben lassen willst vorher durch eine funktion laufen zu lassen, die ungefähr so aussieht

    function short_string($s) {
     wenn länge der zeichenkette grösser 320, dann
     trenne zeichen kette an dieser stelle und füge leerzeichen ein

    gib zeichenkette zurück
    }

    sorry wenn ich keinen codeschnipsel liefern kann, bin relativ neu in php!
    hope it helps
    grüsse romy