Diskuze: Uložení pole do databáze

PHP PHP Uložení pole do databáze American English version English version

Aktivity (1)
Avatar
michal Čepelák:23. července 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. července 22:40
Avatar
Petr Langer
Člen
Avatar
Odpovídá na michal Čepelák
Petr Langer:24. července 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. července 8:35
Avatar
Odpovídá na michal Čepelák
Michal Štěpánek:24. července 8:44

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

Editováno 24. července 8:45
Nahoru Odpovědět 24. července 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. července 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. července 9:04
 
Nahoru Odpovědět 24. července 9:01
Avatar
Odpovídá na Peter Mlich
michal Čepelák:30. července 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. července 13:22
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:30. července 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. července 13:34
 
Nahoru Odpovědět 30. července 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.