IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 7. diel - Ners - Výpis článkov v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Libor Šimo (libcosenior):30.3.2014 9:12

Perfektný seriál. :-)

Odpovedať
30.3.2014 9:12
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
charliho
Člen
Avatar
charliho:2.6.2014 15:55

Zdravím, potřeboval bych pomoci. K článkům jsem si přidal sloupec user_id a při vytvoření článku se mi tam zapíše ID přihlášeného uživatele. Jen se mi nedaří zprovoznit výpis článků(v adminstraci), podle toho jaký uživatel je přihlášen. Měl by někdo nějakou radu, jakým SQL dotazem by to šlo vyřešit?
Zkoušel jsem INNER JOIN, ale reaguje to pouze na ID 0 (nevypíše) a ID > 0 (vypíše).

Díky za případnou radu :)

PS:. Krásně psané tutorialy :) Díky moc :)

 
Odpovedať
2.6.2014 15:55
Avatar
Lien
Člen
Avatar
Odpovedá na charliho
Lien:14.7.2014 0:56

Úplně nerozmím tomu, co chceš, ale pokud se mají vypsat články podle toho, kdo je aktuálně přihlášený, tak by Ti mělo stačit
<b>SELECT * FROM clanky WHERE user_id = </b>id přihlášeného uživatele , ne?

Editované 14.7.2014 0:59
 
Odpovedať
14.7.2014 0:56
Avatar
charliho
Člen
Avatar
charliho:14.7.2014 12:44

Zdravím, už jsem tento problém vyřešil, zapomněl jsem napsat. Díky za reakci :)

 
Odpovedať
14.7.2014 12:44
Avatar
Neaktivní uživatel:6.8.2014 12:19

Neviem čím to je ale mám obrovský problém s premennou $clanek. Vkuse mi vypisuje že je nedefinovaná. Kód som už prešiel dobrých 10 krát a chybu nájsť neviem. Viem len, že je v časti, kde sa článkok ukladá do databázy: prikladám kód, stĺpce v databáze mám pomenované inak ale to vadiť nemôže...archive je názov tabuľky. Ak by niekto vedel, v čom je chyba nech sa ozve:

<?php

require('db.php');
Db::connect('127.0.0.1', 'ners', 'root', '');

if (isset($_GET['clanok']))
    $url = $_GET['clanok'];
else
    $url = 'uvod';

