IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Uložení pole do databáze

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
michal Čepelák:23.7.2018 22:40

Zdravím,
jsem začátečník, mám udělat odepisování dílů po opravě. Mám už uděláno sklad dílů, kde jsou napsané jednotlůivé díly co se použivají na opravu(tyto díly se u většiny oprav stále opakuji), pak mám odepisování dílů, kde je seriové číslo, oprava a použité díly. Seriové číslo a oprava mám hotové ale nevím jak udělat pole použité díly. zde by byl název dílu a počet použitých dílu (vic obrázek v příloze, kde jsem se snažil rozkreslit jakou mám předctavu jak by to mělo fungovat je možné že tento návrh je špatně). Název dílu bych už předepsaný vytažený z databáze z tabulky skladDilu ještě tam vložit input s počtem kusu bych také zvládnul ale už nevím jak to odeslat do databáze aby se mi to zobrazilo v databazi podobně jak je to na obrázku v příloze(mám sloupec pouziteDily a vněm by bylo ventilátor 1ks, baterie 1ks, atd...)

Děkuji moc za rady

 
Odpovědět
23.7.2018 22:40
Avatar
Petr Langer
Člen
Avatar
Odpovídá na michal Čepelák
Petr Langer:24.7.2018 8:35

Je to vazba M:N, takže nebudeš ukládat pole součástek do jednoho řádku, ale uděláš si novou vazební tabulku, kde budou sloupce id produktu a id součástky. Přes cizí klíče to pak spojíš a máš to.

 
Nahoru Odpovědět
24.7.2018 8:35
Avatar
Odpovídá na michal Čepelák
Michal Štěpánek:24.7.2018 8:44

Co myslíš tím "odepisování dílů"?

Editováno 24.7.2018 8:45
Nahoru Odpovědět
24.7.2018 8:44
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:24.7.2018 9:01

'jak to odeslat do databáze aby se mi to zobrazilo v databazi'
Asi spatne chapes pojmy. V databazi se nic nezobrazuje. Databaze jako pojem je neco typu obalka s papiry. V obalce jsou papiry. V databazi jsou tabulky. Pak jsou tve vety dost nesrozumitelne :) Obsah tabulek z databaze si muzes zobrazovat. V db se nic nezobrazi. Text muzes ulozit na papir v obalce, data muzes ulozit do tabulek v databazi. Ok, nechme toho.


Obrazky jsou na nic, neda se text ctrl+c ctrlv+v. Prepisi to na text.

tabulka sklad_dilu
id_dil | nazev_dilu | skladova_karta
1 | ventilator | M1630
2 | chladic | M3030
3 | baterie | M3030
tabulka opravy
id | sn | oprava | pouzite_dily // sn = serial number
1 | 100101 | vymena ventilator + baterie | ventilator 1ks, baterie 1ks

Aha. Tak takhle by to neslo.

tabulka opravy
id_oprava | sn | oprava
1 | 100101 | vymena ventilator + baterie
tabulka opravy_dily
id_oprava | id_dil | kusu
1 | 1 |
1 | 3 |

Vypis pak mas

SELECT
    a.id_oprava,
    b.oprava,
    c.nazev_dilu
FROM opravy_dily a
    LEFT JOIN opravy b
    LEFT JOIN sklad_dilu c
WHERE
    a.id_oprava = 1

Vypise ti vsechny dily pro opravu 1, 2 radky. A nebo to muzes zgrupovat GROUP BY podle id_opava a vypsat do jednoho radku, jako mas na obrazku. Neco jako

SELECT
    person_id,
    GROUP_CONCAT(hobbies SEPARATOR ', ')
FROM
    peoples_hobbies
GROUP BY
    person_id
Editováno 24.7.2018 9:04
 
Nahoru Odpovědět
24.7.2018 9:01
Avatar
Odpovídá na Peter Mlich
michal Čepelák:30.7.2018 13:22

Zdravím,
vypísování dat za databáze přes více tabulek to umím ale tedka mi spíš dělá problém jak uložit přes insert do databáze data, která jsou v takovémhle formuláři

<form method="POST">

        <input type="text" name="nazev[]" value="ventilátor" > Ventilátor
        <input type="text" name="pocetkusu[]" placeholder="počet dílů" />
        <input type="text" name="nazev[]" value="chladič" > chladič
        <input type="text" name="pocetkusu[]" placeholder="počet dílů" />
        <input type="text" name="nazev[]" value="baterie" > baterie
        <input type="text" name="pocetkusu[]" placeholder="počet dílů" />

        <button name="add"> odeslat</button>
       </form>

je to hodně strohý příklad. Ale nevím jak uložit data do databáze abych mělventilátor a ktomu přislušný počet kusu , atd. Aby pak bylo možné vypsat data z databáze že budu mít tabulku kde uvidim ventilátor a počet kusu, baterka a počet kusu, chladič a počet kusu.
Snad jsem to dobře napsal.
Děkuji

 
Nahoru Odpovědět
30.7.2018 13:22
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:30.7.2018 13:34

z googlu... https://data36.com/…-sql-tables/

INSERT INTO test_results
VALUES
('Jesse', 2, '1988-02-11', 74.00, 'C', TRUE),
('Todd', 3, '1987-06-13', 60.00, 'D', TRUE),
('Tuco', 4, '1970-11-11', 15.50, 'F', FALSE),
('Gus', 5, '1975-08-08', 80.00, 'B', TRUE)
;

Nebo, to chces jakoze do vic tabulek najednou? Nebo, co myslis? Se da udelat to, ze SELECTEMem vytahnes do php promenne tabulky, ktere potrebujes id, text. A potom poskladas INSERT.
$dily = ... "SELECT id, nazev FROM dily" // nebo
$dily = ... "SELECT id, nazev FROM dily WHERE name IN ('".$x."')" // $x = implode("','", $nazev)

Editováno 30.7.2018 13:34
 
Nahoru Odpovědět
30.7.2018 13:34
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.