Samsung představil svůj nejnovější chytrý telefon Galaxy Z TriFold (YouTube). Skládačka se nerozkládá jednou, ale hned dvakrát, a nabízí displej s úhlopříčkou 10 palců. V České republice nebude tento model dostupný.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.11.1. Přehled novinek v Changelogu.
Byla vydána nová verze 15.0 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04 1.1 a 20.04 OTA-11. Vedle oprav chyb a drobných vylepšení je řešen také středně závažný bezpečnostní problém.
I letos vyšla řada ajťáckých adventních kalendářů: Advent of Code 2025, Perl Advent Calendar 2025, CSS Advent Calendar 2025, Advent of A11Y 2025, Advent of AI Security 2025, Advent of Agents (in Google) 2025, Advent of Svelte 2025, …
Fedora zve na dvoudenní testování (2. a 3. prosince), během kterého si můžete vyzkoušet nové webové uživatelské rozhraní (WebUI) projektu FreeIPA. Pomozte vychytat veškeré chyby a vylepšit uživatelskou zkušenost ještě předtím, než se tato verze dostane k uživatelům Fedory a celého linuxového ekosystému.
Eben Upton oznámil zdražení počítačů Raspberry Pi, kvůli růstu cen pamětí, a představil 1GB verzi Raspberry Pi 5 za 45 dolarů.
Linus Torvalds na YouTube kanálu Linus Tech Tips staví dokonalý linuxový počítač.
Po 9 týdnech vývoje od vydání Linuxu 6.17 oznámil Linus Torvalds vydání Linuxu 6.18. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies. Vypíchnout lze například podporu protokolu PSP (PSP Security Protocol, PSP encryption of TCP connections).
Byla vydána nová stabilní verze 25.11 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Xantusia. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.
$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: