| 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: 14 let
|
|||
0