Table height abhängig von Datensatzmenge

Tribalman

Erfahrenes Mitglied
Hallo zusammen.

Ich hab mich gerade durch einen ganzen Haufen
Suchergebnisse gekämpft aber nichts passendes
gefunden. Ich habe eine kleine Internetseite mit
Datenbankanbindung gebaut.

Ich möchte in einem festen Raster arbeiten.

Deshalb sollen die Tabellen, in die die Datensätze
eingefügt werden feste Höhen haben, und zwar in
Abhängigkeit von den enthaltenen Textmengen.

Dazu müsste ich wissen wieviele Textzeilen in
einem Datensatz enthalten sind bzw. wieviele
Zeilen der Datensatz in der HTML-Tabelle benötigt
(was ja von der Tabellenbreite abhängig ist)

Ist das überhaupt möglich?

Ich weiß, das man die Zeilenzahl von txt-Dateien
auslesen kann, aber ich arbeite ja nicht mit txt´s.


Bin für jede Hilfe dankbar.

Stefan
 
das ist zwar fürs HTML Forum eher gedacht denke ich aber wie wärs du probierst es einfach ohne Höhe anzugeben, dann streckt sie sich doch dementsprechend.
 
Nein, das wird nicht funktionieren. Ich arbeite mit
einem festen Raster. Die Tabellen-Höhen sollen
immer Vielfache von 27 (Pixel) sein. Hier ist mal
ein link zu einem Screenshot, vielleicht wird´s dann
klarer

screenshot

Ich habe im PHP-Forum gepostet, weil ich hoffe, die
Höhe der Tabellen dynamisch an die Datensatzmenge
anzupassen. Wenn der Datensatz 2 Textzeilen benötigt,
dann sollen die Höhe der Tabelle 2 * 27 Pixel betragen,
bei drei Textzeilen 3 * 27 pixel usw.

Die gepunkteten Linien, die die Texte trennen, sollen
auf der gleichen Höhe sein wie die Linien zwischen
den Navigationspunkten.
 
Zuletzt bearbeitet:
Naja dir wird das ganze ja in string Format zurückgegeben.

Wenn du die sachen in der DB mit zeilen umbrüchen gespeichert hast kannst du sie mit
nl2br
in html zeilen umbrüche umwandeln.

anschließend mit
count_chars
nach der anzahl der <br>'s suchen.

Dann hast du die anzahl der zeilen.

Und kannste deine tabellen dementsprechen generieren.
Sollte so . :)
 
Die Idee die Zeilenumbrüche zu zählen finde ich
gut – darüber habe ich auch schon nachgedacht.
Die Texte in der Datenbank sind allerdings (bis
auf Ausnahmen) ohne Zeilenumbrüche. Ich lasse
sie "automatisch" von HTML umbrechen.

Gibt es eine Möglickeit herauszubekommen,
wieviele Zeilenumbrüche HTML erzeugt?

Eine andere Idee: Alle Zeichen in einem Text
zählen (auch Leerzeichen). Durchschnittliche
Zeichenzahl pro Zeile ermitteln. Die Daraus
resultierende Anzahl von Zeilenumbrüchen
errechnen. Geht das?

Da ich mich damit nicht so gut auskenne kann es
durchaus sein, dass ich viel zu kompliziert denke ...

Stefan
 
Zuletzt bearbeitet:
Ja das mit den Zeichen zählen hab ich mir auch schon gedacht. Problem ist nur wenn du nach der Anzahl der Zeichen einen Zeilenumbruch setzt, wirst du dir deine Worte zerschießen.

Du könntest es aber mal probieren.
Sprich alle Zeichen zählen. Um die Anzahl der Zeichen die eine Zeile maximal haben soll vorrücken und dann nach dem letzten Leerzeichen suchen, sprich zum letzten Leerzeichen zurrückgehen. dort ein "\n" setzen und das ganze wieder von vorne.

Anschließen die "\n"'s zählen und du hast die Anzahl der Zeilen.
Hab aber keine Funktion gefunden die das bewrkstelligen könnte.

Aber was andres is mit eingefallen:

zerteil den string anhand der leerzeichen zu einem array:
explode(" ",$string);

und dann baust du dir ein neues array wobei in jedem feld eine zeile steht.
Sagen wir mal maxZeilenlänge ist 50.
for($i=0,$i<=strlen($string),$i++)
{

array[$j] .=" ".$string[$i].";
if (strlen(array[$j] > 40)//Das ist halt nicht so ganz sauber aber mir fiel nix andres ein. aber im normal fall hat ein Wort nicht mehr als 10 Zeichen, kannste ja variieren.
{
$j++;
}
}

Dann haste im $array pro feld eine Zeil die nicht mehr als 50 Zeichen lang sein sollte.

Evtl hilft dir ja meine Idee :)
 
Danke für deine Hilfe. Werde da mal drüber nachdenken.
Die erste Idee scheint mir sehr interessant. Keine Ahnung
ob ich das hinbekommen. Ich fürchte aber, dass wird eine
ganze Menge an Problemen mit sich bringen.

Ich muss mich jetzt um ein paar andere Dinge kümmern.
Melde mich vieleicht heute abend nochmal ...

Stefan


P.S.:
Hier ist mal ein Screenshot wie es aussähe,
wenn ich den Tabellen keine festen Höhen
zuweisen würde. Die Linien zwischen den
Texten wären dann nicht im Raster ...

screenshot
 
Zuletzt bearbeitet:
Ich denke Du wirst das ganze eh nicht hinbekommen.
Hast Du schon mal getestet wie das ganze z. B. im Firefox aussieht?
Und was ist, wenn jemand nicht 100% sondern 110% Schriftgrad angegeben hat?
Oder wenn jemand Deine Schriftart durch seine eigene ersetzt und dadurch die Zeilenumbrüche anders sind?
Frage über Fragen ...

redlama

P.S. Da Du Dich mit dem GEvD beschäftigst, weißt Du ob es in Düsseldorf einen guten CVJM gibt und wenn ja wo der sitzt? Wenn ja, bitte einmal per pn an mich, Danke!
 
Oh mann. Ich fürchte du hast recht. Es gibt einfach
zuviele Variablen, die es zu berücksichtigen gilt.
Zu dumm. Wahrscheinlich bin ich eh der einzige,
der auf solche Details Wert legt. Andererseits
kann ich mir nicht vorstellen, das ich der erste
bin, der sich mit dieser Problematik je befasst hat.

Vielleicht sollte ich mal im Netz surfen und Seiten
suchen, bei denen eine rastergenaue Gestaltung
eingehalten wird ...
 
Ausserdem sollte man auch beachten, dass man den Browser verkleinern kann und daher ohne Zeilenumbruch die Zeilen vielleicht angepasst werden. Du könntest dies vielleicht mit Hilfe von JavaScript machen und die höhe des Textes, welcher in einem unsichtbaren Textfeld oder so steht mit einbeziehen.
 

Neue Beiträge

Zurück