Stránka 1 z 1

Php

Napsal: 15 lis 2023 23:55
od Koudelnik
Zdravím,

nejsem člověk co dokáže dobře vysvětlovat věci, proto se to budu snažit pospat co nejjednodušeji.
Tvořím stránku v php. Na její tvorbu používám architekturu mvc. V mvc nejsem až tak prakticky zběhlej, proto jsem se rozhodl jí použít, abych si jí lépe naučil.
Popíšu tedy slovy co se snažím vytvořit. Mam tedy soubor s názvem index_model.inc.php, který slouží pro získaní dat z databáze viz. příloha. Poté Mám soubor.index.inc.php, ve kterém se "jakoby snažím projit model s viewem viz. příloha". Tedy do proměnné uložím data z modelu a snažím se je poslat do viewu. Dále mam tedy view, kde příjmam data z předešlého souboru do funkce a následjně jej chci vyspat na stránku. Vypsání na stránku, provádím volání funkce ze souboru view přímo v index.php(tedy stránce kde mam html kod..). Stále dostávám tento error "Warning: foreach() argument must be of type array|object, null given in C:\xampp\htdocs\TIS\view\index_view.inc.php on line 10". Někde se mi ty data z databáze zasekavají a já nevím kde. Byl bych rád za jakékoliv rady.
Díky
3.png
2.png
1.png
4.png

Re: Php

Napsal: 16 lis 2023 15:13
od Serg01
Tak to vem popořadě:

1) Jdeš na stránku index.php
2) Spustí se skript index.php
3) Ten vloží několik souborů, které hned taky vykoná:
- config_session.inc.php
- check_session.inc.php
- output_films.inc.php
- index_view.inc.php
4) Zavolá funkci check_session()
5) Pak začne vypisovat HTML kód
6) Zavolá funkci display_films(), která je definovaná v index_view.inc.php, který je vložený, takže zatím v pořádku
7) Ale proměnná $films zatím nebyla nikde definovaná, je tedy NULL

Nevím co teda je v prvních třech includovaných souborech, hlavně v tom output_films.inc.php, dal jsi ukázku jen index.inc.php (který ale nejspíš nikde neincluduješ)

Jinak koncept MVC je takový, že jako první by se měl zavolat Controller (to je to, co propojuje Model a View), který udělá validaci požadavku (kontrola přihlášení, oprávnění atd), vytáhne požadovaný data z Modelu a předá je do View. Ty to máš zatím tak, že jako první skript je spuštěný rovnou View. A taky se u MVC často využívá OOP a autoloader. Zkus si o MVC najít nějaký článek - nevím jestli je tady na fóru dovolený radit konkrétní web.

Re: Php

Napsal: 16 lis 2023 22:19
od Koudelnik
adadadad.png
No jde o to, že ten output_films.inc.php je kompletní kod (tedy model a view v jednom souboru) na výpis filmu do stránky. A já se snažím, teď to rozdělit do těch souborů jako index_model.inc.php, index_view.inc.php a index.contr.inc.php. Jenže někde mi hapruje to posílání dat mezi soubory a funkcemi.

Re: Php

Napsal: 28 lis 2023 20:54
od CZechBoY
Chybu tam na prvni pohled nevidim, zkus si to projit debuggerem nebo aspon var_dumpnout co je ve $films predtim nez to posles do view.