Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 8. diel - Výpis článkov z databázy v PHP (MVC)

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Odpovedá na Michal Bažant
Matúš Petrofčík:20.4.2016 17:52

Ahoj, ak si dobre pamätám, tak paginácia sa rieši až v ďalšom seriáli Kompletní e-shop v PHP (Mistrovství MVC) .

Inak počet dodazov vrátených obmedzíš v SQL klauzulou /snad spravne/ LIMIT. Napr.:

SELECT FROM tabulka LIMIT 10
Editované
Odpovedať
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Jan Zamecnik
Člen
Avatar
Jan Zamecnik:14.10.2016 10:02

a

Editované
Avatar
Jan Zamecnik
Člen
Avatar
Jan Zamecnik:14.10.2016 10:13

Docela mě štvalo, že můsí být projekt (vlastněani není založen) v rootu a nemůže být v nějaké podsložce. Tak jsem trochu upravil kód a jede to.
Úpravy jsou tyto:

  1. vše se přehraje do adresare podslozka:
  2. do Kontroler.php se přidá proměnná:
protected $pod_slozka = 'podslozka/';

a ve funkci presmeruj($url) se změní první řádek na

$url = $this->pod_slozka . $url;

to je proto ať přesměrovává na podsložku.

  1. do SmerovacKontroler se do funkce parsujURL přidá za řádek za řádek, kde je ltrim
$naparsovanaURL["path"] = ltrim($naparsovanaURL["path"], $this->pod_slozka);

To je kvůli tomu, ať se zahodí podsložka z parsování.

  1. pak se všude (zatím do rozlozeni.phtml a clanek.phtm) předřadí před složku tento kód
<?= $pod_slozka ?>

Např.:

<li><a href="<?= $pod_slozka ?>clanek/uvod">Úvod</a></li>

To je proto, ať linky odkazují na podsložky.
Vše jsem dělal NetBeans. Je to založeno jako normální projekt s názvem podslozka (u mně je to MVCMag).
Jen spouštění je nastaveno na localhost/MVCMag bez index.php.
Pro produkci se pak změní v kontroleru proměná $pod_slozka na prázdnou hodnotu a je to.

Avatar
Jan Zamecnik
Člen
Avatar
Jan Zamecnik:14.10.2016 10:31

Ještě doplnění, bez čehož by to nefungovalo:
Tam kde se předávají data do zobrazení je třeba doplnit řádek

$this->data['pod_slozka'] = $this->pod_slozka;

Tj. do SmerovacKontro­ler.php a ClanekKontroler.php funkce

public function zpracuj($parametry)
Avatar
sam hud
Člen
Avatar
sam hud:5.11.2016 16:36

Ahojte všetci. Testujem kompletný zdroják k tomuto tutoriálu a s jednou vecou si neviem rady. Pridal som dva podobné články klasicky z web rozhrania a potom som chcel ten prvý oodstrániť, a :

  1. Vo výpise článkov ten článok stále existuje
  2. Keď na to kliknem a chcem ho otvoriť, zobrazí sa Chyba 404
  3. Pri kontrole phpMyAdmina tam ten článok stále je

... Z toho vyplýva, že systém nepozná url, ale v databáze nechýba článku nič, aj svoju url má. Zaujímavé sú ďalšie dve veci :

  1. Obidva články majú rovnakú url
  2. Druhý, ktorý nebol odstránený sa po kliknutí zobrazí korektne

Zdroják som okrem pripojenia na databázu a style.css nijak neupravoval.
Poraďte mi prosím vás, ako mám upraviť kód, aby sa po kliknutí článok naozaj odstránil a aby sa odstránil aj údaj z výpisu článkov.
Vďaka za pomoc.

Odpovedať
Kde je vule, tam je i cesta
Avatar
Veronika Karásková :6.5.2017 13:10

Ahojte, prosím o radu s podmínkou, kde k zástupnému znaku ? potřebuji přidat "%-?-%", abych mohla filtrovat datum podle měsíce tj. duben "%-04-%". Takhle mi to nefunguje, děkuji za radu.

public function vratMesic($mesic)
{
        return Db::dotazVsechny('
                SELECT *
                FROM `dochazka`
                WHERE `datum` LIKE "%-?-%"
                ORDER BY `datum`
        ', array($mesic));
}
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Veronika Karásková
David Hartinger:6.5.2017 13:28

Dej tam jen otazník a ta procenta dej do parametru, nějak takhle:

public function vratMesic($mesic)
{
        return Db::dotazVsechny('
                SELECT *
                FROM `dochazka`
                WHERE `datum` LIKE ?
                ORDER BY `datum`
        ', array('%-' . $mesic . '-%'));
}
Odpovedať
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Veronika Karásková
David Hartinger:6.5.2017 13:32

Jinak by stálo za to použít MySQL funkci MONTH(), od toho tam je:

public function vratMesic($mesic)
{
        return Db::dotazVsechny('
                SELECT *
                FROM `dochazka`
                WHERE MONTH(`datum`) = ?
                ORDER BY `datum`
        ', array($mesic));
}
Odpovedať
New kid back on the block with a R.I.P
Avatar
Veronika Karásková :6.5.2017 14:02

Moc, moc děkuji, zkoušela jsem stovky způsobů i MONTH, ale já blbec tam nedala závorky. Ještě jednou moc děkuji. :-)

Avatar
Libor Sitek
Člen
Avatar
Libor Sitek:16.8.2017 13:46

Jen jsem si všiml drobné chyby v ukázce kódu u třídy ClanekKontroler, kde se nastavuje hlavička stránky:

'popis' => $clanek['popis']

Správně tam má být:

'popis' => $clanek['popisek']
Odpovedať
Když se chce, hledá se jak, když se nechce, hledá se proč
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 75.