Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Nie dodaje rekordu do tabeli
Forum PHP.pl > Forum > Przedszkole
trk
form.php
  1. <?php
  2.  
  3.  
  4. echo "<form method='get' action='dodaj.php'>";
  5. echo "zdarzenie:<BR>" ;
  6. echo "<input name='typ' type='text'><br>";
  7.  
  8. echo "<br><br>";
  9. echo "<input type='submit' value='dodaj'>";
  10. echo "</form>";
  11.  
  12.  
  13. ?>

dodaj.php
  1. <?php
  2. $user = '****';
  3. $password = '******';
  4. $database = '*******';
  5. $localhost = '**********';
  6.  
  7. mysql_connect($localhost, $user, $password);
  8. @mysql_select_db($database) or die("Nie udało się wybrać bazy danych");
  9.  
  10. $query = "INSERT INTO pilka VALUES ('','$typ')";
  11. mysql_query($query);
  12. ?>


Na trobe utworzylem w phpmyadmin baze z tabela pilka i 2 polami id (auto) oraz typ (varchar) id klucz.

Jak korzystam z tego formularza i wpisuje jakis text w polu zdarzenie(typ)
to w bazie dodaje sie rekord ale tylko automatyczne ID natomiast TYP jest pusty gdzie ejst blą ?

Pzdr.
Rafal
nospor
nie przyszlo ci na mysl, by sprawdzic czy $typ nie jest puste?
trk
Cytat(nospor @ 9.02.2010, 22:16:38 ) *
nie przyszlo ci na mysl, by sprawdzic czy $typ nie jest puste?



co masz na mysli ? w bazie ? nie nie jest puste w formularzu tez wypelniam to pole. Podejrzewam ze to jakas drobnostka ale chyba mam dzis mozg przemeczony bo nie wiem co jest grane.
nospor
rety... mowiac $typ mam na mysli $typ a nie cos w bazie....
  1. echo 'Zmienna typ: '.$typ;

ja wiem ze jest puste i wiem dobrze dlaczego. Ale chce byś ty sam te banalną rzecz odkrył - tak na przyszlosc...
webspy
  1. $query = "INSERT INTO pilka VALUES ('',tu trzeba cos zmienic)";


moze tak questionmark.gif

poprawilem dla nospor

w sumie pomyslec tez czasem trzeaba smile.gif
Fifi209
Cytat(webspy @ 9.02.2010, 22:54:13 ) *
  1. $query = "INSERT INTO pilka VALUES ('','".$typ."')";


moze tak questionmark.gif

Nie zgaduj nie o to chodzi.

Swoją drogą powinno być:

  1. $query = 'INSERT INTO `pilka` VALUES("'.$zmienna.'")';


Dlaczego $zmienna a nie $typ? ;]

~nospor - ja Cię bardzo przepraszam, ale chyba muszę...

~trk - Google, fraza: register globals
nospor
@fifi twoje zapytanie jest bledne. juz mi sie naweet nie chce tlumaczyc dlaczego...

Cytat
~nospor - ja Cię bardzo przepraszam, ale chyba muszę...
naprawdę mogles wytrzymac... chodzi o to, by koles nauczyl sie diagnozowac gdzie lezy problem. On pewnie mysli ze zapytanie jest zle, bo oczywiscie jest swiecie przekonany ze wszystkie dane ma ok. A wystarczy zrobic glupie echo $typ by sie dowiedziec ze jednak danych nie ma ok.
Jak juz by opanował tę trudną sztukę to by poszedł dalej, ale nie, trzeba na "pomogł" zasłuzyc...
webspy
Cytat(fifi209 @ 9.02.2010, 22:57:15 ) *
Nie zgaduj nie o to chodzi.

Swoją drogą powinno być:

  1. [url="./Pobierz-Plik-186520.html"]pobierz[/url], [url="Plaintext-186520.html"]plaintext[/url] [list=1][*]$query = 'INSERT INTO `pilka` VALUES("'.$zmienna.'")';[/list][PHP] [url="./Pobierz-Plik-186520.html"]pobierz[/url], [url="Plaintext-186520.html"]plaintext[/url]
  2.  
  3. Dlaczego $zmienna a nie $typ? ;]
  4.  
  5. [b]~nospor[/b] - ja Cię bardzo przepraszam, ale chyba muszę...
  6.  
  7. [b]~trk[/b] - Google, fraza: [i]register globals[/i]<!--QuoteEnd--></div><!--QuoteEEnd-->
  8. No ja się z tym zgadzam że powinna być zmienna, napisałem $typ ponieważ w formularzu jest name=typ wiec przeniesie metoda get bo tak mial:
  9. [php]$zmienna = $_GET['typ'];


