Diskuze: Select z normalizované DB
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 11 zpráv z 11.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Musíš k tomu použít v dotazu JOIN na tabulku, kde máš názvy těch letadel
např.:
SELECT Letadla.ID_letadla, Ciselnik.Nazev, Letadla.Dolet, Linky.aerolinka, Letadla.rozpeti FROM Letadla
INNER JOIN Ciselnik ON Ciselnik.IDtypu_letadla = Letadla.typ_letadla
INNER JOIN Linky ON Linky.IDaerolinky = Letadla.aerolinka
WHERE Letadla.typ_letadla = 1
kde v tabulce "Ciselnik" jsou typy letadel (každý se svým ID) a v tabulce "Linky" jsou typy(druhy) aerolinek taky každá s nějakým ID
SELECT letadla.ID_letdla, typ_letadla.typ_letadla, aerolinka.nazev_aerolinky
FROM letadla
LEFT JOIN typ_letadla ON typ_letadla.Id_typu=letadla.typ_letadla
LEFT JOIN aerolinka ON aerolinka.ID_aerolinky = letadla.aerolinka
WHERE letadla.typ_letadla=1
Mas nevhodne zvolene jmena atributu entit. Entita Typ_letadla by mel mit atribut nazev a ne zase typ_letadla. Z modelu by melo byt zrejme jaka entita je v realnem svete reprezentovana.
A jeste bych se vyhnul pouziti "*" to je spatny postup. Pro lepsi
optimalizaci dotazu je dobre presne deklarovat jake atributy a z jakych entit
chci ziskat.
Doporucuji si neco nastudovat o optimalizace sql dotazu.
Děkuji, už se zobrazuje přímo ten typ, ale každopádně mi to vyhazuje asi 30 upozornění na stránce že nejsou definovány dolet, aerolinka, rozpeti
Takto to vypadá
| ID_letadla | typ_letadla | dolet | aerolinka | rozpeti |
| 1 | Boeing 737 |
a ta tabulka se zobrazuje až pod 
Notice: Undefined index: dolet in C:\xampp\htdocs\sablona\boeings.php on line 49
Notice: Undefined index: aerolinka in C:\xampp\htdocs\sablona\boeings.php on line 50
Notice: Undefined index: rozpeti_kridel in C:\xampp\htdocs\sablona\boeings.php on line 51
Notice: Undefined index: dolet in C:\xampp\htdocs\sablona\boeings.php on line 49
Notice: Undefined index: aerolinka in C:\xampp\htdocs\sablona\boeings.php on line 50
Notice: Undefined index: rozpeti_kridel in C:\xampp\htdocs\sablona\boeings.php on line 51
Notice: Undefined index: dolet in C:\xampp\htdocs\sablona\boeings.php on line 49
Notice: Undefined index: aerolinka in C:\xampp\htdocs\sablona\boeings.php on line 50
Notice: Undefined index: rozpeti_kridel in C:\xampp\htdocs\sablona\boeings.php on line 51
Notice: Undefined index: dolet in C:\xampp\htdocs\sablona\boeings.php on line 49
Notice: Undefined index: aerolinka in C:\xampp\htdocs\sablona\boeings.php on line 50
Notice: Undefined index: rozpeti_kridel in C:\xampp\htdocs\sablona\boeings.php on line 51
Notice: Undefined index: dolet in C:\xampp\htdocs\sablona\boeings.php on line 49
Notice: Undefined index: aerolinka in C:\xampp\htdocs\sablona\boeings.php on line 50
Notice: Undefined index: rozpeti_kridel in C:\xampp\htdocs\sablona\boeings.php on line 51
Notice: Undefined index: dolet in C:\xampp\htdocs\sablona\boeings.php on line 49
Notice: Undefined index: aerolinka in C:\xampp\htdocs\sablona\boeings.php on line 50
Notice: Undefined index: rozpeti_kridel in C:\xampp\htdocs\sablona\boeings.php on line 51
Notice: Undefined index: dolet in C:\xampp\htdocs\sablona\boeings.php on line 49
Notice: Undefined index: aerolinka in C:\xampp\htdocs\sablona\boeings.php on line 50
Notice: Undefined index: rozpeti_kridel in C:\xampp\htdocs\sablona\boeings.php on line 51
Notice: Undefined index: dolet in C:\xampp\htdocs\sablona\boeings.php on line 49
Notice: Undefined index: aerolinka in C:\xampp\htdocs\sablona\boeings.php on line 50
Notice: Undefined index: rozpeti_kridel in C:\xampp\htdocs\sablona\boeings.php on line 51
Notice: Undefined index: dolet in C:\xampp\htdocs\sablona\boeings.php on line 49
Notice: Undefined index: aerolinka in C:\xampp\htdocs\sablona\boeings.php on line 50
Notice: Undefined index: rozpeti_kridel in C:\xampp\htdocs\sablona\boeings.php on line 51
Tak to asi nemáš definovaný v tom dotazu. Ukaž, jak jsi spáchal ten dotaz?
SELECT letadla.ID_Letadla, typ_letadla.typ_letadla, aerolinka.nazev_aerolinky FROM letadla LEFT JOIN typ_letadla ON typ_letadla.Id_typu=letadla.typ_letadla LEFT JOIN aerolinka ON aerolinka.nazev_aerolinky = letadla.aerolinka WHERE letadla.typ_letadla=1
Děkuji moc, JOINY dělám poprvé 
Tak tam ještě zamontuj ten dolet a rozpětí křídel. Mezi námi, pojmenování tabulek a sloupců jsi zvolil dost nešťastně...
SELECT letadla.ID_Letadla, typ_letadla.typ_letadla, aerolinka.nazev_aerolinky
Notice: Undefined index: dolet in C:\xampp\htdocs\sablona\boeings.php on
line 49
Notice: Undefined index: aerolinka in C:\xampp\htdocs\sablona\boeings.php on
line 50
Notice: Undefined index: rozpeti_kridel
V tom selectu se zadny ze sloupcu nejmenuje dolet ani aerolinka ani rozpeti_kridel.
Takhle, pokud to neni uplne jasne, jakoze nam jo, tak si tam dej
echo '<pre>';
var_dump($row);
Melo by to vypsat neco takoveho
array(ID_Letadla=>123, typ_letadla=456, nazev_aerolinky=789)
A ty bys potreboval toto
array(ID_Letadla=>123, typ_letadla=456, aerolinka=789,dolet=xyz, rozpeti=>abc)
Zobrazeno 11 zpráv z 11.
