Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Ošetření výpisu z databáze

Aktivity
Avatar
Michal Kuba
Tvůrce
Avatar
Michal Kuba:16.9.2014 21:12

Ahoj, znovu se ozývám :P (snad už neotravuji)
Po kratší pauze kvůli škole a jiným povinnostem jsem se dostal opět k PHP a mému webu. Již se mi podařilo udělat na stránce výpis článků z databáze a následné jejich otevření. Projel jsem si ještě "7. díl NERS - Výpis článků" a bylo vymalováno :-)
Nastylování tabulky, aby vypadal rozumně zvládnu, to mě netíží. Ovšem články se mi vypisují do tabulky, ale jen do jednoho řádku. Takže v záplavě článků to bude nevkusné. Navíc nemohu každý článek zaobalit do nějakého rámečku. Můj kód vypadá následovně a pod ním uvedu svůj problém, který potřebuji vyřešit:

<table id="vypis">
                                <?php
                                        foreach ($clanky as $clanek)
                                        {
                                                echo('<tr><td><h2>
                                                                <a href="index.php?clanek=' . htmlspecialchars($clanek['url']) . '">
                                                                ' . htmlspecialchars($clanek['titulek']) . '</a>
                                                        </h2>' . htmlspecialchars($clanek['popisek']));
                                                        if (!empty($_SESSION['uzivatel_admin']))
                                                                echo(' <a href="editor.php?url=' . htmlspecialchars($clanek['url']) . '">Editovat</a>
                                                                           <a href="clanky.php?odstranit=' . htmlspecialchars($clanek['clanky_id']) . '">Odstranit</a>
                                                                ');
                                                echo('</td></tr>');
                                        }
                                ?>
                        </table>

Jak mám docílit toho, aby se mi každý článek vypsal do samostatného řádku? Protože v echu je jasně dán jeden řádek s jednou buňkou.

Děkuji :-)

 
Odpovědět
16.9.2014 21:12
Avatar
Michal Kuba
Tvůrce
Avatar
Michal Kuba:17.9.2014 19:44

Prosím, budu velmi rád za radu. Bez tohoto to nechci pouštět na ostrý web. Plus ještě bych chtěl vědět, zda jde nějakou "formulkou" určit, který článek nechci v seznamu ukázat. Nechci, aby se mi tam ukazoval článek úvodní stránky.

 
Nahoru Odpovědět
17.9.2014 19:44
Avatar
Odpovídá na Michal Kuba
Vojtěch Novák:17.9.2014 21:55

Podle toho co tu píšeš se mi zdá, že jsi nepochopil základ PHP jako jsou cykly atd.

Prostuduj si, jak funguje foreach - http://php.net/….foreach.php

 
Nahoru Odpovědět
17.9.2014 21:55
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na Michal Kuba
Tonda Kozák:17.9.2014 22:10

Na tomhle kousku kódu jsem chybu nenašel. Nepřidal bys toho víc a ještě to, co ti to vypíše?

 
Nahoru Odpovědět
17.9.2014 22:10
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Tonda Kozák
Michal Kuba:17.9.2014 22:21

Tak ještě přidám php skript na začátku dokumentu (přihlašovací údaje k databázi jsem úmyslně vymazal)

<?php
session_start();

require('Db.php');
Db::connect('***');
if (isset($_GET['odstranit']) && !empty($_SESSION['uzivatel_admin']))
{
        Db::query('
                DELETE FROM clanky
                WHERE clanky_id=?
        ', $_GET['odstranit']);
        header('Location: clanky.php');
        exit();
}

$clanky = Db::queryAll('
        SELECT *
        FROM clanky
        ORDER BY clanky_id DESC
');

?>

Jde o to, že se mi všechny články z databáze vypíší, ale jen do jednoho okénka tabulky, což mi přijde nevkusné a nepraktické. Nebo se můžeš podívat na tento odkaz, kde zatím nejsou nahrány všechny články ale jen dva pro testování a třetí úvod. http://eni-story.cekuj.net/clanky.php

 
Nahoru Odpovědět
17.9.2014 22:21
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Vojtěch Novák
Michal Kuba:17.9.2014 22:22

Nevím, zda jsem to nepochopil, to asi nemohu posoudit, ale svůj problém jsem snad dostatečně popsal, možná je řešení jednoduché, jen ho se svými zkušenostmi (malými) neobjevím jen tak. Přidal jsem i php skript na začátku souboru pro možné najití řešení :-)

 
Nahoru Odpovědět
17.9.2014 22:22
Avatar
Pavel Junek
Tvůrce
Avatar
Odpovídá na Michal Kuba
Pavel Junek:17.9.2014 22:23

Jestli jsem správně pochopil tvůj problém, tak stačí nastavit tabulce border :)

 
Nahoru Odpovědět
17.9.2014 22:23
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Pavel Junek
Michal Kuba:17.9.2014 22:34

Ten již nastavený mám a díky tomu jsem právě zjistil, že to je jen jedna buňka pro VŠECHNY články, což nechci. V tom příkazu echo je právě přidání jen jednoho řádku a buňky. A nechci ručně pokaždé přidávat jednu buňku a řádek pro každý článek, ale aby si to php vytvořilo samo. Je to srozumitelné?

 
Nahoru Odpovědět
17.9.2014 22:34
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na Michal Kuba
Tonda Kozák:18.9.2014 6:40

Ve skutečnosti se ti to vypisuje v pořádku:

<table id="vypis">
<tr><td>
<h2><a href="index.php?clanek=tureckyUpir">Turecký upír</a></h2>
Příběh o skutečném upírovi, strašidelné čtení!
</td></tr>
<tr><td>
<h2><a href="index.php?clanek=wendigo">Wendigo</a></h2>První příběh
</td></tr>
(...)
</table>

Tvůj problém je v CSS. Sice jsi nastavil tabulce border, ale nastavil jsi ho pouze tabulce, ne buňkám. Proto máš ohraničenou tabulku a ne jednotlivé buňky tabulky.
http://kod.djpw.cz/ysfb

Editováno 18.9.2014 6:42
 
Nahoru Odpovědět
18.9.2014 6:40
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Tonda Kozák
Michal Kuba:18.9.2014 7:41

Ajo, to by mohl byt ten problém, to máš pravdu. Vyzkouším to co nejdřív a dam potom vědět. Takže dam border buňkám a můžu pak si s tím dělat co chci,jo?

 
Nahoru Odpovědět
18.9.2014 7:41
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na Michal Kuba
Tonda Kozák:18.9.2014 8:15

Jo, to PHP ti to dává do samostatných buněk do samostatných řádků. Teď je jen na tobě, jak to ostyluješ.

 
Nahoru Odpovědět
18.9.2014 8:15
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Tonda Kozák
Michal Kuba:18.9.2014 16:45

Díky moc, už to funguje :-) Nenapadlo mě to takhle zapsat - jak jsem říkal, je tam jednoduchá chyba, ale já si jí prostě nevšimnu..

 
Nahoru Odpovědět
18.9.2014 16:45
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.