Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Pobieranie danych z kolumn, Czy to dobre rozwiązanie do przechowywanie danych w MySQL
jagrok
post 30.03.2017, 22:14:53
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 17.03.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
goartur
post 31.03.2017, 08:53:58
Post #2





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 19.10.2014

Ostrzeżenie: (0%)
-----


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

Ten post edytował goartur 31.03.2017, 08:54:19
Go to the top of the page
+Quote Post
jagrok
post 31.03.2017, 09:21:04
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 17.03.2008

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:36