Hodnoty checkboxů do databáze

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

TomikSparky
Level 2.5
Level 2.5
Příspěvky: 277
Registrován: listopad 12
Pohlaví: Muž
Stav:
Offline

Hodnoty checkboxů do databáze

Příspěvekod TomikSparky » 26 úno 2017 14:47

Potřeboval bych poradit, mám formulář a jedna z otázek jsou diety. Diet je víc a každý jich může mít několik. Nepodařilo se mi ještě udělat to, aby se hodnoty všech vybraných checkboxů vložili do kolonky v databázi, vždy se vloží jen poslední vybraný chcekbox.

Jestli by to někdo dokázal, tak prosím v PHP aby se to vše uložilo do jedné proměnné a data v ní oddělené třeba čárkou, nebo něčím takovým, pak si to dosadím do přidávání zápisu do databáze.

HTML:

Kód: Vybrat vše

<label class="dieta"><input type="checkbox" name="dieta[]" value="Vegertarian">Vegetarian</label>
<label class="dieta"><input type="checkbox" name="dieta[]" value="Vegan">Vegan</label>
<label class="dieta"><input type="checkbox" name="dieta[]" value="Bezlepku">Bez lepku</label>
<label class="dieta"><input type="checkbox" name="dieta[]" value="Bezlaktozy">Bez laktózy</label>
<label class="dieta"><input type="checkbox" name="dieta[]" value="Hindu">Hindu</label>


PHP:
?


Díky předem

Reklama
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Hodnoty checkboxů do databáze

Příspěvekod CZechBoY » 26 úno 2017 21:35

V databázi se to většinou mapuje do N:M relace (na jedný straně ID diety a na druhý straně třeba ID uživatele/pokrmu).

Další variantou může být třeba příznak v integer čísle (1 je vegetarian, 2 je vegan, 4 je bezlepek atd.), potom výsledné číslo je OR všech příznaků např. vegan + bezlepek by bylo 2 | 4 takže 6; při dekodování si vezmeš 6 a testuješ přes AND - je bezlepek? => 6 & 4.

Další variantou je samozřejmě uložení jako čistý text s kterým se už v databázi nedá dál pracovat - lidské oddělení oddělovačem (třeba ta čárka). Tahle varianta je asi nejhorší, protože s tím v databázi už nic neuděláš (např. nevyfiltruješ pouze BL).

Osobně bych asi doporučil první variantu, protože je dost variabilní a univerzální.


Jestli řešíš jen problém jak vytáhnout všechny označený checkboxy tak sorry za zbytečnou omáčku :D

Kód: Vybrat vše

<?php
foreach 
($_POST['dieta'] as $dieta) {
    echo "Zaškrtnuta varianta {$dieta}<br>" . PHP_EOL;
}
 
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

TomikSparky
Level 2.5
Level 2.5
Příspěvky: 277
Registrován: listopad 12
Pohlaví: Muž
Stav:
Offline

Re: Hodnoty checkboxů do databáze

Příspěvekod TomikSparky » 27 úno 2017 15:46

Potřeboval bych ty hodnoty hodit do jedné buňky v databázi oddělené třeba čárkou.

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Hodnoty checkboxů do databáze

Příspěvekod CZechBoY » 27 úno 2017 18:50

No a co nechápeš na tý mojí ukázce? Vypiš si to pole a oddělit čárkou snad už dokážeš...
http://php.net/manual/en/function.implode.php
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Sdílená databáze na webu pro 70 lidí
    od Darth Vader » 14 lis 2023 21:47 » v Programování a tvorba webu
    1
    1126
    od kubasCZ Zobrazit poslední příspěvek
    15 lis 2023 07:00
  • Graf v Excelu ukazuje chybné hodnoty. Příloha(y)
    od atari » včera, 08:42 » v Kancelářské balíky
    4
    149
    od atari Zobrazit poslední příspěvek
    včera, 13:28
  • Nastavení měřítka obrazovky na jiné, než předdefinované hodnoty Příloha(y)
    od Grander » 29 čer 2023 17:34 » v Windows 11, 10, 8...
    0
    1070
    od Grander Zobrazit poslední příspěvek
    29 čer 2023 17:34

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti