Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]utworzenie tabeli
Forum PHP.pl > Forum > Przedszkole
koptus
Właśnie przerabiam książkę o php i utknąłem w jednym miejscu. Stworzyłem baze danych, jednak podczas tworzenia tabel wyświetla mi się taki error:
Kod
Powtórzone wyst?pienie '1' dla klucza 1

Sprawdzałem kilka razy kod, błędu niestety nie znalazłem. Z tego co widze w Myphpadmin mam 3 rekordy w tabeli movie smile.gif w reszcie zero po wykonaniu skryptu.

skrypt:
  1. <?php
  2. //polaczenie z mysql
  3. $connect = mysql_connect("localhost", "root", "xxx") or
  4.            die ("Sprawdz polaczenie z serwerem.");
  5.  
  6. // uaktywnij odpowiednia baze danych
  7. mysql_select_db("moviesite");
  8.  
  9. //wstaw dane do tabeli movie
  10. $insert = "INSERT INTO movie (movie_id, movie_name, movie_type, " .
  11.          "movie_year, movie_leadactor, movie_director) " .
  12.          "VALUES (1, 'Bruce Wrzechmogacy', 5, 2003, 1, 2), " .
  13.          "(2, 'Zycie biurowe', 5, 1999, 5, 6), " .
  14.          "(3, 'Wielki Kanion', 2, 1991, 4, 3)" ;
  15. $results = mysql_query($insert)
  16.  or die(mysql_error());
  17.  
  18. //wstaw dane do tabeli movietype
  19. $type = "INSERT INTO movietype (movietype_id, movietype_label) " .
  20.          "VALUES (1, 'Science-fiction'), " .
  21.          "(2, 'Dramat'), " .
  22.          "(3, 'Przygoda'), " .
  23.          "(4, 'Wojenny'), " .
  24.          "(5, 'Komedia'), " .
  25.          "(6, 'Horror'), " .
  26.          "(7, 'Akcja'), " .
  27.          "(8, 'Dla dzieci')";
  28. $results = mysql_query($type)
  29.  or die(mysql_error());
  30.  
  31. // wstaw dane do tabeli people
  32. $people = "INSERT INTO people (people_id, people_fullname, " .
  33.          "people_isactor, people_isdirector) " .
  34.          "VALUES (1, 'Jim Carrey', 1, 0), " .
  35.          "(2, 'Tom Shadyac', 0, 1), " .
  36.          "(3, 'Lawrence Kasdan', 0, 1), " .
  37.          "(4, 'Kevin Kline', 1, 0), " .
  38.          "(5, 'Ron Livingston', 1, 0), " .
  39.          "(6, 'Mike Judge', 1, 0)";
  40. $results = mysql_query($type)
  41.  or die(mysql_error());
  42. echo "dane zostaly wstawione poprawnie";
  43. ?>
cycofiasz
Pola z końcówką id powinny mieć auto_increment i nie powinieneś nadawać im żadnej wartości, tylko NULL, a Ty tymczasem dodajesz cały czas '1' i się dziwisz że errora wywala.
koptus
Cytat(cycofiasz @ 18.09.2008, 16:19:20 ) *
Pola z końcówką id powinny mieć auto_increment i nie powinieneś nadawać im żadnej wartości, tylko NULL, a Ty tymczasem dodajesz cały czas '1' i się dziwisz że errora wywala.

no ale przy movie_id wszystko jest okej, przy movietype i people sie sypie


dodaje jeszcze kod ktory tworzy baze:
  1. <?php
  2. //polaczenie z mysql
  3. $connect = mysql_connect("localhost", "root", "krasnal") or
  4.            die ("Sprawdz polaczenie z serwerem.");
  5. //utworz baze danych
  6. $create = mysql_query("CREATE DATABASE IF NOT EXISTS moviesite")
  7.  or die(mysql_error());
  8.  
  9. //wybieramy nowa baze
  10. mysql_select_db("moviesite");
  11.  
  12. //utworz nowa tabele "movie"
  13. $movie = "CREATE TABLE movie (
  14.  movie_id int(11) NOT NULL auto_increment,
  15.  movie_name varchar(255) NOT NULL,
  16.  movie_type tinyint(2) NOT NULL default 0,
  17.  movie_year int(4) NOT NULL default 0,
  18.  movie_leadactor int(11) NOT NULL default 0,
  19.  movie_director int(11) NOT NULL default 0,
  20.  PRIMARY KEY (movie_id),
  21.  KEY movie_type (movie_type,movie_year)
  22.  )";
  23.  
  24. $results = mysql_query($movie)
  25.  or die (mysql_error());
  26.  
  27. //utworz tabele movietype
  28. $movietype = "CREATE TABLE movietype (
  29.  movietype_id int(11) NOT NULL auto_increment,
  30.  movietype_label varchar(100) NOT NULL,
  31.  PRIMARY KEY (movietype_id)
  32.  )";
  33.  
  34. $results = mysql_query($movietype)
  35.  or die (mysql_error());
  36.  
  37. //utworz tabele people
  38. $people = "CREATE TABLE people (
  39.  people_id int(11) NOT NULL auto_increment,
  40.  people_fullname varchar(255) NOT NULL,
  41.  people_isactor tinyint(1) NOT NULL default 0,
  42.  people_isdirector tinyint(1) NOT NULL default 0,
  43.  PRIMARY KEY (people_id)
  44.  )";
  45.  
  46. $results = mysql_query($people)
  47.  or die (mysql_error());
  48.  
  49. echo "Poprawnie utworzono baze filmow!";
  50.  
  51.  
  52. ?>
-ghost-
Cytat
Powtórzone wyst?pienie '1' dla klucza 1

Sprawdź przed uruchomieniem skryptu który wprowadza wartości, czy w bazie danych nie masz już jakiś rekordów.
koptus
Dzięki smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.