NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Mezinárodní den IT společnosti je tady! Pouze nyní můžeš získat 90 % extra kreditů při nákupu od 1199 kreditů s promo kódem AJTACI90. Tak neváhej!

Diskuze: Chyba s CREATE TABLE

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
Zrusen
Člen
Avatar
Zrusen:28.3.2014 9:29

Dobrý den chci se zeptat na to proč se mi nevytvoří tabulka v databazi, když davám tento code

Db::query("CREATE TABLE `$nazev` (`clanky`,`popis`)");

Děkuji za rady.

<?php
session_start();
require('Db.php');
Db::connect('lukas.jinonice.cz', '######', '####', '#######');

if ($_POST)
{
        if ($_POST['rok'] != date('Y'))
                $zprava = 'Chybně vyplněný antispam.';
        else if ($_POST['heslo'] != $_POST['heslo_znovu'])
                $zprava = 'Hesla nesouhlasí';
        else
        {
                $existuje = Db::querySingle('
                        SELECT COUNT(*)
                        FROM uzivatele
                        WHERE jmeno=?
                        LIMIT 1
                ', $_POST['jmeno']);
                if ($existuje)
                        $zprava = 'Uživatel s touto přezdívkou je již v databázi..';
                else
                {
                        Db::query('
                                INSERT INTO uzivatele (jmeno, heslo)
                                VALUES (?, SHA1(?))
                        ', $_POST['jmeno'], $_POST['heslo'] . "t&#ssdf54gh");
                        $name = mysql_real_escape_string($_POST['jmeno']);
                        Db::query("CREATE TABLE `$nazev` (`clanky`,`popis`)");
                        $_SESSION['uzivatel_id'] = Db::getLastId();
                        $_SESSION['uzivatel_jmeno'] = $_POST['jmeno'];
                        $_SESSION['uzivatel_admin'] = 0;
                        header('Location: administrace.php');
                        exit();
                }
        }
}
?>
<?
    include("menu.php"); //Načtení menu
?>
    <link rel="stylesheet" href="styl.css" type="text/css" />
    <meta charset="UTF-8">
        <title>Registrace</title>

    <div class= "index">
    <p align="center">
    <h1>Registrace</h1>
             <form method="post">
                                        Jméno<br />
                                        <input type="text" name="jmeno" /><br />
                                        Heslo<br />
                                        <input type="password" name="heslo" /><br />
                                        Heslo znovu<br />
                                        <input type="password" name="heslo_znovu" /><br />
                                        Zadejte aktuální rok (antispam)<br />
                                        <input type="text" name="rok" /><br />
                                        <input type="submit" value="Registrovat" />
                                </form>

                                 </p>
                                </div>
   </body>
   <?
    include("footer.php"); //Načtení menu
?>
</html>
 
Odpovědět
28.3.2014 9:29
Avatar
lukigod
Člen
Avatar
Odpovídá na Zrusen
lukigod:28.3.2014 9:49

No já nevidím nikde inicializovanou proměnnou $nazev a nevyužitou proměnnou $name. A zároveň nechápu, proč pro každýho uživatele vytváříš extra tabulku?

Editováno 28.3.2014 9:49
 
Nahoru Odpovědět
28.3.2014 9:49
Avatar
Zrusen
Člen
Avatar
Zrusen:28.3.2014 10:03

JJ s tou $name děkuju jsem se sekl a tabulku pro každého uživatele vytvářím kvuli článkům, které oni napíšou.

 
Nahoru Odpovědět
-1
28.3.2014 10:03
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Zrusen
Petr Nymsa:28.3.2014 10:09

To je ale úplně ŠPATNĚ. Budeš mít tabulku Uzivatel (id, jmeno,...). Tabulku Clanek (id, id_uzivatel, jmeno, text,...)

Tj do tabulky Clanek uložíš vždy jméno a text článku a ID uživatele, který článek napsal.

Pak stačí si data vytáhnout např. přes JOIN. Nebo třeba vrátit všechny články přihlášeného uživatele (id = 5)

SELECT * FROM clanek WEHRE id_uzivatel = 5
Nahoru Odpovědět
+3
28.3.2014 10:09
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Zrusen
Člen
Avatar
Zrusen:28.3.2014 10:14

Jo děkuju.

 
Nahoru Odpovědět
28.3.2014 10:14
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 5 zpráv z 5.