Diskuze: 2x select ?
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 13 zpráv z 13.
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.
Potrebuješ 2 rôzne pripojenia na databázu. Niečo ako $connectionOne a $connectionTwo, a jeden select vykonávať na tom prvom pripojení, a druhý na druhom pripojení.
Preštudoval si si ten tutoriál na databázu? Pretože ten select ti nevykonáva mysql_fetch_assoc, ale mysql_query, nie ako si to popísal ty.
$result = mysql_query("SELECT * FROM xaxax1 WHERE xaxa"); // vykoná SQL príkaz, prípadny výsledok vráti do premennej $result, bodkočiarku na konci SQL príkazu nepotrebuješ (lebo je iba jeden).
$row = mysql_fetch_assoc($result); // spracuješ vrátený výsledok predchádzajúceho príkazu
Výber databázy s ktorou ideš pracovať sa robí príkazom mysql_select_db, to by si musel počas behu programu prepínať medzi tými databázami. S PDO je to jednoduchšie.
No áno ja jeden select už mám a funguje pekne no teraz potrebujem selectovať znovu ale z druhej databázy. Akonáhle ale znovu použijem mysql_fetch_assoc tak mi to vyhodí error pretože mysql_fetch_assoc môže byť len jeden.
A prestaň používať mysql_ funkcie, radšej to
mysqli_, najlepšie PDO. Ak máš problém s
ich používaním ako si už niekde písal, daj vedieť čo za chybu ti to
vypisuje a radšej to spojazdníme 
mysqli_select_db() expects exactly 2 parameters
.. stle to má problémy so selectovaním a pdobne akonáhle príkazy pomením na mysqli
Áno, mysql_fetch_assoc môžeš použiť iba raz, ten ani nevykonáva SQL príkaz! Ako som písal vyššie:
... ten select ti nevykonáva mysql_fetch_assoc, ale mysql_query, nie ako si to popísal ty.
Ďalej som písal:
Výber databázy s ktorou ideš pracovať sa robí príkazom mysql_select_db, to by si musel počas behu programu prepínať medzi tými databázami.
Akonáhle to zmením s5 na mysql_select_db tak znovu dostávam chyby
mysql_select_db(): Access denied for user
mysql_select_db(): A link to the server could not be established
To bude tým, že nestačí pridať k príkazom písmenko i.
Pracuje sa s triedou mysqli, na
ktorú sú vytvorené aliasy/funkcie k jej metódam.
Ak si pozrieš do dokumentácie, dajme tomu mysqli_select_db: http://php.net/…elect-db.php, zistíš, že pri objektovom použití stačí jeden parameter - názov db. Pokiaľ použiješ funkciu, musíš predať dva parametre, pripojenie na databázu a názov konkrétnej databázy.
U mysql_select_db: http://php.net/…elect-db.php sa predávajú 1 alebo 2 parametre. Prvý je názov db a druhý je pripojenie na databázu, ktoré si získal pripojením na databázu.
Okey tak už sa mi úspešne podarilo napojiť to celé na mysqli
Nice
Teraz teda znovu - ako začnem
jednoducho selectovať niečo z inej table ?
Pretože ako amatér ťa pcoohpím
jenddoucho tak že mám znovu napísť nový connect to ale nemení nič natom
že $row tam môže byť len jeden
Z dokumentácie som vytvoril takýto príklad, ja som to netestoval, ale chcem ukázať princíp prepínania medzi DB s pomocou mysql_.
<?php
// pripojenie na DB server
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
// výber prvej DB
mysql_select_db('databaza1', $link);
// SQL príkaz do prvej DB
$result = mysql_query('SELECT * WHERE 1=1');
$row = mysql_fetch_assoc($result);
// ďalšie spracovanie výsledku, napr. výpis...
// zmena na druhú DB
mysql_select_db('databaza2', $link);
// SQL príkaz do druhej DB
$result = mysql_query('SELECT * WHERE 1=1');
$row = mysql_fetch_assoc($result);
// ďalšie spracovanie výsledku, napr. výpis...
V PHP 7 už ale mysql_ nie je, mal by si používať radšej mysqli_ alebo PDO.
... $row tam môže byť len jeden
Čo máš na mysli?
Príklad u mysqli, objektovo:
<?php
// pripojenie na DB server, všimni si rovno vybranú databázu "test"
$mysqli = new mysqli("localhost", "my_user", "my_password", "test"); // vytvorenie objektu
// SQL príkaz do prvej DB
$result = $mysqli->query("SELECT * WHERE 1=1");
$row = $result->fetch_row();
// ... ďalšie spracovanie, výpis, neviem čo...
// zmena DB z "test" na "world"
$mysqli->select_db("world"); // <---------
// SQL príkaz do druhej DB
$result = $mysqli->query("SELECT * WHERE 1=1");
$row = $result->fetch_row();
// ... ďalšie spracovanie, výpis, neviem čo...
// ukončenie spojenia
$mysqli->close();
Príklad na mysqli s pomocou funkcií mysqli_:
<?php
// pripojenie na DB server, všimni si rovno vybranú databázu "test"
$link = mysqli_connect("localhost", "my_user", "my_password", "test");
// SQL príkaz do prvej DB
$result = mysqli_query($link, "SELECT * WHERE 1=1");
$row = mysqli_fetch_row($result);
// ... ďalšie spracovanie, výpis, neviem čo...
// zmena DB z "test" na "world"
mysqli_select_db($link, "world"); // <---------
// SQL príkaz do druhej DB
$result = mysqli_query($link, "SELECT * WHERE 1=1");
$row = mysqli_fetch_row($result);
// ... ďalšie spracovanie, výpis, neviem čo...
// ukončenie spojenia
mysqli_close($link);
Zdroj: http://php.net/…elect-db.php, netestoval som, snáď som ukázal ako na to.
Tak sme prišli na to, že Marek chce druhý select z tej istej databázy,
ale z inej tabuľky 
Pokračuj tu: https://www.itnetwork.cz/php/databaze
Potom tu: https://www.itnetwork.cz/mysql
Zobrazeno 13 zpráv z 13.