Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Wstawianie danych do tabel.
Forum PHP.pl > Forum > Przedszkole
kreiten
Mam taki problem (z książki i nie wiem czemu nie działa), tworzę sobie bazę danych w MySQL:
  1.  
  2. <?php
  3.  
  4. $connect=mysql_connect("localhost","marek","marek") or die ("sprawdz polaczenie z serwerem");
  5.  
  6. $create= mysql_query ("CREATE DATABASE IF NOT EXISTS moviesite") or die (mysql_error());
  7.  
  8. mysql_select_db("moviesite");
  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. $results= mysql_query($movie) or die (mysql_error());
  21.  
  22. $movietype = " CREATE TABLE movietype (
  23. movietype_id int(11) NOT NULL auto_increment,
  24. movietype_label varchar (100) NOT NULL,
  25. PRIMARY KEY (movietype_id) )";
  26.  
  27. $results= mysql_query($movietype) or die (mysql_error());
  28.  
  29. $people= "CREATE TABLE people (
  30. people_id int(11) NOT NULL auto_increment,
  31. people_fullname varchar(255) NOT NULL,
  32. people_isactor tinyint(1) NOT NULL default 0,
  33. people_isdirector tinyint (1) NOT NULL default 0,
  34. PRIMARY KEY (people_id) )";
  35.  
  36. $results = mysql_query ($people) or die (mysql_error());
  37.  
  38. echo "Poprawnie utworzono baze danych filmow";
  39.  
  40.  
  41. ?>
  42.  
  43.  



Następnie chcę ją wypełnić danymi :
  1. <?php
  2.  
  3. $connect=mysql_connect("localhost","marek","marek") or die ("Sprawdz polaczenie z serwerem");
  4. mysql_select_db("moviesite");
  5.  
  6. $insert="INSERT INTO movie (movie_id, movie_name, movie_type, movie_year, movie_leadactor, movie_director)".
  7. "VALUES (1, 'Bruce Wszechmogacy',5,2003,1,2), ".
  8. "(2, 'Zycie Biurowe',5,1999,5,6),".
  9. "(3,'Wielki Kanion', 2, 1991,4,3)";
  10.  
  11. $results=mysql_query($insert) or die(mysql_error());
  12.  
  13. $type="INSERT 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.  
  23. $results= mysql_query($type) or die (mysql_error());
  24.  
  25.  
  26. $people="INSERT INTO people (people_id, people_fullname, people_isactor, people_isdirector) ".
  27. "VALUES (1,'Jim Carrey',1,0),".
  28. "(2,'Tom Shadyac',0,1),".
  29. "(3,'Lawrence Kasdan',0,1),".
  30. "(4,'Kevin Kline',1,0),".
  31. "(5,'Ron Livingstone'1,0),".
  32. "(6,'Mike Judge',0,1),".
  33.  
  34.  
  35. $results=mysql_query($people) or die (mysql_error());
  36.  
  37. echo "Dane zostały wstawione poprawnie";
  38.  
  39.  
  40. ?>
  41.  
  42.  


I pomimo tego, że pojawia się komunikat, że dane zostały wstawione poprawnie pojawia się też błąd:

Notice: Undefined variable: type in C:\wamp\www\moviedata.php on line 23

Notice: Undefined variable: people in C:\wamp\www\moviedata.php on line 35



czyli w linijkach:
$results= mysql_query($type) or die (mysql_error());

$results=mysql_query($people) or die (mysql_error());




Czy ktoś dostrzega dlaczego ? Przykład jest z książki, właśnie ją przerabiam ale idzie mi średnio właśnie z uwagi na takie kwiatki.


nospor
Nie: ".
a: ";

Instrukcje konczy się średnikiem a nie kropką. Patrz jak przepisujesz.

Mowię o ostatnim ".
czyli nie:
$type="INSERT INTO movietype (movietype_id, movietype_label) ".
"VALUES (1, 'Science-fiction').".
"(2,'Dramat').".
"(3,'Przygoda').".
"(4,'Wojenny').".
"(5,'Komedia').".
"(6,'Horror').".
"(7,'Akcja').".
"(8,'Dla dzieci').".

