Autor | Zpráva | ||
---|---|---|---|
RewOrKer Profil * |
#1 · Zasláno: 2. 4. 2012, 20:16:12
Ahoj, mám tu takové větší dilema a prostě už nevím jak dál :/
Mým cílem je vytvořit tabulku na stránce, ve které by se zobrazila struktura tabulky v databázi MySQL. Jdu na to takhle: $query = mysql_query("SELECT name_id, name, alias FROM uzivatele ORDER BY name_id desc"); echo "<table>"; while($row = mysql_fetch_assoc($query)){ echo "<tr>"; echo "<td><li class='".$row['name']."'><a href=\"index.php?page=review&ext=user-".$row['name']."\">".$row['alias']."</a></li></td>"; echo "</tr>"; } echo "</table>"; Mým cílem vzhledu tabulky je vytvořit dva sloupce tím způsobem, že 1. řádek u db bude vlevo, 2. vpravo, 3. o řádek níže vlevo, 4. řádek vpravo... Jen prostě nevím jak na to, budu rád za každou radu :) Předem díky! |
||
Someone Profil |
#2 · Zasláno: 2. 4. 2012, 20:18:43
Myslíš něco jako, že každý sudý bude odsazený např. o 15px z leva?
|
||
RewOrKer Profil * |
#3 · Zasláno: 2. 4. 2012, 20:21:13
Prostě aby byly vedle sebe, aby se vytvořila tabulka s dvěma sloupci a logicky s polovinou řádků než je v databázi.
|
||
panther Profil |
RewOrKer:
vybíráč z DB 3 sloupce, ale vypisovat chceš vedle sebe jen dvě buňky. Chápu tedy dobře, že chceš vypsat dvě buňky a do každé jedno jméno? Pak by to bylo takto: $query = mysql_query("SELECT name_id, name, alias FROM uzivatele ORDER BY name_id desc"); echo "<table>"; $i = 0; while($row = mysql_fetch_assoc($query)){ if ($i % 2 == 0) { echo '<tr>' . PHP_EOL; } echo "<td><li class='".$row['name']."'><a href=\"index.php?page=review&ext=user-".$row['name']."\">".$row['alias']."</a></li></td>" . PHP_EOL; $i++; } echo "</table>"; |
||
RewOrKer Profil * |
#5 · Zasláno: 2. 4. 2012, 20:27:54
Ó, proboha děkuji :)
To je přesně to co potřebuju, ale mohl by jsi mi prosím osvětlit situaci? Vůbec nechápu oč jde .. :/ ... Například .PHP_EOL; - co to je? nebo $i ... Jinak mockrát děkuji ;) |
||
Someone Profil |
#6 · Zasláno: 2. 4. 2012, 20:39:02
Já jsem problém řešil takto.
|
||
RewOrKer Profil * |
#7 · Zasláno: 2. 4. 2012, 20:43:30
Ale já stále nechápu co v obou příkladech znamená například to $i ... Mohl by mi to prosím někdo osvětlit?
|
||
Someone Profil |
Ono $i nám pomáhá zjistit zda se jedná o sudý nebo lichý výpis. Já si ve svém příkladě nastavuji $i hodnotu 1, při každém cyklu zjišťuji, zdaje $i 1 nebo 0 na základě toho nastavim opačné číslo ($i == 1 tak nastavím $i na nulu)
$i=($i==1?0:1);
Poté podmínkou zjišťuji, zda je $i rovno 0 a pokud ano, vypíšu otevírací tag řádku <tr> : while ($vysledek=mysql_fetch_assoc($sql)) { $i=($i==1?0:1); echo " ".($i==0?'<tr>':'')." <td>".$vysledek['id']."</td><td>".$vysledek['jmeno']."</td> ".($i==1?'</tr>':'')." "; } while ($vysledek=mysql_fetch_assoc($sql)) { $i=($i==1?0:1); echo " ".($i==0?'<tr>':'')." <td>".$vysledek['id']."</td><td>".$vysledek['jmeno']."</td> ".($i==1?'</tr>':'')." "; } |
||
panther Profil |
RewOrKer:
PHP.EOL je PHP konstanta, aby se zalomil generovaný zdroj na více řádků a nebyl to kilometrový řádek. Pro přehlednost.
„stále nechápu co v obou příkladech znamená například to $i“ Proměnná, která má počátečí hodnotu 0 a při každém průchodu cyklem se zvětší o jedničku (ř. 10). $i++ je totéž co $i = $i + 1 . No, a pokud je ta proměnná sudá (0, 2, 4, 6, ...), tedy po vydělení dvojkou je zbytek 0 (dohledej si „modulo“, to je to procento), vypíše nový řádek tabulky. To znamená, že pro liché hodnoty proměnné „i“, tedy liché průchody cyklem, bude podmínka false a nový řádek <tr> se nevypíše (a díky tomu se vytvoří pravá buňka toho řádku).
Dál si pak všimni, že jsem pro přehlednost (a možnost vyhnout se další podmínce podmínce testující sudý/lichý řádek) vynechal nepovinnou značku </tr> - ta není zapotřebí (stejně jako </td> ), bez ní se stává tento generovaný příklad pro pochopení přehlednější.
|
||
RewOrKer Profil * |
#10 · Zasláno: 2. 4. 2012, 20:57:55
Mnohokrát díky, Someone, panther :)
|
||
Časová prodleva: 12 let
|
0