Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Tomáš Střecha:7.2.2017 18:12

Ahoj, mohl bych vědět kde je chyba?

<?
$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>');
$posts=mysql_query("SELECT * FROM mainpage", $connection);
echo($posts);
?>

Zkoušel jsem si několikrát kontrolovat to, co jsem napsal, ale pořád nemohu přijít na to, proč mi "echo($posts);" nechce nic vypsat. Pokud vás zajímá databáze, tak je připojená správně a je v ní záznam. Databáze má "ID", "Content", "Author", "Date", "Importance". Ve výsledku by dle mého by mělo PHP vypsat to, co je vše v dané tabulce, což se neděje.

Děkuji za jakékoliv rady.

Editováno 7.2.2017 18:12
 
Odpovědět
7.2.2017 18:12
Avatar
Neaktivní uživatel:7.2.2017 18:18

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>';
}
Nahoru Odpovědět
7.2.2017 18:18
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Tomáš Střecha:7.2.2017 18:25

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.

Editováno 7.2.2017 18:25
 
Nahoru Odpovědět
7.2.2017 18:25
Avatar
Michal
Člen
Avatar
Odpovídá na Tomáš Střecha
Michal:7.2.2017 18:33

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);
Editováno 7.2.2017 18:35
 
Nahoru Odpovědět
7.2.2017 18:33
Avatar
Neaktivní uživatel:7.2.2017 18:34

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>';
Nahoru Odpovědět
7.2.2017 18:34
Neaktivní uživatelský účet
Avatar
Odpovídá na Michal
Tomáš Střecha:7.2.2017 18:39

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

 
Nahoru Odpovědět
7.2.2017 18:39
Avatar
Michal
Člen
Avatar
Odpovídá na Tomáš Střecha
Michal:7.2.2017 18:43

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);
 
Nahoru Odpovědět
7.2.2017 18:43
Avatar
Odpovídá na Michal
Tomáš Střecha:7.2.2017 18:44

Ano, toho jsem si před chvilkou všiml a opravil. Ale pořád mi to nejde :D

 
Nahoru Odpovědět
7.2.2017 18:44
Avatar
Neaktivní uživatel:7.2.2017 18:47

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

Editováno 7.2.2017 18:48
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
7.2.2017 18:47
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:7.2.2017 18:51

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

Nahoru Odpovědět
7.2.2017 18:51
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Tomáš Střecha:7.2.2017 18:57

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 :D

 
Nahoru Odpovědět
7.2.2017 18:57
Avatar
Odpovídá na Neaktivní uživatel
Tomáš Střecha:7.2.2017 19:00

Ne. Stále nefunguje. Teď mám pouze bílou stránku.

 
Nahoru Odpovědět
7.2.2017 19:00
Avatar
Neaktivní uživatel:7.2.2017 19:11

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 &#62;</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 &#62;</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

Nahoru Odpovědět
7.2.2017 19:11
Neaktivní uživatelský účet
Avatar
Tomáš Střecha:7.2.2017 20:18

Kde se mohu naučit mysqli? :)

 
Nahoru Odpovědět
7.2.2017 20:18
Avatar
Nahoru Odpovědět
7.2.2017 20:24
obsah kocky = r^2 ... a preto vlak drnká
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 15 zpráv z 15.