WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   tabellenbreite in php (http://www.wcm.at/forum/showthread.php?t=31571)

spunz 27.09.2001 17:53

tabellenbreite in php
 
wie kann ich tabellenbreiten unter php angeben

echo "<td width=\"20\">ID</td>";

so funzt es bei mir leider nicht.




echo "<td width="20">ID</td>";

so funkts logischerweise auch nicht. wer kann mir da weiterhelfen? ich hasse html/php/js :D

ben81 27.09.2001 19:24

Am Einfachsten:

Schreibe width='20', also mit einfachen Anführungszeichen oder aber du lässt sie ganz weg: width=20. Ich schreibe sicherheitshalber immer width=20px.

Es gäbe auch kompliziertere Möglichkeiten mit Ascii-Code und so weiter, aber so geht's auch.

RaistlinMajere 28.09.2001 00:46

machst es am besten so, wie ben es geraten hat, mit '

echo "<td width='20px'>ID</td>";

wobei ich wirklich auch px angeben würde, der sicherheit wegen.

_m3 28.09.2001 00:50

Also, um ein einfache Beispiel zu geben:
<html>
<head>
<title>x</title>
</head>
<body>
<h1>Table:</h1>
<table border="1">
<tr>
<?php
echo "<td width=\"20\">X</td>";
echo "<td width=\"40\">Y</td>";
?>
</tr>
</table>
<hr>
</body>
</html>

Du schreibst leider nicht, was nicht funktioniert und in welchem Browser bzw. welchen PHP-Fehler Du bekommst. Beim Mozilla 0.9.4 schaut mein Demo so aus, wie erwrtet, Ie 5.5 detto.

_m3 28.09.2001 00:57

PS: Laut XHTML Spezifikation muessen es doppelte Anfuehrungszeichen sein: http://www.w3.org/TR/2000/REC-xhtml1-20000126/#diffs

635csi 28.09.2001 01:36

vielleicht hilft diese Adresse weiter http://www.phparchiv.de/discus/board-menu.html

spunz 28.09.2001 14:51

thx fürs erste.

leider funzt es nicht. fehlermeldung bekomm ich gar keine, die breite ändert sich einfach nicht. wenn ich " verwende kommt natürlich ne fehlermeldung. so schauts derzeit aus:


<?php

$connection = mysql_connect("127.0.0.1","root","***") or die ("Konnte Verbindung zur Datenbank nicht herstellen!");
mysql_select_db("test") or die ("Die Datenbank konnte nicht ausgewählt werden!");

$anfrage = mysql_query("SELECT id, wsnummer, benutzername, kaufdatum FROM edv");

while ($ergebnis = mysql_fetch_array($anfrage)) {

echo "<table border=1>";
echo "<tr>";
echo "<td width='20'>ID</td>";
echo "<td width='80'>Workstationnummer</td>";
echo "</tr>";
echo "<tr>";
echo "<td>$ergebnis[0]</td>";
echo "<td>$ergebnis[1]</td>";1
echo "</tr>";
echo "</table>";


};

?>



also kurze zusammenfassung:

echo "<table border=1>"; => funzt wunderbar

echo "<td width='20'>ID</td>"; => funzt ned
echo "<td width=20>ID</td>"; => funzt ned
echo "<td width=\"20\">ID</td>"; => funzt ned
echo "<td width="20">ID</td>"; => funzt ned
echo "<td width='20'>ID</td>"; => funzt ned

die ausgabe selber funktioniert wunderbar, nur sind die einzelnen zeilen unterschiedlich breit, je nach datenmenge. das ist natürlich zu unübersichtlich :(

_m3 28.09.2001 14:56

Aeh - jetzt wird einige klarer !

Probiers mal mit

echo "<table border=1>";
echo "<tr>";
echo "<td width='20'>ID</td>";
echo "<td width='80'>Workstationnummer</td>";
echo "</tr>";
while ($ergebnis = mysql_fetch_array($anfrage)) {
echo "<tr>";
echo "<td> $ergebnis[0]</td>";
echo "<td> $ergebnis[1]</td>";1
echo "</tr>";
};
echo "</table>";

Wie lang sind denn die einzelnen Felder? Laenger als 20 bzw. 80? Schuat mir eher nahc einem Browser-Problem aus.

Philipp 28.09.2001 15:06

Und was ist wenn man es ohne echo in jeder Zeile macht z.b.

PHP-Code:

echo <<<TABELLE
<table border="1"> 
<tr>
<td width="20">ID</td> 
<td width="80">Workstationnummer</td> 
</tr>
<tr>
<td> $ergebnis
[0]</td> 
<td> $ergebnis
[1]</td>
</tr>
</table>
TABELLE; 


spunz 28.09.2001 15:37

hab jetzt beides versucht, leider funzt es nicht :heul:

@m3: die werte sind nur zum testen drin. max 40 zeichen pro zelle.

@philipp: bei deinem tip bekomm ich leider nur nen error in zeile xx :(


ich verwende opera 5.12, 5.10, ie 5.5 und 5.01 (schaut immer gleich aus)

mich stört (siehe angehängtes bild) das zb unter "gerätetyp" es zu nem zeilenumbruch kommt. verwende ich keine leerzeichen, paßt es perfekt (nur schauts halt noch blöder aus)

www.home.pages.at/gschladi/php.jpg

_m3 28.09.2001 16:06

Ahh - der Screenshot macht den Unterschied. Du hast noch mehr Spalten!

Welcome stranger to the wonderful yet scaring world of table formating!

Wie Du unter <http://www.w3.org/TR/html401/struct/...tml#h-11.2.4.4> nachlesen kannst, darf ein User-Agent (Browser) die Spaltenbreite veräendern, wenn der Content nicht passt.

Nachdem die Breite aller Zellen anscheinend breiter ist, als der im Browser darstellbare Bereich, schiebt der Browser die Zellen zusammen, um alles auf den Schirm zu bekommen.

Möglicher Workaround: Addiere die Breiten aller Spalten und definiere die Tabelle mit der dieser Breite. Dann mußt Du aber im Browser horizontal scrollen, um alles zu sehen.

HTH

spunz 28.09.2001 16:25

Zitat:

Original geschrieben von _m3

Möglicher Workaround: Addiere die Breiten aller Spalten und definiere die Tabelle mit der dieser Breite. Dann mußt Du aber im Browser horizontal scrollen, um alles zu sehen.

HTH

PERFEKT! das wars. jetzt muß ich nur noch die schrift kleiner machen und es paßt :)

thx

Philipp 28.09.2001 17:59

Zitat:

philipp: bei deinem tip bekomm ich leider nur nen error in zeile xx
Aus irgendeinen Grund gibt es einen Fehler in der echo <<<TABELLE Zeile wenn man den PHP Teil direkt über Cut & Paste herauskopiert :confused:. Bearbeitet man sie nach funktioniert es :)

hurt 30.09.2001 00:08

es funktioniert auch so...

<?php
while (irgendwas) {
?>

<table>
<tr>
<td width="20">X</td>
<td width="80">Y</td>
</tr>
</table>

<?php
}
?>

chrisgott 03.10.2001 03:40

zeilenumbruch verhindern geht so:
 
zeilenumbruch verhindern geht so:

<table>
<tr>
<td nowrap>Inhalt der ned umbrechen soll</td>
<td nowrap>Inhalt der ned umbrechen soll</td>
<td nowrap>Inhalt der ned umbrechen soll</td>
<td nowrap>Inhalt der ned umbrechen soll</td>
<td nowrap>Inhalt der ned umbrechen soll</td>
</tr>
</table>

nowrap is html 3.2, sollte also mit jedem browser gehen.

alternativ kannst auch geschützte leerzeichen &-n-b-s-p-; (die - wegmachen, musste das so machen, damits des forum ned als leerzeichen versteht) verwenden, is aber ned so klass.

alternativ kannst auch eine zeile mit einem blindgif (1x1pixel, transparent) einziehen, und mit width und height auf die gewünschte pixelzahl strecken, dann kann er kann nimma umbrechen.

alternativ dazu würd ich aber grundsätzliches überlegen, weil ich das bild gesehen hab und die händ übern kopf zsammschlagen musste:

tabelle eher in die höhe anstatt die breite zwängen (nicht alle mögen zur seite scrollen oder haben deine bildschirmauflösung)

zeichensatz/schriftgröße ändern (sponsored by blindenverband)

weniger is mehr -> auf den inhalt bezogen, hängt aber vom anwendungszweck ab.

_m3 03.10.2001 11:32

@chrisgott: "norwap" is "deprecated", also veraltet. Derartiges läßt sich mittlerweile via CSS erreichen. Siehe <http://www.w3.org/TR/html401/struct/....html#h-11.2.6>

Und die Verwendung des non-breaking-spaces bläht das HTML-File natürlich unnötig auf.

Und die "Schmäh" mit blindgif, etc. sind seit die Browser mit den Width und Height Attributen korrekt umgehen eigentlich nicht mehr nötig (außer Du willst V3 Browser unterstützen).

Aber ich stimme Dir absolut zu, dass sich spunz eigentlich eine andere Darstellung der Daten überlegen sollte.


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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag