Avatar
Zrusen
Člen
Avatar
Zrusen:

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:

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:

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
Redaktor
Avatar
Odpovídá na Zrusen
Petr Nymsa:

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:

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.