$clanek = Db::queryOne('
        SELECT *
        FROM archive
        WHERE article_url=?
', $url);
if (!$clanok)
{
    if ($url != 'chyba')
    {
        header('Location: index.php?clanok=chyba');
        exit();
    }
    else
        die('Nebyl nalezen chybovy clanek');
}

?>

<!DOCTYPE html>
<html lang="sk-sk">

<head>
    <meta charset="utf-8" />
    <meta name="description" content="<?= htmlspecialchars($clanok['article_about']) ?>" />
    <meta name="keywords" content="<?= htmlspecialchars($clanok['article_tag']) ?>" />
    <link rel="shortcut icon" href="obrazky/ikona.ico" />
    <link rel="stylesheet" href="style.css" type="text/css" />
    <title><?= htmlspecialchars($clanok['article_title']) ?></title>
</head>

<body>
<header>
    <div id="logo"><h1>HoBi</h1></div>
    <nav>
        <ul>
            <li><a href="index.php?clanok=uvod">Domů</a></li>
            <li><a href="clanky.php">Články</a></li>
            <li><a href="index.php?clanok=kontakt">Kontakt</a></li>
        </ul>
    </nav>
</header>

<article>
    <div id="centrovac">
        <header>
            <h1><?= htmlspecialchars($clanok['article_title']) ?></h1>
        </header>

        <section>
            <?= $clanok['article_content'] ?>
        </section>
        <div class="cistic"></div>
    </div>
</article>

<footer>
    Vytvořil &copy;HoBi 2013 pro <a href="http://devbook.cz">DEVBOOK.CZ</a>
    <a href="administracia.php">Administrace</a>
</footer>
</body>
</html>
Odpovedať
6.8.2014 12:19
Neaktivní uživatelský účet
Avatar
Odpovedá na Neaktivní uživatel
Michal Žůrek - misaz:6.8.2014 12:39

a funguje databáze? Vloží se tam ten článek?

 
Odpovedať
6.8.2014 12:39
Avatar
Odpovedať
6.8.2014 12:48
Neaktivní uživatelský účet
Avatar
Odpovedá na Neaktivní uživatel
Michal Žůrek - misaz:6.8.2014 12:54

Databáze je zapnutá, existují tabulky, nemáš někde překlep? nastav si v DB::Connect aby zobrazilo chyby.

 
Odpovedať
6.8.2014 12:54
Avatar
Odpovedá na Neaktivní uživatel
Martin Konečný (pavelco1998):6.8.2014 13:03

Jednou tam máš $clanek a jednou $clanok.
Doporučuji psát v jednom jazyce.

Odpovedať
6.8.2014 13:03
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovedá na Martin Konečný (pavelco1998)
Neaktivní uživatel:6.8.2014 13:25

To som opravil...nakoniec som prišiel na to, že som sem dal zlý zdroják. V tomto bude nejaký bug... :D

<?php

    session_start();
    if(empty($_SESSION['admin'])) {
        die("Nemate opravnenie na pridavanie a upravu clankov!");
    }

    require('db.php');
    db::connect('127.0.0.1', 'ners', 'root', '');

    $clanok = array(
        'article_id' => '',
        'article_title' => '',
        'article_content' => '',
        'article_url' => '',
        'article_about' => '',
        'article_tag' => '',
    );

    if($_POST) {
        if(!$_POST['article_id']) {
            db::query('
                INSERT INTO archive (article_title, article_content, article_url, article_about, article_tag)
                VALUES (?, ?, ?, ?, ?)
            ', $_POST['article_title'], $_POST['article_content'], $_POST['article_url'], $_POST['article_about'], $_POST['article_tag']);
        }
        else {
            db::query('
                UPDATE archive
                SET article_title=?, article_content=?, article_url=?, article_about=?, article_tag=?
                WHERE article_id=?
            ', $_POST['article_title'], $_POST['article_content'], $_POST['article_url'], $_POST['article_about'], $_POST['article_tag'], $_POST['article_id']);
        }
        header('Location: index.php?clanok=' . $_POST['article_url']);
        exit();
    }
    elseif(isset($_GET['article_url'])) {
        $loaded = db::queryOne('
            SELECT * FROM archive WHERE url=?
        ', $_GET['article_url']);
        if($loaded) {
            $clanok = $loaded;
        }
        else {
            $sprava = "Clanok nenajdeny!";
        }
    }

?>

<!DOCTYPE html>
<html lang="sk-sk">
<head>
        <meta charset="utf-8">
        <link rel="stylesheet" href="style.css" type="text/css">
        <title>Editor clankov</title>
</head>

<body>
        <article>
                <div id="centrovac">
                        <header>
                                <h1>Editor clankov</h1>
                        </header>
                        <section>
                                <?php
                                if (isset($sprava))
                                        echo('<p>' . $sprava . '</p>');
                                ?>

                                <form method="post">
                                        <input type="hidden" name="clanky_id" value="<?= htmlspecialchars($clanok['article_id']) ?>"><br>
                                        Titulek<br>
                                        <input type="text" name="titulek" value="<?= htmlspecialchars($clanok['article_title']) ?>"><br>
                                        URL<br>
                                        <input type="text" name="url" value="<?= htmlspecialchars($clanok['article_url']) ?>"><br>
                                        Popisek<br>
                                        <input type="text" name="popisek" value="<?= htmlspecialchars($clanok['article_about']) ?>"><br>
                                        Klíčová slova<br>
                                        <input type="text" name="tags" value="<?= htmlspecialchars($clanok['article_tag']) ?>"><br>
                                        <textarea name="obsah"><?= htmlspecialchars($clanok['article_content']) ?></textarea>
                                        <input type="submit" value="Odoslat  >">
                                </form>
                        </section>
                        <div class="cistic"></div>
                </div>
        </article>
        <script type="text/javascript" src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
        <script type="text/javascript">
                tinymce.init({
                        selector: "textarea[name=obsah]",
                        plugins: [
                                "advlist autolink lists link image charmap print preview anchor",
                                "searchreplace visualblocks code fullscreen",
                                "insertdatetime media table contextmenu paste"
                        ],
                        toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
                        entities: "160,nbsp",
                        entity_encoding: "named",
                        entity_encoding: "raw"
                });
        </script>
</body>
</html>
Editované 6.8.2014 13:27
Odpovedať
6.8.2014 13:25
Neaktivní uživatelský účet
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!