Byla vydána beta verze Ubuntu 25.04 s kódovým názvem Plucky Puffin. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 25.04 mělo vyjít 17. dubna 2025.
Textový editor Neovim byl vydán ve verzi 0.11 (𝕏). Přehled novinek v příspěvku na blogu a poznámkách k vydání.
Živé ISO obrazy Debianu Bookworm jsou 100 % reprodukovatelné.
Boudhayan "bbhtt" Bhattcharya v článku Uzavření kapitoly o OpenH264 vysvětluje, proč bylo OpenH264 odstraněno z Freedesktop SDK.
Představeny byly nové verze AI modelů: DeepSeek V3-0324, Google Gemini 2.5 a OpenAI 4o Image Generation.
XZ Utils (Wikipedie) byly vydány ve verzi 5.8.0. Jedná se o první větší vydání od backdooru v XZ v loňském roce.
Byla vydána nová verze 0.40.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 2.20 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.
LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), byl vydán ve verzi 1.3.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Vypíchnut je interaktivní HTML BOM (Bill of Materials) a počáteční podpora Rustu. Zdrojové kódy LibrePCB jsou k dispozici na GitHubu pod licencí GPLv3.
Minulý měsíc Hector "marcan" Martin skončil jako upstream vývojář linuxového jádra i jako vedoucí projektu Asahi Linux. Vývoj Asahi Linuxu, tj. Linuxu pro Apple Silicon, ale pokračuje dál. Byl publikován březnový přehled dění a novinek z vývoje. Vývojáře lze podpořit na Open Collective.
$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 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: