Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Błąd w skrypcie
Forum PHP.pl > Forum > Przedszkole
Musashi
Zacząłem przepisywać przykłady z książki i utknąłem w pewnym miejscu.
Oto 2 skrypty:

createmovie.php
  1. <?
  2.  
  3. $connect = mysql_connect("localhost", "root", "krasnal") or die("Sprawdz polaczenie z serwerem.");
  4. $create = mysql_query("CREATE DATABASE IF NOT EXISTS moviesite") or die(mysql_error());
  5. mysql_select_db("moviesite");
  6.  
  7. $movie = "CREATE TABLE movie (
  8.  movie_id int(11) NOT NULL auto_increment,
  9.  movie_name varchar(255) NOT NULL,
  10.  movie_type tinyint(2) NOT NULL default 0,
  11.  movie_year int(4) NOT NULL default 0,
  12.  movie_leadactor int(11) NOT NULL default 0,
  13.  movie_director int(11) NOT NULL default 0,
  14.  PRIMARY KEY (movie_id),
  15.  KEY movie_type (movie_type,movie_year)
  16.  )";
  17. $results = mysql_query($movie) or die(mysql_error());
  18.  
  19. // tworzymy tabelę "movietype"
  20. $movietype = "CREATE TABLE movietype (
  21. movietype_id int(11) NOT NULL auto_increment,
  22. movietype_label varchar(100) NOT NULL,
  23. PRIMARY KEY (movietype_id)
  24. )";
  25. $results = mysql_query($movietype) or die(mysql_error());
  26.  
  27. // tworzymy tabelę "people"
  28. $people = "CREATE TABLE people (
  29. people_id int(11) NOT NULL auto_increment,
  30. people_fullname varchar(255) NOT NULL,
  31. people_isactor tiny int(1) NOT NULL default 0,
  32. people_isdirector tiny int(1) NOT NULL default 0,
  33. PRIMARY KEY (people_id)
  34. )";
  35. $results = mysql_query($people) or die(mysql_error());
  36. echo "Poprawnie utworzono bazę danych filmów!";
  37. ?>


oraz moviedata.php
  1. <?
  2.  
  3. $connect = mysql_connect("localhost", "root", "krasnal") or die("Sprawdz polaczenie z sewerem.");
  4. mysql_select_db("moviesite");
  5.  
  6. // Ustawianie danych do bazy
  7. $insert = "INSERT INTO movie (movie_id, movie_name, movie_type, movie_year, movie_leadactor, movie_direct
    or)
  8. VALUES (1, 'Bruce Wszechmogacy', 5, 2003, 1, 2),
  9.  (2, 'Zycie biurowe', 5, 1999, 5, 6),
  10.  (3, 'Wielki kanion', 2, 1991, 4, 3)";
  11. $results = mysql_query($insert) or die(mysql_error());
  12.  
  13. $type = "INSTERT INTO movietype (movietype_id, movietype_label)
  14. VALUES (1, 'Science-fiction'),
  15.  (2, 'Dramat'),
  16.  (3, 'Przygoda'),
  17.  (4, 'Wojenny'),
  18.  (5, 'Komedia'),
  19.  (6, 'Horror'),
  20.  (7, 'Akcja'),
  21.  (8, 'Dla dzieci')";
  22. $results = mysql_query($type) or die(mysql_error());
  23.  
  24. $people = "INSERT INTO people (people_id, people_fullname, people_isactor, people_isdirector)
  25. VALUES (1, 'Jim Carrey', 1, 1),
  26.  (2, 'Tom Shadyac', 2, 2),
  27.  (3, 'Lawrence Kesdan', 3, 3),
  28.  (4, 'Kevin Kline', 4, 4),
  29.  (5, 'Ron Livingston', 5, 5),
  30.  (6, 'Mike Judge', 6, 6)";
  31. $results = mysql_query($people) or die(mysql_error());
  32. echo "Dane zostały wstawione poprawnie!";
  33.  
  34. ?>


Plik createmovie.php wykonuje się prawidłowo, natomiast po próbie przetworzenia moviedata.php w przeglądarce pojawia się następująca informacja:
  1. Powtórzone wystąpienie '1' dla klucza 1

Nie wiem o co chodzi, bo to nie jest typowy błąd generowany przez parser php, więc nie odwołuje się do konkretnego wiersza i nie mam pojęcia o jaki klucz z tych tabel chodzi.
Blastereq
Dobrze by było jakbyś zobaczył co masz w bazie. Może te rekordy już tam są.
Jeśli nie to :
or die(mysql_error()) - zastąp np.
or die("Błąd movie") dla każdej tabelki zrób inny komunikat, to zobaczysz, w której jest błąd, a to Cię już powinno naprowadzić gdzie się on znajduje.
Musashi
Dziękuję bardzo smile.gif
Okazało się, że błąd występuje w tabeli people, w pliku craatemovie.php. To znaczy 2 razy było tiny int, zamiast tinyint. Ponadto w pliku moviedata.php było napisane INSTERT, zamiast INSERT winksmiley.jpg
Błąd, który jest w nagłówku tematu występował, ponieważ jak już sugerowałeś, baza została częściowo zapełniona danymi z tabel, które nie wygenerowały błędu, a potem skrypt próbował to nadpisać. Wykasowałem tabelę, poprawiłem wszystkie błędy, uruchomiłem pliki i działa bez problemu.

Pozdrawiam,
Krzysiek
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.