Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Błąd przy wypełnianiu tabel
Forum PHP.pl > Forum > Przedszkole
piateczka_pl
Jestem w trakcie lektury "PHP Apache MySQL od podstaw" i wykonuję poszczególne skrypty w niej opisane. Pojawił się jednak problem. Otrzymuję komunikat:

  1. Duplicate entry '1' for key 'PRIMARY'


Przepisałem z książki i uruchomiłem 2 pliki: createmovie.php poszedł dobrze, natomiast po uruchomieniu moviedata.php wyskakuje błąd.

createmovie.php

  1. <?php
  2.  
  3. $connect = mysql_connect("localhost", "user", "pass") or die ("Nie udało się połączyć z bazą danych");
  4.  
  5. $create = mysql_query("CREATE DATABASE IF NOT EXISTS moviesite") or die(mysql_error());
  6.  
  7. mysql_select_db("moviesite");
  8.  
  9.  
  10. $movie = "CREATE TABLE movie (
  11. movie_id int(11) NOT NULL auto_increment,
  12. movie_name varchar(255) NOT NULL,
  13. movie_type tinyint(2) NOT NULL default 0,
  14. movie_year int(4) NOT NULL default 0,
  15. movie_leadactor int(11) NOT NULL default 0,
  16. movie_director int(11) NOT NULL default 0,
  17. PRIMARY KEY (movie_id),
  18. KEY movie_type (movie_type,movie_year)
  19. )";
  20.  
  21. $results = mysql_query($movie) or die (mysql_error());
  22.  
  23.  
  24. $movietype = "CREATE TABLE movietype (
  25. movietype_id int(11) NOT NULL auto_increment,
  26. movietype_label varchar(100) NOT NULL,
  27. PRIMARY KEY (movietype_id)
  28. )";
  29.  
  30. $results = mysql_query($movietype) or die (mysql_error());
  31.  
  32.  
  33. $people = "CREATE TABLE people (
  34. people_id int(11) NOT NULL auto_increment,
  35. people_fullname varchar(255) NOT NULL,
  36. people_isactor tinyint(1) NOT NULL default 0,
  37. people_isdirector tinyint(1) NOT NULL default 0,
  38. PRIMARY KEY (people_id)
  39. )";
  40.  
  41. $results = mysql_query($people) or die (mysql_error());
  42.  
  43.  
  44. echo "Poprawnie utworzono bazę danych filmów";
  45. ?>


moviedata.php

  1. <?php
  2.  
  3. $connect = mysql_connect("localhost", "user", "pass") or die ("Nie udało się połączyć z bazą danych");
  4.  
  5. mysql_select_db("moviesite");
  6.  
  7.  
  8. $insert = "INSERT INTO movie (movie_id, movie_name, movie_type, " .
  9.          "movie_year, movie_leadactor, movie_director) " .
  10.          "VALUES (1, 'Bruce Wszechmogący', 5, 2003, 1, 2), " .
  11.          "(2, 'Życie biurowe', 5, 1999, 6, 5)," .
  12.          "(3, 'Wielki Kanion', 2, 1991, 4, 3)";
  13.  
  14. $results = mysql_query($insert) or die (mysql_error());
  15.  
  16.  
  17. $type =   "INSERT INTO movietype (movietype_id, movietype_label) " .
  18.          "VALUES (1, 'Science fiction'), " .
  19.          "(2, 'Dramat'), " .
  20.          "(3, 'Przygoda'), " .
  21.          "(4, 'Wojenny'), " .
  22.          "(5, 'Komedia'), " .
  23.          "(6, 'Horror'), " .
  24.          "(7, 'Akcja'), " .
  25.          "(8, 'Dla dzieci')";
  26.  
  27. $results = mysql_query($type) or die (mysql_error());
  28.  
  29.  
  30. $people = "INSERT INTO people (people_id, people_fullname, " .
  31.          "people_isactor, people_isdirector) " .
  32.          "VALUES (1, 'Jim Carrey', 1, 0), " .
  33.          "(2, 'Tom Shadyac', 0, 1), " .
  34.          "(3, 'Lawrecne Kasdan', 0, 1), " .
  35.          "(4, 'Kevin Kline', 0, 1), " .
  36.          "(5, 'Ron Livingston', 1, 0), " .
  37.          "(6, 'Mike Judge')";
  38.  
  39. $results = mysql_query($people) or die (mysql_error());
  40.  
  41. echo "Dane zostały wstawione poprawnie";
  42. ?>


Być może jest jakaś literówka, a ja długo wpatruję sie w kod i mi ona ucieka. Bardzo proszę o rzut oka i ew. poprawę.
matixrr
Wyczyść baze i spróbuj ponownie.
blooregard
Nie wstawiaj wartości do kolumny, która ma ustawione auto_increment.
piateczka_pl
Cytat(blooregard @ 1.02.2009, 18:53:41 ) *
Nie wstawiaj wartości do kolumny, która ma ustawione auto_increment.


Czyli ma byc taka postac ?:

  1. <?php
  2. $insert = "INSERT INTO movie (movie_id, movie_name, movie_type, " .
  3.          "movie_year, movie_leadactor, movie_director) " .
  4.          "VALUES ('', 'Bruce Wszechmogący', 5, 2003, 1, 2), " .
  5. ?>
matixrr
  1. <?php
  2. $insert = "INSERT INTO movie (movie_name, movie_type, " .
  3.         "movie_year, movie_leadactor, movie_director) " .
  4.         "VALUES ('Bruce Wszechmogący', 5, 2003, 1, 2), " .
  5. ?>
piateczka_pl
Dziekuje za pomoc. Problem rozwiazany.
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.