Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Blad zapisu danych w bazie
Forum PHP.pl > Forum > Przedszkole
digitmc
Witam. Mam problem. Kupilem ksiazke do php i robie z nich przyklady i trafilem na jeden taki i jest jakis blad. Nie wiem jak go rozwiazac.

Plik createmovie.php tworzy baze danych (dziala prawidlowo).

  1. <?php
  2. // polaczenie z baza mysql
  3.  
  4. $connect = mysql_connect("localhost", "username", "haslo")
  5. or die ("Sprawdz polaczenie");
  6.  
  7. // utworz baze je&para;li nie istnieje;
  8.  
  9. $create = mysql_query ("CREATE DATABASE IF NOT EXISTS moviesite")
  10. or die (mysql_error());
  11.  
  12. // wybierz nowo utworzona baze
  13.  
  14. mysql_select_db('moviesite4');
  15.  
  16. //utworz tabael movie
  17.  
  18. $movie = "CREATE TABLE movie (
  19. movie_id int(11) NOT NULL auto_increment,
  20. movie_name varchar(255) NOT NULL,
  21. movie_type tinyint(2) NOT NULL default 0,
  22. movie_year int(4) NOT NULL default 0,
  23. movie_leadactor int(11) NOT NULL default 0,
  24. movie_director int(11) NOT NULL default 0,
  25. PRIMARY KEY (movie_id),
  26. KEY movie_type (movie_type,movie_year)
  27. )";
  28.  
  29. $results = mysql_query($movie)
  30. or die(mysql_error());
  31.  
  32. // utworz tabele movietype
  33.  
  34. $movietype = "CREATE TABLE movietype
  35. (
  36. movietype_id int(11) NOT NULL auto_increment,
  37. movietype_label varchar(100) NOT NULL,
  38. PRIMARY KEY (movietype_id)
  39. )";
  40.  
  41. $results = mysql_query($movietype)
  42. or die(mysql_error());
  43.  
  44. //utworz tabele people
  45.  
  46. $people = "CREATE TABLE people
  47. (
  48. people_id int(11) NOT NULL auto_increment,
  49. people_fullname varchar(255) NOT NULL,
  50. people_isactor tinyint(1) NOT NULL default 0,
  51. people_isdirector tinyint(1) NOT NULL default 0,
  52. PRIMARY KEY (people_id)
  53. )";
  54.  
  55. $results = mysql_query($people)
  56. or die(mysql_error());
  57.  
  58. echo " Utworzona baze danych";  
  59. ?>



Drugi plik w ktorym wywala blad (wstawia dane do tabel):

  1. <?php
  2. // polacznie z baza dancyh
  3.  
  4. $connect = mysql_connect("localhost", "root", "krasnal")
  5. or die ("Sprawdz polacznie z serwerem");
  6.  
  7. //uaktywnij odp. baze danych
  8.  
  9. mysql_select_db("moviesite");
  10.  
  11. // wstaw dane to tabeli movie
  12.  
  13. $insert = "INSERT INTO movie (movie_id, movie_name, movie_type, " .
  14.  "movie_year, movie_leadactor, movie_director) " . 
  15.  
  16.  "VALUES (1, 'Bruce wszechmogacy', 5, 2003, 1, 2), " .
  17.  "(2, 'Zycie biurowe', 5, 1999, 5, 6), " .
  18.  "(3, 'Wielki Kanion', 2, 1991, 4, 3)";
  19.  
  20. $results = mysql_query($insert)
  21. or die(mysql_error());
  22.  
  23. //wstaw dane do tabeli movietype
  24.  
  25. $type = "INSERT INTO movietype (movietype_id, movietype_label) " .
  26. "VALUES (1, 'Science_fiction'), " . 
  27. "(2, 'Dramat'), " . 
  28. "(3, 'Przygoda'), " .
  29. "(4, 'Wojenny'), " .
  30. "(5, 'Komedia'), " .
  31. "(6, 'Horror'), " .
  32. "(7, 'Akcja'), " .
  33. "(8, 'Dla dzieci')";
  34.  
  35. $results = mysql_query($type)
  36. or die(mysql_error());
  37.  
  38. //wstaw dane do tabeli people
  39.  
  40. $people = "INSERT INTO people (people_id, people_fullname, " .
  41.  "people_isactor, people_isdirector), " .
  42.  
  43.  "VALUES (1, 'Jim Carrey', 1, 0), " .
  44.  "(2, 'Tom Shadyac', 0, 1), " .
  45.  "(3, 'Lawrence Kasdan', 0, 1), " .
  46.  "(4, 'Kevin Klein', 1, 0), " .
  47.  "(5, 'Ron Livingston', 1, 0), " .
  48.  "(6, 'Mike Judge', 0, 1)";
  49.  
  50. $results = myslq_query($people)
  51. or die(mysql_error());
  52.  
  53. echo "Dane zapisane";
  54.  
  55. ?>


Gdy uruchomie ten drugi plik wywala mi blad:


Powtórzone wyst?pienie '1' dla klucza 1



Nie wiem o co chodzi. Przepisalem z ksiazki identycznie jak tam jest i blad.

Konfiguracja:

Krasnal 2.7 + Patch 1.0
Win XP Pro

Zainstalowalem nawet najnowszy soft i tez ten blad sie pojawia wiec nie wiem w czym problem.

Z gory dzieki
nospor
Ale tobie ten blad sie pojawia , gdy pierwszy raz uruchomiles skrypt i jeszcze nie miales tabel, czy pojawia ci sie juz po pierwszym jego wywolaniiu? Bo ten skrypt mozna uruchomic tylko raz, gdyz na sztywno wpisujesz ID i za kolejnym razem beda sie wlasnie powtarzac

proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole:
Temat: Tematyka i zasady panujace na forum Przedszkole
kossa
Masz ustawione pola klucze jako unikatowe a dodając dane do bazy je powtarzasz np przy people_id dodajesz kolejno 1,2,3 itd. po ponownym uruchomieniu skryptu nie możesz znowu dodać 1,2,3... bo te dane już w bazie istnieją. Albo ustaw w bazie że pola te z ID nie są unikatowe albo przerób skrypt tak aby nie wstawiał tych samych doanych do bazy

Łukasz
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.