Mogę się mylić bo dopiero zaczynam rozgryzac php.
Z uszanowaniem dla nospor i fifi209
Fifi209
Cytat(nospor @ 9.02.2010, 23:01:18 ) *
@fifi twoje zapytanie jest bledne. juz mi sie naweet nie chce tlumaczyc dlaczego...


Sorki za offtopic, ale wstawianie w zapytanie '' jest również bezsensowne, można przecież napisać null.

Id jest zwykle potem auto_increment więc moje zapytanie będzie działało.
nospor
Cytat
orki za offtopic, ale wstawianie w zapytanie '' jest również bezsensowne, można przecież napisać null.

Id jest zwykle potem auto_increment więc moje zapytanie będzie działało.
No jednak mnie zmuszasz do wytlumaczenia...
To sobie zrob tabele, gdzie masz dwa pola : jedno auto_increment a drugie pole tekstowe a nastepnie wykonaj swoje zapytanie:
INSERT INTO tabela VALUES('blabla')
tongue.gif
trk
Ja dopiero sie chwycilem za php a wy mi juz jakies zagadki dajecie w dziale dla niemowlakow.


Rozumiem ze chodzi o to zeby zrobic w dodaj.php

$zmienna=$typ;

i w zapytaniu zamaist typ dac zmienna questionmark.gif?


czy o to ze trzeba dac ta kropke przed $ questionmark.gifquestionmark.gif

Bez zagadaek juz prosze. Tak jak pracujacego fizycznie rano cegla wazy 1kg a po 10 godiznach pracy 10kg tak dla mnie dziisja juz ten prosty blad wazy 10 kg
nospor
@trk zadalem ci proste zadanie do wykonania:
echo 'Zmienna typ: '.$typ;

czy to takie trudne?
Fifi209
Cytat(nospor @ 9.02.2010, 23:10:18 ) *
No jednak mnie zmuszasz do wytlumaczenia...
To sobie zrob tabele, gdzie masz dwa pola : jedno auto_increment a drugie pole tekstowe a nastepnie wykonaj swoje zapytanie:
INSERT INTO tabela VALUES('blabla')
tongue.gif


Nie ma to jak zasypiać ^^
Oczywiście masz rację...
Uciekł mi fakt, że robię tak: INSERT INTO `tabela` (`pole`) VALUES('wartosc');
webspy
Musisz po prostu wziaść ten typ z GET
  1. echo 'Zmienna typ: '.$_GET['typ'];


Formularz masz metoda get a pole masz o nazwie typ czyli $_GET['typ'];
a przypisac do zmiennej tak:
  1. $zmienna = $_GET['typ'];

teraz juz chyba wiesz o co chodzi questionmark.gif
trk
form method=get action="a.php"

name="autor" type="text"

i w a.php zmienna autor ma wartosc wiec co ty gadasz o jakims get questionmark.gif?
webspy
Cytat(trk @ 9.02.2010, 23:30:48 ) *
no spoko faktycznie widze ze nic nie wyswietla czyli dane nie zostaly przeslane do dodaj.php wiec nie moga tez byc dodane do tej zasra**j tabeli tylko co zorbic zeby sie przeslaly

dlazcego skoro w formularzu jest name=typ
to informacje w w tym nie zostaja przeslane questionmark.gif questionmark.gif questionmark.gif questionmark.gif questionmark.gif questionmark.gif questionmark.gif questionmark.gif questionmark.gif ?


mi sie juz nie chce myslec, ja chcesz si etylko dowiedziec bo nie zasne a chce sie polozyc jutro jak napisze o pomoc to bede rozwiazywal zagadki ale juz nei dzisiaj


Szukasz błędu w złym miejscu, przesyła do dodaj, wez sobie w pliku dodaj.php wstaw taki kod:
  1. echo $typ;

zobacz co sie stanie a potem wstaw sobie nad echo takie cos
  1. $typ = $_GET['typ'];
  2. echo $typ;

zakladajac ze formularza nie zmieniales i zostal taki jaki pokazales
trk
Cytat(webspy @ 9.02.2010, 23:38:35 ) *
Szukasz błędu w złym miejscu, przesyła do dodaj, wez sobie w pliku dodaj.php wstaw taki kod:
  1. echo $typ;

zobacz co sie stanie a potem wstaw sobie nad echo takie cos
  1. $typ = $_GET['typ'];
  2. echo $typ;

zakladajac ze formularza nie zmieniales i zostal taki jaki pokazales



