Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Wstawianie danych do tabel.
kreiten
post 8.09.2011, 11:35:05
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 2.07.2007

Ostrzeżenie: (0%)
-----


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.


Go to the top of the page
+Quote Post
nospor
post 8.09.2011, 11:38:00
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kreiten
post 8.09.2011, 12:34:09
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 2.07.2007

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
nospor
post 8.09.2011, 12:43:40
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kreiten
post 8.09.2011, 15:37:34
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 2.07.2007

Ostrzeżenie: (0%)
-----


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').";
Go to the top of the page
+Quote Post
nospor
post 8.09.2011, 19:19:50
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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ś.



--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kreiten
post 9.09.2011, 14:21:33
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 2.07.2007

Ostrzeżenie: (0%)
-----


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 .
Go to the top of the page
+Quote Post
nospor
post 9.09.2011, 14:24:08
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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ą.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kreiten
post 9.09.2011, 15:59:26
Post #9





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 2.07.2007

Ostrzeżenie: (0%)
-----


Działa. Bardzo dziękuję i przepraszam za trucie uszu. yahoo.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 13:00