IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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
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
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
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.