Má první databáze – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Má první databáze – PHP – Fórum – Programujte.comMá první databáze – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Bilko0
Duch
5. 3. 2013   #1
-
0
-

Dobrý den,

nedávno jsem se pustil do programování v PHP 5. Prozatím šli všechny kapitoly dobře, ale nastala chyba, když jsem se dostal na část: Jak používat PHP společně s MySQL.

Studijní materiál: http://knihy.cpress.cz/php5-mysql-apache.html

Jelikož jsem bral databáze a SQL na střední škole, tak to pro mne nebyla španělská vesnice. Ale bod zlomu nastal, když jsem napsal pomocí knihy kód, ve kterém by se měli vytvořit tabulky spolu s databází.

První soubor se jmenuje vytvoritfilm.php

<?php
  $spojeni = mysql_connect ("localhost", "bp5am", "bp5ampass") or
    die ("Zkontrolujte prosím připojení k serveru");
  //vytvoření hlavní databáze
  $tvorba = mysql_query("CREATE DATABASE IF NOT EXIST moviesite")
    or die(mysql_error());
  //nastavit novou databázi jako pracovní
  mysql_select_db("moviesite");
  //vytvoření tabulky "movie"
  $filmy = "CREATE TABLE movie (
  movie_id int( 11 ) NOT NULL auto_increment,
  movie_name varchar( 255 ) NOT NULL,
  movie_type tinyint( 2 ) NOT NULL default 0,
  movie_year int( 4 ) NOT NULL default 0,
  movie_leadactor int( 11 ) NOT NULL default 0,
  movie_director int( 11 ) NOT NULL default 0,
  PRIMARY KEY ( movie_id ),
  KEY movie_type ( movie_type, movie_year )
  )";
  $vysledky = mysql_query( $filmy ) or
    die ( mysql_error());
  //vytvořit tabulku "movietype"
  $typyfilmu = "CREATE TABLE movietype (
  movietype_id int( 11 ) NOT NULL auto_increment,
  movietype_lable varchar( 100 ) NOT NULL,
  PRIMARY KEY (movietype_id)  
  )";
  $vysledky = mysql_query( $typyfilmu ) or
    die( mysql_error());
  //vytvořit tabulku "people"
  $lide = "CREATE TABLE people (
  people_id int( 11 ) NOT NULL auto_increment,
  people_fullname varchar( 255 ) NOT NULL,
  people_isactor tinyint( 1 ) NOT NULL default 0,
  people_isdirector tinyint( 1 ) NOT NULL default 0, 
  PRIMARY KEY (people_id)
  )";  
  $vysledky = mysql_query( $lide ) or
    die (mysql_error());
  echo "Databáze byla úspěšně vytvořena!";
  ?>

Druhý soubor se jmenuje filmovadata.php

<?php
  $spojeni = mysql_connect ("localhost", "bp5am", "bp5ampass") or
    die ("Zkontrolujte připojení k serveru");
    //nastaveni pracovni databaze
  mysql_select_db( "moviesite" );
  //vložit data do tabulky movie
  $vlozit = "INSERT INTO movie (movie_id, movie_name, movie_type, " .
          "movie_year, movie_leadactor, movie_director ) " .
          "VALUES ( 1, 'Božský Bruce', 5, 2003, 1, 2 ), " .
          "( 2, 'Maléry pana Šikuly', 5, 1999, 5, 6 ), " .
          "( 3, 'Grand Canyon', 2, 1991, 4, 3 ), ";
  $vysledky = mysql_query( $vlozit ) or
    die( mysql_error());
   // Nové data do tabulky movietype
  $typ = "INSERT INTO movietype (movitype_id, movietype_label ) " .
          "VALUES ( 1, 'Sci-Fi' ), " .
          "( 2, 'Drama' ), " .
          "( 3, 'Dobrodružný' ), " .
          "( 4, 'Válečný' ), " .
          "( 5, 'Komedie' ), " .
          "( 6, 'Horror' ), " .
          "( 7, 'Akční' ), " .
          "( 8, 'Dětský' )";
   $vysledky = mysql_query( $typ ) or
    die ( mysql_error() );        
  //Nové data do tabulky people
  $lide = "INSERT INTO people ( people_id, people_fullname, " . 
          "people_isactor, people_isdirector ) " .
          "VALUES ( 1, 'Jim Carrey', 1, 0 ), " .       
          "( 2, 'Tom Shadyac', 0, 1 ), " .
          "( 3, 'Lawrence Kasdan', 0, 1 ), " .
          "( 4, 'Kevin Kline', 1, 0 ), " .
          "( 5, 'Ron Livingston', 1, 0 ), " .
          "( 6, 'Mike Judge', 0, 1 )";
  $vysledky = mysql_query( $lide )
    or die ( mysql_error() );
  echo "Vložení dat proběhlo úspěšně!";          
  ?> 

