ugrás a tartalomhoz

Táblázat oszlopainak formázása

kecske · 2007. Aug. 29. (Sze), 06.39
Adott az alábbi php. Ez egy táblázatot generál egy csv-ből. hogyan tudnám megcsinálni, hogy a második oszlop középre a harmadik oszlop jobbra legyen zárva?

<table border="1" cellpadding="0" cellspacing="0" width="290">

<tr height="14">
<td width="120"><a>Megnevezés</td>
<td width="80" align="center"><a>Méret</td>
<td width="70" align="right"><a>Ár</td>
</tr>
<?php
$row = 1;
$handle = fopen("arak.csv", "r");
$sor=1;
while (($data = fgetcsv($handle, 1000, ";",'"')) !== FALSE)
{
if ($sor==2 || $sor==4 || $sor==6)
{
echo "<tr>";
for($i=0;$i<3;$i++)
{
echo "<td>".$data[$i]."</td>\n";
}
echo "</tr>\n";
}
$sor++;
}
fclose($handle);
?>
</table>
 
1

Szüntesd meg a for-ciklust

Thoer · 2007. Aug. 29. (Sze), 09.30
írd ki helyette a sorokat:

echo "<td>".$data[0]."</td>\n";
echo "<td align=\"center\">".$data[1]."</td>\n";
echo "<td align=\"left\">".$data[2]."</td>\n";
2

algoritmus smafu?

zila · 2007. Aug. 29. (Sze), 11.35
És ha 15 oszlop van, vagy 40?

Kell egy tömb aminek annyi eleme van ahány oszlopos a táblázat és a for ciklus ciklusváltozójával a megfelelő indexű tömbelemet bele kell írni a td-be.
$td_attrs = array('','align="center"', 'align="left"');
for($i=0; $i<3; $i++) {
   echo "<td ".$td_attrs[$i].">".$data[$i]."</td>";
}
3

átláthatóság, egyszerőség smafu?

Thoer · 2007. Aug. 30. (Cs), 09.13
Ha kávét is főz a progi, akkor pláne bele kell rakni egy rakás dolgot. A példaként hozott programban 3 sor van, a szövegben sincs más. Feleslegesen nem bonyolítok olyan dologgal ami utólag is pont ugyanannyi munkával megvalósítható.
Esetleg ajánlhatnál neki egy jó kis Datagrid osztályt is. Úgy még paraméterezhetőbb és újrafelhsználható a kód! (Akár olyat ami még tetszőleges adatbázisból is kiszedi az adatokat...)
4

átlátható?

zila · 2007. Aug. 30. (Cs), 10.44
Azért egy +tömb a meglévő for ciklus mellé szerintem pont ugyanolyan jól átlátható mint a ciklus elhagyásával megvalósított kiírás.

És igen, csinálhatsz egy függvényt (hagyjuk az objektumokat most), ami html táblázat egy sorát adja vissza és a kódodban mindenhol ahol akár 1 akár 100 oszlopos táblázatod van használhatod ezt a függvényt. Tényleg a tiéd átláthatóbb?

A magam részéről nem szertek html-t látni a kódban, ezért előszeretettel használok template rendszert és html generátor osztályokat a PEAR-ből. A kód újrafelhasználás is igen hasznos. Dehát nem vagyunk egyformák, van aki szereti a spagettit :)
5

látod ebben azért egyetértünk

Thoer · 2007. Aug. 30. (Cs), 12.52
PEAR csomagokat előszerettel használok (már ha frameworkben nincs a problémára vonatkozó, hatékony megoldás), de biztos kötekedni kell azért mert te egy problémát máshogy oldanál meg? ('smafu?')
6

kötekedés?

zila · 2007. Aug. 30. (Cs), 14.18
Csak a problémának megfelelő nyomatékot adtam a mondandómnak...

Itt nem arról van szó, hogy én hogyan oldanám meg, hanem az alapvetően jó elgondolás mentén próbálkozó kérdezőnek egy igen rossz megoldást javasoltál. Szerintem.

Nem személyes ügy :)