a:
$type="INSERT INTO movietype (movietype_id, movietype_label) ".
"VALUES (1, 'Science-fiction').".
"(2,'Dramat').".
"(3,'Przygoda').".
"(4,'Wojenny').".
"(5,'Komedia').".
"(6,'Horror').".
"(7,'Akcja').".
"(8,'Dla dzieci').";

Analogicznie reszta
kreiten
Wstyd się przyznać. Poprawiłem na średniki. Teraz za to mam taki błąd:

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 '.(3, 'Wielki Kanion', 2, 1991,4,3)' at line 1


Ręce mi opadają w kwestii tych baz danych. Zna ktoś może jakąś dobrą książkę/ tutorial który tłumaczy dokładnie to zagadnienie?
nospor
Bo nie umiesz z książki przepisać....

nie: VALUES (1, 'Science-fiction').
a: VALUES (1, 'Science-fiction'),
kolejny rekordy oddziela się przecinkiem a nie kropką. Analogicznie reszta

Ostatni zaś rekord nie ma mieć ani kropki ani przecinka.

A gdzie to jest wyjasnione? W manualy mysql przy składni danych zapytań. - zapraszam do lektury.

http://dev.mysql.com/doc/refman/5.5/en/insert.html
kreiten
Dzięki za pomoc. To nie ja nie umiem przepisać, tylko w książce są błędy. Poza tym sam wcześniej wstawiłeś kropki:

$type="INSERT INTO movietype (movietype_id, movietype_label) ".
"VALUES (1, 'Science-fiction').".
"(2,'Dramat').".
"(3,'Przygoda').".
"(4,'Wojenny').".
"(5,'Komedia').".
"(6,'Horror').".
"(7,'Akcja').".
"(8,'Dla dzieci').";
nospor
Cytat
Poza tym sam wcześniej wstawiłeś kropki:
Bardzo "smieszne".... nie wstawilem a skopiowałem dokładnie Twój kod i poprawiłem pierwszy błąd na który się uskarżałeś.

kreiten
Zmieniłem tak jak mówiłeś i dalej nie działa. Już nie wiem dlaczego:

  1. <?php
  2.  
  3. $connect=mysql_connect("localhost","marek","marek") or die ("sprawdz polaczenie z serwerem");
  4. mysql_select_db("moviesite");
  5.  
  6.  
  7. $insert="INSERT INTO movie (movie_id, movie_name, movie_type, movie_year, movie_leadactor, movie_director)".
  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.  
  12. $results=mysql_query($insert) or die(mysql_error());
  13.  
  14. $type="INSERT INTO movietype (movietype_id, movietype_label) ".
  15. "VALUES (1, 'Science-fiction'),".
  16. "(2,'Dramat'),".
  17. "(3,'Przygoda'),".
  18. "(4,'Wojenny'),".
  19. "(5,'Komedia'),".
  20. "(6,'Horror'),".
  21. "(7,'Akcja'),".
  22. "(8,'Dla dzieci'),";
  23.  
  24. $results= mysql_query($type) or die (mysql_error());
  25.  
  26.  
  27. $people="INSERT INTO people (people_id, people_fullname, people_isactor, people_isdirector) ".
  28. "VALUES (1,'Jim Carrey',1,0),".
  29. "(2,'Tom Shadyac',0,1),".
  30. "(3,'Lawrence Kasdan',0,1),".
  31. "(4,'Kevin Kline',1,0),".
  32. "(5,'Ron Livingstone',1,0),".
  33. "(6,'Mike Judge',0,1),";
  34.  
  35.  
  36. $results=mysql_query($people) or die (mysql_error());
  37.  
  38. echo "Dane zostały wstawione poprawnie";
  39.  
  40.  
  41. ?>
  42.  
  43.  
  44.  
  45.  
  46.  





Znów pojawia się błąd składni:


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


Książki niby pisane dla początkujących a tu takie błędy i bądź tu teraz mądry.


Tylko mnie nie bij .
nospor
Nie, nie zrobiłeś tak jak mówiłem. Napisałem przecież tez:
Cytat
Ostatni zaś rekord nie ma mieć ani kropki ani przecinka.

Przykładaj sie trochę uważniej do tego co ci ludzie piszą.
kreiten
Działa. Bardzo dziękuję i przepraszam za trucie uszu. yahoo.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.