Kezdőoldal » Számítástechnika » Weblapkészítés » Hogyan érdemes lekérdezni egy...

Hogyan érdemes lekérdezni egy weboldal tartalmát adatbázisból?

Figyelt kérdés

Tegyük fel, hogy van X darab page. Mindegyik eltér egymástól (tartalom, design pl. felépítés).

Érdemes az egész html tartalmát (legalábbis a body-t) átvinni adatbázisba, aztán id alapján lekérdezni? Vagy inkább külön fájlba megírni a page-eket és csak a tartalmat lekérdezni?


2020. aug. 4. 20:28
 1/7 anonim ***** válasza:
Az oldal szerkezetét szerintem nem érdemes adatbázisban tárolni, az nem arra való. Elsősorban a nem statikus adatokat kell az adatbázisba felvinni.
2020. aug. 4. 20:43
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:
#1 Köszönöm a választ! Tehát, hogyha az oldalak szerkezetei eltérnek, akkor ezeket érdemes külön fájlba tenni (mint statikus adat), majd mindegyik fájlban megírni a lekérdezést?
2020. aug. 4. 20:55
 3/7 anonim ***** válasza:
Nem. Megírod a lekérdezést egy php fájlba és azt a fájlt includolod vagy require azokhoz a lapokhoz amelyekhez kell.
2020. aug. 4. 21:08
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:

#2


Az oldalaid szerkezetében meg kell keresni az egyforma elemeket. Ha pl. minden oldalon van footer, header, menü... ezeket ki kell szervezni külön fájlokba, majd a különböző, egyedi oldalakon, a megfelelő helyen meghívni őket.

Ezen kívül kell még egy vagy több olyan script, ami nem közvetlenül az oldal felépítéséért felel, hanem segédfunkciókat tartalmaz, és ezeket mindenhol include-olni kell, ahol szükség van rá. Rád van bízva, hogy oldod meg. Nálam minimum van egy init.php, ami inicializálja a kezdő változókat, beállítja a lokalizációt, stb., meg egy func.php, amiben pl. SQL lekérdezést egyszerűsítő függvények, konverziós függvények vannak és hasonlók vannak. Most egyszerűbb, néhány lapos céges bemutatkozó oldalról beszélek. Ha komolyabb oldalakat csinálsz, akkor már érdemes valamilyen frameworköt használni.

Az egyedi oldalak bodyja tartalmazza a lényegi tartalmat. Ott lekérdezed az adatbázisból azt, ami kell, és a HTML szerkezetbe behelyezve kitolod a usernek. Erre is sokféle megoldás van, lehet templatenyelvet is használni (pl. Twig).

2020. aug. 4. 21:51
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

#4

+1 A template engine-re. Ez a probléma tipikusan az, ahol sokat segítene és szép/átlátható kódot adna.

2020. aug. 5. 07:13
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:

Köszönöm az ötleteket!


Tegyük fel, hogy van a weboldalon 5 pages, amelyeknek szerkezete teljesen megegyeznek. Az egyetlen, ami eltér, az maga a szöveg.

Ilyen esetben, ha az összes pages-nek csinálok 1db .php fájlt, ami egy adatbázisból kiszedi a tartalmat, olyan esetben "illik-e" ilyet csinálni?

2020. okt. 26. 08:22
 7/7 anonim ***** válasza:

Nem. Tartok tőle hogy nem teljesen értetted meg amit leírtunk.

Hibás az elgondolás, hogy minden oldalnak külön php fájlt hozz létre.


A normális megoldás (amit javasoltunk) a template engine. Ez annyit tesz, hogy csinálsz egy html sablont, amiben benne van (jelen esetben) a változó, ami maga a kiírandó szöveg.

A template engine pedig ebbe a sablonba fogja behelyettesíteni azt amit átadsz neki.

Tehát a sablonon kívül csinálsz egy index.php-t (mondjuk) és amit a get paraméterben megkap érték, az alapján eldönti melyik adatot kérje le az adatbázisból és azt adja át a template engine-nek, hogy helyettesítse be az oldalba.

(Mondjuk ha tényleg csak egy változóról van szó, akkor lehet ezt anélkül is, pl szimplán csak betöltöd a php kód után include-al a html tartalmát, bár ez kevésbé szép.)

2020. okt. 26. 12:39
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!