Diskuze: Databáze
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 15 zpráv z 15.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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.