Autor | Zpráva | ||
---|---|---|---|
omfo Profil |
#1 · Zasláno: 10. 3. 2014, 13:49:45
Ahoj,
chtěl bych mít podobnou tabulku: Můžete mi poradit jak si nejlépe navrhnout DB a jak potom pomocí MySQL a PHP data ukládat a vypsat? S tím, aby šli přidávat a odebírat výrobky i příslušenství. A samozřejmě ke každému výrobku není dostupné všechno příslušenství (prázdné buňky). Nepotřebuji konkrétní příklad, stačí mi jenom popsat jak na to. Předem děkuju |
||
anonymníí Profil * |
#2 · Zasláno: 10. 3. 2014, 13:58:39
omfo:
3 tabulky: vyrobky (id_vyrobku, nazev_vyrobku) prislusenstvi (id_, nazev_prislusenstvi) varianta (id_vyrobku, id_prislusenstvi, cena) |
||
peta Profil |
#3 · Zasláno: 10. 3. 2014, 14:47:48
anonymníí: prislusenstvi (id_prislusenstvi, nazev_prislusenstvi)
omfo: Jak s tim pracovat? Pridas si vyrobek. Pridas si prislusenstvi. Pridas si variantu 1, 2, 3, ... ktere propojuji prvky z tabulky vyrobek a prislusenstvi. Pak mas moznosti pouzit jednu tabulku se vsemi nevyhodami, co to obnasi, jako duplicity, limity poctu prislusenstvi, pomalejsi vyhledani. Podle toho, jaky zvolis zpusob * https://dev.mysql.com/doc/refman/5.0/en/set.html * https://dev.mysql.com/doc/refman/5.0/en/enum.html * "a,b,c,d" deleni retezce se seznamem prislusenstvi |
||
Joker Profil |
#4 · Zasláno: 10. 3. 2014, 14:58:15
V závislosti na tom, jestli se „příslušenství“ datově nějak liší od „výrobku“, je možná zvláštní tabulka pro příslušenství zbytečná.
|
||
Časová prodleva: 4 dny
|
|||
omfo Profil |
#5 · Zasláno: 14. 3. 2014, 10:30:51
Tak mám vytvořené 3 tabulky:
vyrobky (id_vyrobku, nazev_vyrobku) prislusenstvi (id_prislusenstvi, nazev_prislusenstvi) varianta (id_vyrobku, id_prislusenstvi, cena) Ale teď nevím jak z nich ty data načíst. Budu muset nejspíš nějak ty tabulky propojit, ne? |
||
Kajman Profil |
#6 · Zasláno: 14. 3. 2014, 11:19:38
Pro tabulku z [#1] si můžete načíst do php polí data ze všech tří tabulek. První bude na řádky, druhé na sloupce a do třetího budete koukat, zda tam je pro kombinaci řádek a sloupec nachystaná cena.
|
||
omfo Profil |
#7 · Zasláno: 14. 3. 2014, 15:43:05
Kajman:
Tady bych asi potřeboval poradit trochu konkretneji. Jak spravne nacist data do poli? A jak vypsat tu tabulku aby tam byla ta kontrola pro kombinaci radek, sloupec. Predem diky moc za radu |
||
radozaj Profil |
#8 · Zasláno: 15. 3. 2014, 14:52:40
omfo:
<?php echo "<table>"; echo "<tr>"; echo "<th></th>"; $queryV = pg_query(" SELECT id_vyrobku, nazev_vyrobku FROM vyrobky ORDER BY id_vyrobku;"); while ($vyrobky = pg_fetch_array($queryV)) { echo "<th>$vyrobky[nazev_vyrobku]</th>"; } echo "</tr>"; $queryP = pg_query(" SELECT id_prislusenstvi, nazev_prislusenstvi FROM prislusenstvi ORDER BY id_prislusenstvi;"); while ($prislusenstvi = pg_fetch_array($queryP)) { echo "<tr>"; echo "<th>$prislusenstvi[nazev_prislusenstvi]</th>"; $posledniVyrobek = 0; $queryV = pg_query(" SELECT id_vyrobku, id_prislusenstvi, cena FROM varianta WHERE id_prislusenstvi = $prislusenstvi[id_prislusenstvi] ORDER BY id_vyrobku;"); while ($varianta = pg_fetch_array($queryV)) { for ($i=$posledniVyrobek+1; $i<$varianta[id_vyrobku]; $i++) echo "<td></td>"; $posledniVyrobek = $varianta[id_vyrobku]; echo "<td>$varianta[cena]</td>"; } echo "</tr>"; } echo "</table>"; ?> |
||
omfo Profil |
#9 · Zasláno: 16. 3. 2014, 19:03:15
radozaj:
Díky moc. Ale jeste jsem narazil na jeden problem. Pokud v tabulce "varianta" nemam "id_vyrobku" cislovane od 1(dojde k odstraneni vyrobku), tak mi to v radcich ceny posunuje (dela prazdne bunky). Tusim, ze problem bude v cyklu: for ($i=$posledniVyrobek+1; $i<$varianta[id_vyrobku]; $i++) echo "<td></td>"; , ale zatim sem neprisel na to jak to vyresit.
|
||
Kajman Profil |
#10 · Zasláno: 17. 3. 2014, 08:30:46
Na to by pomohlo to uložení do pole.
<?php echo "<table>"; echo "<tr>"; echo "<th></th>"; $ulozene_vyrobky=array(); $queryV = pg_query(" SELECT id_vyrobku, nazev_vyrobku FROM vyrobky ORDER BY id_vyrobku;"); while ($vyrobky = pg_fetch_array($queryV)) { echo "<th>$vyrobky[nazev_vyrobku]</th>"; $ulozene_vyrobky[]=$vyrobky['id_vyrobku']; } echo "</tr>"; $ulozene_ceny=array(); $queryV = pg_query(" SELECT id_vyrobku, id_prislusenstvi, cena FROM varianta WHERE id_prislusenstvi = $prislusenstvi[id_prislusenstvi] ORDER BY id_vyrobku;"); while ($varianta = pg_fetch_array($queryV)) { $ulozene_ceny[$varianta["id_vyrobku"]][$varianta["id_prislusenstvi"]]=$varianta["cena"]; } $queryP = pg_query(" SELECT id_prislusenstvi, nazev_prislusenstvi FROM prislusenstvi ORDER BY id_prislusenstvi;"); while ($prislusenstvi = pg_fetch_array($queryP)) { echo "<tr>"; echo "<th>$prislusenstvi[nazev_prislusenstvi]</th>"; foreach($ulozene_vyrobky as $id_vyrobku) { if(isset($ulozene_ceny[$id_vyrobku][$prislusenstvi["id_prislusenstvi"]])) { echo "<td>{$ulozene_ceny[$id_vyrobku][$prislusenstvi["id_prislusenstvi"]]}</td>"; } else { echo "<td> </td>"; } } echo "</tr>"; } echo "</table>"; |
||
peta Profil |
vyrobky (id_vyrobku, nazev_vyrobku) prislusenstvi (id_prislusenstvi, nazev_prislusenstvi) varianta (id_vyrobku, id_prislusenstvi, cena) Tohle te zajima? jedna velka tabulka? SELECT a.id_varianta --to by tam melo byt b.nazev_vyrobku c.nazev_prislusenstvi a.cena FROM varianta a LEFT JOIN vyrobky b ON b.id_vyrobku=a.id_vyrobku LEFT JOIN prislusenstvi c ON c.id_prislusenstvi=a.id_prislusenstvi |
||
Časová prodleva: 10 let
|
0