Autor | Zpráva | ||
---|---|---|---|
dumper Profil |
#1 · Zasláno: 21. 4. 2015, 19:24:43
Zdravím, jsem začátečník s php, učím se pomocí knihy takže všechno dělám tak jak je tam popsáno. Potřeboval bych poradit, když si chci pomocí php vytvořit databázi a tabulky tak mi to vždy vytvoří pouze jednu tabulku a zbylý 2 to prostě nevytvoří, jak kdybych php za první tabulkou ukončil. Předem děkuji za odpověď.
<?php $db = mysql_connect('localhost', 'lukas', 'lukas') or die ('Nelze se připojit'); $dotaz = 'CREATE DATABASE IF NOT EXISTS moviesite'; $vysledky = mysql_query($dotaz, $db) or (mysql_error($db)); mysql_select_db('moviesite' , $db)or (mysql_error($db)); $dotaz ='CREATE TABLE movie( movie_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, movie_name VARCHAR(255) NOT NULL, movie_type TINYINT NOT NULL, movie_year SMALLINT UNSIGNED NOT NULL DEFAULT 0, movie_leadactor INTEGER UNSIGNED NOT NULL DEFAULT 0, movie_director INTEGER UNSIGNED NOT NULL DEFAULT 0, PRIMARY KEY (movie_id), KEY movie_type (movie_type, movie_year) ) ENGINE=MyISAM'; $vysledky = mysql_query($dotaz, $db) or (mysql_error($db)); $dotaz = 'CREATE TABLE movietype ( movietype_id UNSIGNED INT NOT NULL AUTO_INCREMENT, movietype_label VARCHAR(100) NOT NULL, PRIMARY KEY (movietype_id) ) ENGINE=MyISAM'; $vysledky = mysql_query($dotaz, $db) or (mysql_error($db)); $dotaz = 'CREATE TABLE people ( people_id UNSIGNED INT NOT NULL AUTO_INCREMENT, people_fullname VARCHAR(255) NOT NULL, people_isactor TINYINT(1) UNSIGNET NOT NULL DEFAULT 0, peopleisdirector TINYINT(1) UNSIGNET NOT NULL DEFAULT 0, PRYMARY KEY (people_id) ) ENGINE=MyISAM'; $vysledky = mysql_query($dotaz, $db) or (mysql_error($db)); echo 'Databáze byla úspěšně vytvořena!'; ?> |
||
Fisir Profil |
#2 · Zasláno: 21. 4. 2015, 19:29:58
Reaguji na dumpera:
„jsem začátečník s php“ Výborně, takže už ze začátku nepoužívej mysql_* , ale nejsnadněji jejich modernější náhražku MySQLi (případně PDO, které je relativně nezávislé na databázovém systému). O co jde a jak to používat (či jak s tím nahradit mysql_* funkce) popisuji tady.
Vypisuje to nějakou chybovou hlášku? Provedou se ty dotazy, když je spustíš přímo v phpMyAdminu/Admineru? Minimálně ve třetím SQL je chyba: PRYMARY KEY , špatné I .
|
||
Zechy Profil |
Fisir:
„Minimálně ve třetím SQL je chyba: PRYMARY KEY, špatné I.“ Myslím, že ještě dřív by to skončilo na USINGNET než na PRYMARY. Asi by to nejdřív chtělo opravit překlepy. |
||
bestik_63 Profil |
#4 · Zasláno: 21. 4. 2015, 19:35:52
Zkus si vytisknout po každém dotazu výsledek mysql_error($db) ať víš kde je chyba, pak se to daleko lépe dešifruje, kde je chyba. Možná to není problém, ale asi ti po připojení k DB chybí výběr databáze
$link = mysql_connect("localhost", "mysql_user", "mysql_password"); mysql_select_db("nonexistentdb", $link); |
||
dumper Profil |
#5 · Zasláno: 21. 4. 2015, 21:05:38 · Upravil/a: dumper
dumper:
Všechny překlepy mám opravený (způsobený asi už tím že půl dne čumím jen do kódu a všechno už přehlížím) a i přesto je to stále to stejné. Vyhodí to pouze chybu s tím že MySql už je zastaralý a že mám přejít na něco jiného jak už zmiňoval Fisir, prozatím zůstanu u MySql protože s ním pracuje kniha kterou používám. Učím se to podle učebnice Vytváříme webové aplikace od Computer Press. Zkusím mrknout po už napsaných kódech přímo k této knize. bestik_63: připojení asi nebude problém, 1 tabulku mi to vytvoří a v knize mám popsanou tuhle část kódu mysql_select_db('moviesite' , $db)or (mysql_error($db)); tak že mi určuje že databáze moviesite bude pracovní. chápu to tak že je to něco co určuje tabulkám do které databáze se mají vytvořit.
|
||
dumper Profil |
#6 · Zasláno: 22. 4. 2015, 12:10:45
Problém vyřešen
Problém byl v - původně: $dotaz ='CREATE TABLE movietype ( movietype_id UNSIGNED INT NOT NULL AUTO_INCREMENT, .... - správně: $dotaz ='CREATE TABLE movietype ( movietype_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, .... Děkuji za rady :) |
||
Fisir Profil |
#7 · Zasláno: 22. 4. 2015, 12:13:43
Reaguji na dumpera:
„zůstanu u MySql“ Chtěl bych dodat, že v PHP 7 (následuje po PHP 5) bude toto rozšíření odstraněno. Bylo by lepší začít už s nějakým perspektivnějším. Zrovna přechod na MySQLi není tak složitý. |
||
dumper Profil |
#8 · Zasláno: 22. 4. 2015, 12:38:44
Fisir:
„Bylo by lepší začít už s nějakým perspektivnějším“ Ano, něco jsem si o tom četl, prozatím se to učím a jak už jsem zmiňoval, učím se to podle knihy ve které se používá MySQL,, takže když mám někde chybu tak si to v knize projedu znova a najdu ji. Zjistím co mám špatně a na co si mám dávat bacha. Až budu trochu zaběhle s prací s databází a php tak každopádně přejdu na MySQLi. Tady ten problém co sem popisoval byl způsoben chybou i v knize, stáhl sem si v pdf chyby které v ní jsou a mohu pokračovat. :) |
||
Časová prodleva: 9 let
|
0