tylko ze jak zrobie sobie formularz:
form method=get action="a.php"
z polem:
name="autor" type="text"

i po wyslaniu w a.php zmienna autor ma wartosc taka jak podalem w formularzu i nie potrzebuje dodawac get :/
nospor
Cytat
no spoko faktycznie widze ze nic nie wyswietla czyli dane nie zostaly przeslane do dodaj.php wiec nie moga tez byc dodane do tej zasra**j tabeli
SUPER. Teraz juz wiesz ze byles w bledzie myslac ze dane są. To chcialem uzyskac. Na przyszlosc moze sam bedziesz potrafil zdiagnozowac gdzie lezy problem.

Cytat
c wiec co ty gadasz o jakims get

Do danych z linku oraz z formularza wysylanego metodą get nalezy sie dobierac z tablicy $_GET
Do danych z forma wysylanego metodą post nalezy sie dobierac z $_POST.

Czyli u ciebie
nie:$typ
a: $_GET['typ']
webspy
Cytat(trk @ 9.02.2010, 23:42:05 ) *
tylko ze jak zrobie sobie formularz:
form method=get action="a.php"
z polem:
name="autor" type="text"

i po wyslaniu w a.php zmienna autor ma wartosc taka jak podalem w formularzu i nie potrzebuje dodawac get :/


No to jesli masz juz ta wartosc ktora chciales to w czym teraz jest problem??
jesli chodzi o dodanie do bazy to musisz wziasc ta zmienna w taki sposob '".$zmienna."'
  1. $query = "INSERT INTO pilka VALUES ('','".$typ."')";
trk
Za kazdym razem $_GET albo POST questionmark.gif


Ale jak robie formularz co przesyla do a.php i otwiera sie a.php i robie tylko $zmienna to pokazuje mi wartos bez $_GET zadnego

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

Robice z mozgu wode, przeciez jak w formularzu mam pole name=typ i przesyla to do a.php to w tym a.php wyswietla sie wartosc bez zadnego $_GET czy POST a tutaj w moim przypadku nie wyswietla sie jednak i nie weim co jest grane. i Raz piszesz ze jak wyswietla bez get to super jak nie wyswietla to dodaj GET a ja chce poprostu zbey ktos to wyjasnil

pozatym piszesz :
  1. ('','".$typ."')";
a to nie proawda bo powinno byz ' zamaist " w srodku tak ?
Compiler
Najlepiej poczytaj sobie tutki o formularzach rejestracji i logowania w PHP. Tam będziesz miał wyjaśnione wszystko co i jak smile.gif
A jak nie to:
1. wykonaj zapytanie w panelu phpmyadmin.
Jak zadziała to:
2. wstaw te pytanie do pliku dodaj.php
Jak zadziała to w tym pliku to:
3. utwórz zmienną, wstaw wartość i zrób inserta z tą zmienną.
Jak zadziała to:
4. Powinno być:
form method='POST' action='dodaj.php'
a zmienną masz potem w $_POST['typ'] i to wstaw w insercie.

Tutaj masz przykład sprawdzony i działający. Jeżeli coś nie działa, wina leży po stronie bazy lub złego zapytania.
  1. <?
  2. if (isset($_POST["typ"]))
  3. {
  4. $dane = $_POST["typ"];
  5. echo $dane;
  6. //tutaj robisz inserta do bazy
  7. }
  8. else
  9. {
  10. echo "<form method='POST' action=".$PHP_SELF.">";
  11. echo "zdarzenie:<BR>" ;
  12. echo "<input name='typ' type='text'><br>";
  13. echo "<br><br>";
  14. echo "<input type='submit' value='dodaj'>";
  15. echo "</form>";
  16. }
  17. ?>

trk
z ksiazki php4 podstawy:

  1. <html>
  2. <body>
  3. <form method=get action="a.php">
  4. a:
  5. <input name="wart" type="text">
  6. <input type=submit>
  7. </form>
  8. </body>
  9. </html>

a.php:
  1. <?php
  2. echo "$wart";
  3. ?>


Ktorys rok temu takie cos mi dzialalo dzisiaj jest tak jak mowicie trzeba dodat $_GET albo $_POST czy to chodzi o to ze na serwerze na ktorym to kiedys uruchamialem bylo php4 a teraz jest php5 i dlatego to nei dizala czy to jest jakas zmiana wynikajaca z nowsza wersja czy cos questionmark.gif
darko
To jest register_globals=off <-- z powodów bezpieczeństwa i tak, ta zmiana wiąże się z rozwojem php.
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.