Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: INSERT INTO
Forum PHP.pl > Forum > Przedszkole
mani4
Witam mam pytanie odnosnie kodu ponizej przedstawionego...
Chce zeby zmienne przekazane z formularza zostaly dodane do bazy. Co zrobilem zle ? Albo wypluwa mi blad w 15 linijce nie wiedziec czemu, albo wogole nie wypluwa bledu - ale tez nie dodaje do bazy. Pomocy !
za pomoc z gory dziekuje.
  1. <?php
  2. $host = "db.st.interia.pl";
  3.  
  4. $polaczenie = mysql_connect($host, $username, $password);
  5. mysql_select_db($database, $polaczenie);
  6.  
  7. $query = "INSERT INTO ewid 
  8. (imie, nazwisko, pesel, ulica, lokal, mieszkanie, telefon, dt_rozpoczecia_sz
    kolenia, kategoria, instruktor, prawo_jazdy_nr, pozwolenie_numer, wydane, uwagi, 
    zaplacono, dodano)
  9. VALUES
  10. ('$imie', '$naz', '$pesel', '$ulica', '$nrb', '$nrl', '$tel', '$dtr', '$kat', '$instruktor', '$pjnr', '$pozw', '$wydane', '$uwagi', '$placa', '$dod')";
  11. $wynik = mysql_query($query, $polaczenie)
  12. echo mysql_errno() . ": " . mysql_error() . "n";
  13. if($wynik) {
  14. echo "Zapytanie do bazy zakończyło sie sukcesem";
  15. } else {
  16. echo "Nieudane zapytanie do bazy";
  17.  
  18. ?>
darecki
po pierwsze nie pisz danych dostepowych do swojego serwera MySQL (wyedytuj to)
po drugie czy mozesz podac strukture bazy danych ? ewentualnie sprawdz czy dane do pola typu INT nie zapisujesz w ciapkach np.:
zakladajac ze pole lokal jest typu INT powinienes wartosc zapisac bez ciapek:

  1. <?php
  2.  
  3. $query = "INSERT INTO ewid 
  4. (imie, nazwisko, pesel, ulica, lokal, mieszkanie, telefon, dt_rozpoczecia_sz
    kolenia, kategoria, instruktor, prawo_jazdy_nr, pozwolenie_numer, wydane, uwagi, 
    zaplacono, dodano)
  5. VALUES
  6. ('$imie', '$naz', '$pesel', '$ulica', $nrb, '$nrl', '$tel', '$dtr', '$kat', '$instruktor', '$pjnr', '$pozw', '$wydane', '$uwagi', '$placa', '$dod')";
  7.  
  8. ?>


jezeli varchar to z ciapkami:
  1. <?php
  2.  
  3. $query = "INSERT INTO ewid 
  4. (imie, nazwisko, pesel, ulica, lokal, mieszkanie, telefon, dt_rozpoczecia_sz
    kolenia, kategoria, instruktor, prawo_jazdy_nr, pozwolenie_numer, wydane, uwagi, 
    zaplacono, dodano)
  5. VALUES
  6. ('$imie', '$naz', '$pesel', '$ulica', '$nrb', '$nrl', '$tel', '$dtr', '$kat', '$instruktor', '$pjnr', '$pozw', '$wydane', '$uwagi', '$placa', '$dod')";
  7.  
  8. ?>
mani4
  1. lp char(3) NOT NULL,
  2. imie char(30),
  3. nazwisko char(20),
  4. pesel char(20),
  5. ulica char(20),
  6. lokal char(3),
  7. mieszkanie char(3),
  8. telefon char(20),
  9. dt_rozpoczecia_szkolenia char(12),
  10. kategoria char(3),
  11. instruktor char(10),
  12. prawo_jazdy_nr char(20),
  13. pozwolenie_numer char(20),
  14. wydane char(12),
  15. uwagi blob,
  16. zaplacono integer,
  17. dodano char(30),
  18. PRIMARY KEY (nazwisko)


co z blob ? jak zrobic zeby nadawal lp nastepne w kolejnosci automatycznie ?
Gość_luki
Wyrzuca Ci błąd w linii nr 15, ponieważ brakuje tam na końcu średnika winksmiley.jpg
gladiror
Gość_luki => masz rację... 11 linia...
mani4
Wczesniej wyskakiwal blad w 12 linijce (teraz). gdzie brakuje srednika?
gdzie wczesniej brakuje czegokolwiek ? moze ktos napisze poprawiony skrypt ?
nospor
Przeciez wyraźnie masz napisane że brakuje średnika:
  1. <?php
  2.  
  3. $wynik = mysql_query($query, $polaczenie)
  4.  
  5. ?>


powinno byc:

  1. <?php
  2.  
  3. $wynik = mysql_query($query, $polaczenie);
  4.  
  5. ?>

Cieżko tak samemu wstawic ten średnik?

@gladiror Twoje wypwiedzi nic nie wnoszą, więc i ty ich nie wnoś do tematu, inaczej posypią się ostrzeżenia

@mani4 i prosze na przyszłość nie krzyczeć w temacie
mani4
ja nie krzycze - poprostu funkcje SQL'owe pisze z wielkich liter - nie wiem jakies glupie przyzwyczajenie. Jesli zostalo to tak odebrane przepraszam - postaram sie zeby to sie nie powtorzylo

teraz mam pytanie - czy ma ktos moze skrypcik ktory wyciaga z bazy najwieksze ID questionmark.gif albo moze finkcja w sql'u ktora dodaje +1 do poprzedniego ID
strife
Cytat(mani4 @ 2005-09-21 20:16:39)
teraz mam pytanie - czy ma ktos moze skrypcik ktory wyciaga z bazy najwieksze ID questionmark.gif albo moze finkcja w sql'u ktora dodaje +1 do poprzedniego ID

Witam,

[...] jeśli chcesz największa wartość to przez MAX, a dodawanie normalnie robisz czyli.
  1. SELECT MAX(id)
  2. FROM tabela

  1. INSERT
  2. INTO tabela WHERE id = id + 1


Pozdrawiam!
mani4
  1. "INSERT
  2. INTO ewid (lp, imie.....)
  3. VALUES
  4. ( 'lp = lp + 1', '$imie', '$nazwisko'....);


Dlaczego zawsze pw polu lp mam wartosc lp. a nie o jeden wieksza od lp ?
adif
pole lp char(3) NOT NULL, ustaw sobie jako autonumerowanie i problem bedzie rozwiazany
gladiror
autonumerowanie => auto_increment
adif
jeszcze dodam jedno o czym zpomniałem wcześniej napisać...

oprócz autonumerowania, zmień typ pola "lp" z "char" na int() - jest to pole liczbowe, które posłuży Ci do autonumerowania. "char" jest polem tekstowym.

Poza tym PRIMARY KEY z (nazwisko) zmieniłbym na (lp)
Ja bym proponował tak:

lp int(10) NOT NULL auto_increment PRIMARY KEY
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.