Diskuze: SQL
V předchozím kvízu, Online test znalostí PHP, 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í PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Nevím jestli jsem tě pochopil správně ale podle mě stačí jen toto
UPDATE tabulka
SET sloupec = hodnota, ...
WHERE identifikátor daného řádku;
Tady je problém, že ten identifikátor je vždy jiný, protože po zapnutí pluginů se tato tabulka vymaže a záznam začíná s jiným id po vypnutí pluginů a naplnění novým záznamem deaktivovaných pluginů
A to není hlavní problém, ale hlavní je, jakým způsobem udělat aby staré záznamy v tom řádku zůstaly a nenahradili se novými, nýbrž připojili k těm starým
Identifikator vloz do url a z nej to pak tahej
napr
<a href="index.php?aktivuj-plugin=plugin&id-plugin=5">Aktivuj</a>
tímto máš definované ID pluginu, které je přímo v odkazu
a nyní
UPDATE tabulka
SET sloupec = hodnota, ...
WHERE $_GET['id-plugin'];
Pochopitelně aby jsi tam neměl injection, tak to musíš mít trochu
upravé ale základ je toto.
tu druhou část asi nechápu. Aktivuješ plugin a v DB se přepíše neaktivní
na aktivní (řekněme 2 za 1) a ty chcecš aby tento zápis zůstal když
deaktivuješ plugin a když ho znovu aktivuješ aby se vytvořil nový?
Jde ti o historii aktivace a deaktivace?
Tak uplně nechápu o co ti vlastně jde.
Vždyť stačí mít pro každý plugin právě jedno ID, které bude unikátní
a měnit pouze jestli je zapnutý nebo vypnutý.
Tohle docílíš pomocí SQL UPDATE, a můžeš to narvat klidně jako odkazy
(tlačítka)
DEMO:
echo ('<a href="zapni.php?vyber-plugin=' . $idpluginu. '&akce='. $akce .' " > Zapni / vypni </a> ');
Do $idpluginu si getneš ID z databáze všech pluginů, a akci si getneš například 1 == aktivace nebo 0 == deaktivace pluginu.
Dá se vyřešit jednoduchou funkcí například:
public function zjistiStav();
A podle toho jaký bude stav v databázi (1 or 0) budeš vypínat a nebo zapínat (také podle toho budeš přiřazovat proměnné $akce jedničku a nebo nulu)
Jednoduché, pokud chceš napiš na FB, pomůžu 
Asi si nerozumíme, zkusím to tedy lépe popsat. Po vypnutí pluginů pomocí mého skriptu, si ukládám dané hodnoty do tabulky v databázi, které potom používám znova k aktivování. Řekněme, že se mi do tabulky uloží hodnoty:
a:4:{i:0;s:19:"akismet/akismet.php";i:2;s:31:"plugincleaner/pluginCleaner.php";i:3;s:17:"stolba/stolba.php";i:4;s:27:"wp-super-cache/wp-cache.php";}
Pak si, ale ve wordpressu stáhnu nový plugin, např:
a:1:{i:1;s:9:"hello.php";}
který deaktivuji také mým pluginem, ale tím pádem se mi v databázi udělají dva sloupce, s těmi 4 pluginy a s tím jedním.
Já bych tedy chtěl udělat, že bych v php porovnal tyto dva řetězce, pokud se neschodují přidal ten nový do stávajícího řetězce a uložil jako jeden řádek v databázi, takže aby se mi z:
a:4:{i:0;s:19:"akismet/akismet.php";i:2;s:31:"plugincleaner/pluginCleaner.php";i:3;s:17:"stolba/stolba.php";i:4;s:27:"wp-super-cache/wp-cache.php";}
a:1:{i:1;s:9:"hello.php";}
stalo toto:
a:5:{i:0;s:19:"akismet/akismet.php";i:1;s:9:"hello.php";i:2;s:31:"plugincleaner/pluginCleaner.php";i:3;s:17:"stolba/stolba.php";i:4;s:27:"wp-super-cache/wp-cache.php";}
Doufám, že teď je to srozumitelné, pokud ne rád znovu vysvětlím, děkuji, Jakub Štolba.
Jestli jde jen o to pridat do toho stringu text, pak
php.net/json-decode
php.net/json-encode
php.net/isset
<?php
$json = '{"foo-bar": 12345}';
print $json;
$obj = json_decode($json); // nebo $json,true - pokud chces prevod na pole; u pole se da pouzit isset()
//print $obj->{'foo-bar'}; // 12345
$obj->{'foo-bar'} = 4567;
$json = json_encode($obj);
print $json;
?>
Nebo, jeste se mozna ptas na sql prikaz
IF EXISTS(select * from test where id=30122) update test set name='john' where id=3012
ELSE insert into test(name) values('john');.
Nebo, jestli to chces teda pridat, kdyz id muze byt jine, tak musis pouzit jine id, ktere stejne bude. V pripade jsonu
$json = '{"foo-bar": 12345}';
print $json;
$arr = json_decode($json);
foreach ($arr as $key=>$value)
{ if ($value==12345) {unset($arr[$key]); $arr[$nove_id]=12345; break;} }
$json = json_encode($obj);
print $json;
Najdes podle 12345. unsetnes (smazes). A pridas nove. Break, zastavis cyklus, pro jistotu (mam pocit, ze foreach by s pridanou hodnotou mohl dal pracovat, takze, do nekonecna). samozrejme, ve tvem pripade bude cyklus o neco slozitejsi, protoze mas jinak strukturovane pole.
děkuji moc za nápovědu
už jsem,ale dokázal najít jednodušší řešení díky array_push. I tak
vám děkuji 
Zobrazeno 11 zpráv z 11.