Když jsem spustil soubor vytvoritfilm.php (Používám WampServer v2.2). Hodilo to chybu:

Několikrát jsem kód kontroloval a nenacházel jsem nikde chybu. Napadlo mě pomocí Wampserveru najet na phpMyadmin a do seznamu uživatelů přidat uživatele bp5am. 

Když jsem přidal uživatele do databáze, najednou se objevila zcela nová chybová hláška:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXIST moviesite' at line 1

Nevíte někdo prosím co s tím? Zkoušel jsem i ručně vytvořit databázi moviesite a nadeklarovat tam všechny hodnoty, ale to s tím ani nehne... Budu moc rád za každou radu... Díky   

Nahlásit jako SPAM
IP: 77.48.31.–
Programátor začátečník :)
jakubk
~ Redaktor
+4
Posthunter
5. 3. 2013   #2
-
+1
-
Zajímavé

#1 Bilko
Chybí ti "S" na konci slova "EXISTS"

Nahlásit jako SPAM
IP: 109.246.197.–
Bilko0
Duch
5. 3. 2013   #3
-
0
-

#2 jakubk
Super, díky. U souboru vytvoritfilm.php to funguje, ale v souboru filmovadata.php to pro změnu píše:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Celý jsem to prohledal a nevím kde je chyba... uvozovky jsou podle mě v pořádku. Mohl by jsi prosím tě ještě jednou poradit? :)

Nahlásit jako SPAM
IP: 77.48.31.–
Programátor začátečník :)
Řešení
Guru přes všechno
~ Anonymní uživatel
1 příspěvek
5. 3. 2013   #4
-
+2
-
Zajímavé
Vyřešeno Nejlepší odpověď

Podle mne máš chybu v tom insertu

$vlozit = "INSERT INTO movie (movie_id, movie_name, movie_type, " .
          "movie_year, movie_leadactor, movie_director ) " .
          "VALUES ( 1, 'Božský Bruce', 5, 2003, 1, 2 ), " .
          "( 2, 'Maléry pana Šikuly', 5, 1999, 5, 6 ), " .
          "( 3, 'Grand Canyon', 2, 1991, 4, 3 ), ";

Na posledním řádku by neměla být ta čárka za posledním filmem o Grand Canyonu. Insert bude končit uvozovkou a pak středníkem. Tedy:

$vlozit = "INSERT INTO movie (movie_id, movie_name, movie_type, " .
          "movie_year, movie_leadactor, movie_director ) " .
          "VALUES ( 1, 'Božský Bruce', 5, 2003, 1, 2 ), " .
          "( 2, 'Maléry pana Šikuly', 5, 1999, 5, 6 ), " .
          "( 3, 'Grand Canyon', 2, 1991, 4, 3 )";
Nahlásit jako SPAM
IP: 89.103.129.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 38 hostů

Podobná vlákna

První program — založil Yohaku

První grafika — založil bohetik

RichEdit a prvni znak — založil Remder

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý