Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pobieranie danych z kolumn
Forum PHP.pl > Forum > Przedszkole
jagrok
Witajcie,

Jestem początkującą osobą która próbuje zrozumieć działanie MySQL i PHP.
Chciałbym zrobić tabelę w której będą zapisane wszystkie elementy stałe strony, takie jak logo, tytuł strony, tytuł sekcji itp ...
Niestety borykam się w jaki sposób prawidłowo pobierać wybraną daną i ją wyświetlać na stronie.
  1. CREATE TABLE `option` (
  2. `id` int(11) NOT NULL,
  3. `parametr` text COLLATE utf8_unicode_ci NOT NULL,
  4. `value` text COLLATE utf8_unicode_ci NOT NULL,
  5. `status` text COLLATE utf8_unicode_ci NOT NULL
  6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


Tabela jak widać ma prostą strukturę, a po wypełnieniu może wyglądać mniej więcej tak

Cytat
id parametr value status
1 title test active
2 subtitle subtest active
3 category machine active
4 description detailed_description active


Teraz w pewnych obszarach strony chciałbym umieszczać te dane co czynie w poniższy sposób:

  1. <div class="title-section">
  2. <?php
  3. $sel_option = "SELECT value FROM option WHERE status = 'active' AND id = '1' ";
  4. $run_option = mysqli_query($connect,$sel_option);
  5. while ($rows = mysqli_fetch_assoc($run_option)) {
  6. echo '<h3>'.$rows['value'].'</h3>';}
  7. ?>


Minusem tego rozwiązania jest niestety to że musiałbym taki sam fragment kodu zamieszczać dla poszczególnych fragmentów kodu html, czego wolałbym uniknąć.
Czy można to zrobić jakoś inaczej ?

Czy taki sposób przechowywanie danych jest do akceptacji ?
Wyczytałem w książce (PHP i MySql Tworzenie stron WWW" że tabele powinny być proste i zawierać w sobie jak najmniej powtarzających się elementów.

Czy np zamiast tabeli jak powyżej powinienem zrobić tabelę o strukturze id,title, subtitle, status i dopiero ją uzupełnić danymi i tak dla każdej opcji oddzielnie ?
Czy jeszcze jakoś sprytniej smile.gif

Dzięki za podpowiedzi.
goartur
Z tego co zrozumielem chcesz poprostu pobierac kontent strony z bazy danych?
Jesli chodzi o poczatki to jest to dosc trudne, mozna uzywac do tego innymi relecji. Lecz na poczatek jest to lepiej nie.
Druga opcja jest zrobienie klasy ktora bedzie wymagala parametrow ID oraz active,deactive(cos w tym stylu)

  1. ContentHandler::get(1,'active')

W tym wypadku zostanie wywolana funkcja ktora pobierze kontent o id 1.
Jesli chodzi o kopiowanie zapytania to jest to raczej nieuniknione, w powyzszej podanej funkcji tez musisz ja kopiowac i wstawiac w odpowiednich sekcjach w PHP.
Najlepszym rozwiazaniem w tym wypadku wzorowanie nie na powyzszym przykladzie i zrobienie zwyklej funkcji
  1. function()
, ktora bedzie wymagala parametru ID (oraz/lub) statusu aktywnosci.
Innym rozwiazaniem jest zrobienie tabeli z relacjami tak jak pisalem powyzej ktora bedzie zalezna od strony, na kazdej stronie bedzie pobierany kontent wszystkich sekcji za jednym razem poprzez ID stronym, lecz jest to malo optymalne wiec nie polecam.

Gdy bedziesz troche dalej to polecam system template do takich operacji.
Jeszcze jedno, jesli cos jest aktywne lub deaktywowane,
  1. uzwywaj bool
. czyli 1 jako true , 0 jako false
jagrok
Cytat(goartur @ 31.03.2017, 09:53:58 ) *
Z tego co zrozumielem chcesz poprostu pobierac kontent strony z bazy danych?
Jesli chodzi o poczatki to jest to dosc trudne, mozna uzywac do tego innymi relecji. Lecz na poczatek jest to lepiej nie.
Druga opcja jest zrobienie klasy ktora bedzie wymagala parametrow ID oraz active,deactive(cos w tym stylu)

  1. ContentHandler::get(1,'active')

W tym wypadku zostanie wywolana funkcja ktora pobierze kontent o id 1.
Jesli chodzi o kopiowanie zapytania to jest to raczej nieuniknione, w powyzszej podanej funkcji tez musisz ja kopiowac i wstawiac w odpowiednich sekcjach w PHP.
Najlepszym rozwiazaniem w tym wypadku wzorowanie nie na powyzszym przykladzie i zrobienie zwyklej funkcji
  1. function()
, ktora bedzie wymagala parametru ID (oraz/lub) statusu aktywnosci.
Innym rozwiazaniem jest zrobienie tabeli z relacjami tak jak pisalem powyzej ktora bedzie zalezna od strony, na kazdej stronie bedzie pobierany kontent wszystkich sekcji za jednym razem poprzez ID stronym, lecz jest to malo optymalne wiec nie polecam.

Gdy bedziesz troche dalej to polecam system template do takich operacji.
Jeszcze jedno, jesli cos jest aktywne lub deaktywowane,
  1. uzwywaj bool
. czyli 1 jako true , 0 jako false


Sprowadziłeś mnie na ziemie i nic z tego co napisałeś niestety nie rozumiem.
Próbuje znaleźć jakiś przykład ale niestety nic nie widzę.
Podrzuciłbyś jakiś ciekawy link z opisem tego ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.