Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie danych
Forum PHP.pl > Forum > Bazy danych > MySQL
KCG
Witam, to mój pierwszy post, mam nadzieje, że takiego pytania jeszcze nie było. Zaznaczę, że jestem bardzo początkujący. laugh.gif

Utworzyłem bazę danych:
  1. <?php
  2.  
  3. //connect
  4.  
  5. $connect = mysql_connect("localhost", "root", "kadetgsikabrijo") or
  6. die("SprawdĽ połączenie z bazą danych!");
  7.  
  8. //utwórz bazę danych, jeśli nie istnieje
  9.  
  10. $create = mysql_query("CREATE DATABASE IF NOT EXISTS moviesite") or
  11.  
  12. //wybierz nowo utworzoną bazę danych
  13.  
  14. mysql_select_db("moviesite");
  15.  
  16. //create table "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. //create table "movietype"
  33.  
  34. $movietype = "CREATE TABLE movietype (
  35. movietype_id int(11) NOT NULL auto_increment,
  36. movietype_label varchar(100) NOT NULL,
  37. PRIMARY KEY(movietype_id)
  38. )";
  39.  
  40. $results = mysql_query($movietype)
  41. or die (mysql_error());
  42.  
  43. //create table "people"
  44.  
  45. $people = "CREATE TABLE people (
  46. people_id int(11) NOT NULL auto_increment,
  47. people_fullname varchar(255) NOT NULL,
  48. people_isactor tinyint(1) NOT NULL default 0,
  49. people_isdirector tinyint(1) NOT NULL default 0,
  50. PRIMARY KEY (people_id)
  51. )";
  52.  
  53. $results = mysql_query($people)
  54. or die (mysql_error());
  55.  
  56. //koniec ;]
  57.  
  58. echo "Poprawnie utworzono bazę danych!!!";
  59.  
  60.  
  61. ?>


i chcę wprowadzić dane:
  1. <?php
  2.  
  3. //connect
  4.  
  5. mysql_connect("localhost", "root", "kadetgsikabrijo")
  6. or die ("SprawdĽ połączenie z serwerem!!!");
  7.  
  8. //uaktywnij odpowiednią bazę danych
  9.  
  10. mysql_select_db("moviesite");
  11.  
  12. //wstaw dane do tabeli movie
  13.  
  14. $insert = "INSERT INTO movie (movie_id, movie_name, movie_type, movie_year, movie_leadactor, movie_direct
    or) "
    .
  15. "VALUES (1, 'Bruce Wszechmogący', 5, 2003, 1, 2), ".
  16. "(2, 'Życie biurowe', 5, 1999, 5, 6), ".
  17. "(3, 'Wielki Kanion', 2, 1991, 4, 3)";
  18.  
  19. $results = mysql_query($insert)
  20. or die (mysql_error());
  21.  
  22. //wstaw dane do tabeli movietype
  23.  
  24. $type = "INSERT INTO movietype (movietype_id, movietype_label) 
  25. VALUES (1, 'Science-fiction'),
  26. (2, 'Dramat'),
  27. (3, 'Przygoda'),
  28. (4, 'Wojenny'),
  29. (5, 'Komedia'),
  30. (6, 'Horror'),
  31. (7, 'Akcja'),
  32. (8, 'Dla dzieci')";
  33.  
  34. $results = mysql_query($type)
  35. or die (mysql_error());
  36.  
  37. //wstaw dane do tabeli people
  38.  
  39. $people = "INSERT INTO people (people_id, people_fullname, people_isactor, people_isdirector)
  40. VALUES (1, 'Jim Carrey', 1, 0).
  41. (2, 'Tom Shadyac', 0, 1).
  42. (3, 'Lawrence Kasdan', 0, 1).
  43. (4, 'Kevin Kline', 1, 0).
  44. (5, 'Ron Livigston', 1, 0).
  45. (6, 'Mike Judge', 0, 1)";
  46.  
  47. $results = mysql_query($people)
  48. or die (mysql_error());
  49.  
  50. //koniec wstawiania ;]
  51.  
  52. echo "Dane zostały poprawnie wstawione!!!";
  53.  
  54. ?>


Przykład wzięty z książki helion "PHP5, Apache i MySQL od podstaw". smile.gif
Pozdrawiam

Aha, baza została utworzona, ale przy wprowadzaniu danych pojawia się "Duplicate entry '1' for key 1" :/
pr0kt0r
ftp://ftp.helion.pl/przyklady/phappo.zip

Może, to ci pomoze.
KCG
Dzięki pliki się przydadzą. winksmiley.jpg
Ale dalej jest ten sam błąd. :\ Jak usunąć bazę danych, bo może spróbuję stworzyć ją z tego pliku, co mi dałeś?
JaRoPHP
Cytat
Jak usunąć bazę danych

Wykorzystaj polecenie MySQL DROP ....
JaRoPHP
W Twoim zapytaniu jest błąd: wstawiając dane do tabeli "people", używasz kropek (zamiast przecinków).
Jak błąd naprawisz, i uruchomisz skrypt raz jeszcze, to baza danych nie wstawi rekordów do poprzednich tabel, ponieważ dublujesz klucze. Stąd komunikat: Duplicate entry '1' for key ....
Chyba wystarczy, jak wyczyścisz odpowiednie tabele z danych poleceniem: DELETE FROM nazwa_tabeli, i ponownie uruchomisz skrypt.
KCG
Dzięki za odpowiedzi, szczególnie JaRoPHP, wszytsko poszło, jak trza. smile.gif
Tylko nie rozumiem czemu się tak działo? Przez te kropki zamiast przecinków?

P.S. Czemu tu nie ma opcji dawania punkcików "pomógł"? ;]
gszesiek
Cytat
Przykład wzięty z książki helion "PHP5, Apache i MySQL od podstaw".

Cytat
Tylko nie rozumiem czemu się tak działo? Przez te kropki zamiast przecinków?


popatrz jeszcze raz w książkę i porównaj te kropki z tymi z książki smile.gif
sarna89
Mam przykład przepisany z książki, który zapisuje informacje do bazy. I nie działa. Po wpisaniu do formularza html danych, i wysłaniu ich do skryptu php, jest pusty ekran-bez błędu i komentarza. Nie wiem co mam robić.Co zmienić? Mam Krasnala.
poniżej ten skrypt.

<html>
<head>
<title>zapisywanie danych</title>
</head>
<body>

<?php

$Modulo=$_POST['Modulo'];
$ImieNazwiko=$_POST['ImieNazwiko'];
$Adres=$_POST['Adres'];
$Oddzial=$_POST['Oddzial'];
if(!$Modulo || !$ImieNazwiko || !$Adres || !$Oddzial)
{
echo 'nie podano wszystkich potrzebnych danych';
exit;
}
if(!get_magic_quotes_gpc())
{
$Modulo = addslashes($Modulo);
$ImieNazwiko = addslashes($ImieNazwiko);
$Adres = addslashes($Adres);
$Oddzial = addslashes($Oddzial);
}

@ $db = new mysqli ('localhost', 'root', 'krasnal');

if(mysqli_connect_errno())

{
echo 'Błąd: : Połączenie z bazą danych nieudane.';
exit;
}

$zapytanie = "insert into DANE values ('".$Modulo."', '".$ImieNazwiko."', '".$Adres."', '".$Oddzial."')";
$wynik = $db->query($zapytanie);
if ($wynik)

echo $db->affected_rows.'dane wpisane';
?>
</body>
</html>
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.