Google Chrome 152 byl prohlášen za stabilní. Nejnovější stabilní verze 152.0.7977.64 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 327 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Před 35 lety, 25. srpna 1991, oznámil Linus Benedict Torvalds v diskusní skupině comp.os.minix, že vyvíjí (svobodný) operační systém (jako koníček, nebude tak velký a profesionální jako GNU) pro klony 386 (486), že začal v dubnu a během několika měsíců by mohl mít něco použitelného.
Apple představil čipy M6 a M5 Ultra, Mac mini s M6 nebo M5 Pro a Mac Studio s M5 Max nebo M5 Ultra. Fedora Asahi Remix zatím podporuje jenom M1 a M2.
Firefox 157 přinese zapnutou podporu rastrového grafického formátu JPEG XL. Založena je na v Rustu napsané implementaci jxl-rs používané i v Chrome a Chromiu.
Vanilla OS 3 „Reunion“ byl vydán. Tato na Debianu „Sid“ založená desktopová distribuce s transakčními aktualizacemi „neměnného“ základního systému (ABRoot) nově podporuje architekturu arm64 (vedle x86-64), podporuje reprodukovatelné sestavení většiny balíčků a vylepšuje systémové nástroje. Vlastní meta-správce balíčků APX nyní používá Distrobox v2 a je dostupný i pro jiné distribuce.
Řemínky pro Apple Watch, bezdrátová sluchátka nebo nabíjecí adaptéry. Takovou nabídku našli v uplynulých dnech příslušníci Celního úřadu v Liberci při kontrole kamenného obchodu na Náchodsku. Celkem zde zadrželi 3 035 kusů zboží podezřelého z porušování práv duševního vlastnictví. Pokud by se jednalo o originální výrobky, jejich hodnota by podle odhadu přesáhla 10,8 milionu korun.
Byla vydána verze 31.1 textového editoru GNU Emacs. Podrobný přehled novinek v souboru NEWS.
Webový prohlížeč Waterfox (Wikipedie), fork Firefoxu, byl vydán ve verzi 6.7.0. Postaven je na jádru Gecko ESR 153.
Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.17.0. Podrobný přehled novinek v changelogu. Přidána byla základní podpora gamepadů. Opraveno bylo několik zranitelností. Původně se jedná o Minecraftem inspirovaný Minetest v říjnu loňského roku přejmenovaný na Luanti.
Americká technologická společnost Apple loni v Irsku na daních zaplatila 17 miliard dolarů (zhruba 350 miliard Kč). To představovalo 40 procent celkové částky, kterou firma odvedla na dani z příjmů po celém světě. Vyplývá to z účetních výkazů podniku. Platbu výrazně zvýšilo rozhodnutí Soudního dvora EU z roku 2024, podle něhož měl Apple doplatit Irsku na daních 13 miliard eur (313 miliard Kč).
$vysledek=mysql_query("SELECT * FROM polls where id='$idpoll'");
$zaznam=mysql_fetch_array($vysledek);
$vysledek2=mysql_query("SELECT * FROM candidates where id='".$zaznam['ID_Candidate1']."'");
$zaznam2=mysql_fetch_array($vysledek2);
$data['0']['prijmeni'] = $zaznam2['Prijmeni'];
$vysledek3=mysql_query("SELECT * FROM candidates where id='".$zaznam['ID_Candidate2']."'");
$zaznam3=mysql_fetch_array($vysledek3);
$data['1']['prijmeni'] = $zaznam3['Prijmeni'];
$vysledek4=mysql_query("SELECT * FROM candidates where id='".$zaznam['ID_Candidate3']."'");
$zaznam4=mysql_fetch_array($vysledek4);
$data['2']['prijmeni'] = $zaznam4['Prijmeni'];
SELECT * FROM polls p, candidates c1, candidates c2 WHERE p.ID = $idpoll AND p.ID_Candidate1 = c1.ID AND p.ID_Candidate2 = c2.IDS dovolením jsem vynechal 3. a 4. kandidáta, ale jak je přidat je snad zřejmé. Nicméně bych se spíš zkusil zamyslet nad změnou schématu (pokud je to možné). Asi bych zvolil něco jako:
SELECT * FROM votes v, candidates c WHERE v.id_poll = $idpoll AND v.id_candidate = c.id
NULL a naštěstí to jde velice jednoduše opravit
Předpokládám testovací data z přílohy. Předtím, než nahodíme referenční integritu, musíme data pročistit.
Před vlastní modifikací jen povolíme NULL hodnoty:
ALTER TABLE polls MODIFY id_candidate1 NULL / ALTER TABLE polls MODIFY id_candidate2 NULL / ALTER TABLE polls MODIFY id_candidate3 NULL / ALTER TABLE polls MODIFY id_candidate4 NULL /Pak nastavíme neplatné klíče na
NULL:
UPDATE polls p
SET
p.id_candidate1 = NULL
WHERE
NOT EXISTS (SELECT
1
FROM
candidates cc
WHERE
cc.id = p.id_candidate1)
/
UPDATE polls p
SET
p.id_candidate2 = NULL
WHERE
NOT EXISTS (SELECT
1
FROM
candidates cc
WHERE
cc.id = p.id_candidate2)
/
UPDATE polls p
SET
p.id_candidate3 = NULL
WHERE
NOT EXISTS (SELECT
1
FROM
candidates cc
WHERE
cc.id = p.id_candidate3)
/
UPDATE polls p
SET
p.id_candidate4 = NULL
WHERE
NOT EXISTS (SELECT
1
FROM
candidates cc
WHERE
cc.id = p.id_candidate4)
/
COMMIT
/
Poté nahoíme referenční integritu:
ALTER TABLE candidates ADD CONSTRAINT pk_candidates PRIMARY KEY (id) / ALTER TABLE polls ADD CONSTRAINT fk_vote_candidate1 FOREIGN KEY (id_candidate1) REFERENCES candidates (id) / ALTER TABLE polls ADD CONSTRAINT fk_vote_candidate2 FOREIGN KEY (id_candidate2) REFERENCES candidates (id) / ALTER TABLE polls ADD CONSTRAINT fk_vote_candidate3 FOREIGN KEY (id_candidate3) REFERENCES candidates (id) / ALTER TABLE polls ADD CONSTRAINT fk_vote_candidate4 FOREIGN KEY (id_candidate4) REFERENCES candidates (id) /Každopádně: ve všech případech funguje tento SELECT statement:
SELECT
c1.prijmeni AS candidate1_surname,
p.votes1 AS candidate1_votes,
c2.prijmeni AS candidate2_surname,
p.votes2 AS candidate2_votes,
c3.prijmeni AS candidate3_surname,
p.votes3 AS candidate3_votes,
c4.prijmeni AS candidate4_surname,
p.votes4 AS candidate4_votes
FROM
polls p
LEFT JOIN candidates c1 ON (p.id_candidate1 = c1.id)
LEFT JOIN candidates c2 ON (p.id_candidate2 = c2.id)
LEFT JOIN candidates c3 ON (p.id_candidate3 = c3.id)
LEFT JOIN candidates c4 ON (p.id_candidate4 = c4.id)
/
Tak hodně štěstí. (V příloze máš kompletní skript na hraní.)
outer ?
SELECT
c1.prijmeni AS candidate1_surname,
p.votes1 AS candidate1_votes,
c2.prijmeni AS candidate2_surname,
p.votes2 AS candidate2_votes,
c3.prijmeni AS candidate3_surname,
p.votes3 AS candidate3_votes,
c4.prijmeni AS candidate4_surname,
p.votes4 AS candidate4_votes
FROM
polls p
LEFT JOIN candidates c1 ON (p.id_candidate1 = c1.id)
LEFT JOIN candidates c2 ON (p.id_candidate2 = c2.id)
LEFT JOIN candidates c3 ON (p.id_candidate3 = c3.id)
LEFT JOIN candidates c4 ON (p.id_candidate4 = c4.id)
/
Tiskni
Sdílej: