PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : File() Ausgabe mit Explode über HTML Tabelle...


The Prophet
08.12.2002, 14:23:13
Moin,

habe mal wieder ein Problemchen und sehe vor lauter Bäumen den Wald nicht ;-(
Also ich habe ein Statistikdatei in der wird nach folgendem Muster gespeichert

1######### - Anzahl der Zugriffe
# 0000000001, 08.12.2002 - 11:47:37, IP: 127.0.0.1, DNS-Name: localhost, Browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1), FROM: http://localhost/guestbook/admin/index.php
# 0000000001, 08.12.2002 - 11:47:37, IP: 127.0.0.1, DNS-Name: localhost, Browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1), FROM: http://localhost/guestbook/admin/index.php

Diese lasse ich nach diesem Muster ausgeben
Show me I (http://jenner.rz.tu-ilmenau.de/~sele-wi/stats.php)
Soweit so gut. Allerdings wollte ich das ganze jetzt verbessern und den erzeugten Array per Explode teilen und die Ergebnisse einzeln auflisten. Das ganze sollte dann so aussehen.
Show me II (http://jenner.rz.tu-ilmenau.de/~sele-wi/stats2.html)

Nur leider komme ich im Moment damit überhaupt nicht zu rande. Das das ganze Eintrag für Eintrag und Eigenschaft für Eigeschaft getrennt ist.
Wäre nett wenn mir wer helfen könnte.
danke
mfg

wolles
08.12.2002, 15:57:28
wenn ich das richtig verstehe, ist deine Variable $line ein array.

dann brauchst du nur noch eine kleine schleife in deinen code mit

einzubauen.

Ersetze einfach
_________________________________________________

echo '<tr><td bgcolor="'.GetDifferentColours($i).'">'.$line.'</td></tr>';

_________________________________________________

durch
_________________________________________________

for ($j=0;$j<6;$j++)
{echo "<td bgcolor='".GetDifferentColours($i)." '>$line[$j]</td>"}
_________________________________________________

ich denke, das müßte klappen.

wenn jetzt $line kein Array, sonder eine Variable ist , dann mußt du

vorher mit explode in den entsprechenden array umwandeln

$line = explode(",",$line); (daß müßte dann vor der for-schleife stehen)

The Prophet
08.12.2002, 19:05:48
Dank dir für deine Antwort. Aber wirklich weiter bin ich nicht. Ich raff es heute einfach nicht.
Die for Schleife erzeugt mir noch weitere 5 Leerzeilen.
Und ich weiß net warum.
http://jenner.rz.tu-ilmenau.de/~sele-wi/stats.php

wolles
08.12.2002, 22:20:13
Oh sorry, ich hab's nicht so genau gepostet.
Die <tr> tags dürfen natürlich nicht mit in die Schleife.
und du hast eine } klammer falsch gesetzt( die for-schleife ist ja vor der Erhöhung von $i zuende.

$lines = file("daten.txt","r");
foreach($lines as $line_num => $line) {
trim($line);
echo"<tr>";
$line = explode(",",$line);
for ($j=0;$j<6;$j++) {
echo '<td bgcolor="'.GetDifferentColours($i).'">'.$line[$j].'</td>';
echo"</tr>";
}
$i++;
}
echo '</table>';

so müßte es eigentlich funzen!

The Prophet
08.12.2002, 22:58:12
Danke das funktioniert soweit. Allerdings ist die Ausgabe vertikal und nicht horizontal wie es Platzsparrend wäre. Hast du ne Idee wie ich das ganz also vertikal anordne und jedes Element in der entsprechenden Tabelle also mit Bezeichner ausgeben lasse.

mfg
Thx

wolles
09.12.2002, 01:18:37
Kann ich das so verstehen, daß die Tabelle so aussehen soll, daß in der ersten Spalten deine Titel stehen und dann in den nächsten Spalten die Werte der einzelnen User?
Erscheint mir nicht so sinnvoll, da die Tabelle bei ich sach mal 30 Usern zwar nur 6 zeilen hoch, aber dafür ziemlich breit werden würde.
Oder hab ich da was falsch verstanden?

The Prophet
09.12.2002, 12:26:24
Also ich dachte mir das so..

Eigenschaft1 Eigenschaft2 Eigenschaft3 Eigenschaft4
Wert1 Wert2 Wert3 Wert4


mfg

wolles
09.12.2002, 18:04:59
Also wie ich zuerst dachte. Dann müßte meine alter Post stimmen, bis auf (ups!!) den klitzekleinen Fehler den ich noch übersehen habe.


echo '<td bgcolor="'.GetDifferentColours($i).'">'.$line[$j].'</td>';
echo"</tr>";
} <<<Die Klammer muß eine Zeile nach oben vor den </tr>-tag
$i++;
}
echo '</table>';

ich hoff ich hab jetzt nichts mehr übersehen.

:-)

The Prophet
09.12.2002, 23:17:46
Jap stimmt :) Hast du ne Idee wie ich nun noch die Werte davor bekomme. Also. Meintwegen IP und dann darunter oder daneben je nach der Anordnung die Werte auzugeben.

wolles
09.12.2002, 23:39:25
Das ist doch jetzt ganz einfach.
ich würd einfach schnell nen array definieren mit den Werten drin und ihn dann wieder über ne schleife ausgeben.

also kurz angedeutet:

$titel=('ip','browser', 'titel3',.....)
echo "<tr>"
for ($i;$i<6;$i++)
{echo "<td>".$titel[$i]."</td>";}
echo "</tr>";

is ja nicht bös gemeint, aber da hättest Du doch jetzt selber drauf kommen können :-)

The Prophet
09.12.2002, 23:49:42
Dank dir :)
Hatte schon zu lange probiert als das ich noch Lust hätte... ;)

doudie
10.12.2002, 04:03:38
ein hoch auf die arrays