Diskuze: Databáze
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 15 zpráv z 15.
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.
Ahoj, takhle jsem to řešil na svým webu:
zkus tam hodit to value a while
$sql = "SELECT * FROM `stations` ORDER BY `id` DESC LIMIT 20";
$result = mysql_query($sql);
$value = $p['id'];
while ($p = mysql_fetch_assoc($result)) {
echo '<tr><td><a href="details.php?id='.$p['id'].'&lang='.$_GET['lang'].'">'.$p['station'].'</a></td><td>'.$p['genre'].'</td><td>'.$p['country'].'</td></tr>';
}
Bohužel ani toto nepomohlo. Když jsem přidal:
if (!$posts) die('Něco se pokazilo.');
Tak mi to vypsalo na web tu chybovou hlášku.
Pokud zůstaneme u zastaralého mysql (novější alternativy jsou mysqli nebo PDO), lze použít funkci mysql_error() pro výpis chyb v dotazu:
mysql_query('SELECT * FROM mainpage', $spojeni) or die (mysql_error($spojeni));
Pak také, echo je konstrukce umožňující vypsat pouze proměnné typu string (popř. těch, které na string lze převést). Výsledek dotazu z databáze bude pravděpodobně pole. Pro testovací výpis proměnné jakéhokoliv typu doporučuji použít:
var_dump($posts);
a zkusil jsi vytvořit podmínku if a do ní hodit mysql_fetch_assoc?
vzhledem k tomu, že nevím jak máš řešenej html kód tak nevím jak ti
napsat echo. Když jsi tu napsal ten IF, tak usuzuju, že tvůj kód
mysql_fetch_assoc neměl, příklad máš v code.
if ($p = mysql_fetch_assoc($posts)) {
echo '';
}
a do html pak jednoduše nahodíš třeba:
echo: '<div id="author">'.$p['author'].'</div>';
Zkopíroval jsem vše, co jsi naspal a změnil "$spojení" na "$connection" a
vypsalo mi to "Query was empty".
Já tedy nevím, ale neměla by být prázdná, pokud tomu tedy rozumím,
protože v databázi je vše v pořádku.
Pokud byste potřebovali screen z databáze, tady je: https://ctrlv.cz/TUnO
Nebude nakonec chyba v tom, že na všech řádcích používáš pro spojení proměnnou $connection, ale na následujícím řádku $spojeni?
mysql_select_db('cenzurováno',$spojeni);
Ano, toho jsem si před chvilkou všiml a opravil. Ale pořád mi to nejde

zkus toto:
$connection=mysql_connect('cenzurováno','playerspla009','cenzurováno');
mysql_select_db('cenzurováno',$spojeni);
if (!$connection) die('<strong><p style="color: red">Bohužel se nemohu připojit k databázi!<p></strong>');
$sql = "SELECT * FROM `mainpage`";
$posts = mysql_query($sql);
while ($p = mysql_fetch_assoc($posts)) {
echo '';
}
všiml jsem si, že tvoje databáze používá SELECT * FROM mainpage, ale s
apostrofy viz. kód
když jsem do svýho scriptu, nenapsal apostrofy, php mě řvalo chybu, zkus
použít ten můj script
ale s tím, že do echo hodíš pro zkoušku aspoň
echo '<p>napsal: '.$p['author'].'</p>';
tím si zkusíš, jestli to ten script vypíše
Já potřebuji vypsat vše, co se uloží do posts. To znamená, že tam dám
echo ($posts);, že?
Pokud ano, tak to mi také nejde 
Ne. Stále nefunguje. Teď mám pouze bílou stránku.
ne,potřebuješ si nastylovat element article, u mě například:
css:
article
{
width: 90%;
max-width: 900px;
margin: 0 auto;
border-bottom: 1px;
text-align: justify;
padding-top: 20px;
}
article a{
width: 90%;
font-size: 25px;
color: #000;
display: block;
}
article p{
width: 90%;
margin: 0 auto;
padding: 20px;
}
html:
<article>
<a href="">Post link</a>
<p>London is the capital city of England. It is the most populous city in the United Kingdom, with a metropolitan area of over 13 million inhabitants.
<a class="more" href="">more ></a></p>
</article>
conection mám řešenou ve scriptu dbconfig.php
html, pak vypadá takto:
<html>
<head>
<title>blabla</title>
<?php
include 'include/php/dbconfig.php';
?>
</head>
<body>
<?php
$sql = "SELECT * FROM `mainpage`";
$posts = mysql_query($sql);
while ($p = mysql_fetch_assoc($posts)) {
echo '<article>
<a href="">Post link</a>
<p>napsal: '.$p['author'].'</p>
<p>napsal: '.$p['date'].'</p>
<p>'.$p['content'].'
<a href="details.php?id='.$p['id'].'" href="">vice ></a></p>
</article>';
}
?>
</body>
</html>
do contentu si dej značku more, nebo něco co ti na hlavní stránce vypíše jen úryvek
Kde se mohu naučit mysqli? 
Prácu s databázou tu: http://www.itnetwork.cz/php/databaze
Zobrazeno 15 zpráv z 15.
