Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php + mysql ] Dodawanie danych do bazy seriami ?
pioch
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


Witam wszystkich

Nurtuje mnie pewnien problem....

Aby ułatwić sobie pracę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) chciałbym zrobić formularz który dodaje rekordy do bazy seriami...
juz tłumacze jak to by miało wygladać.
Najprościej to skleić ze sobą powiedzmy 3 formularze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) i po wciśnięciu buttona wyślij aby z tych trzech formularzy dane zostały zapisane do bazy...

Próbowałem zrobić ale coś mi nie wychodzi...

Pytanie moje brzmi , czy jest mozliwość zrobienia takiego "sklejonego formularza " , jeśli tak to jak póżniej dodac dane w postaci rekordów do bazy danych...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 19)
nospor
post
Post #2





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




Czy chodzi ci o formularz wielostronicowy?
Walisz jeden formularz, koles go wypelnia, klika dalej. W tym momencie leci submit do serwera, zapamietujesz dane w sesji, wyswietlasz drugi form. i teraz sytuacja sie powtarza i tak tyle razy ile ma byc formularzy/stron. Na ostanim formularzu masz przycisk "zapisz", leci submit do serwera, zbierasz wszystkie dane z sesji i zapisujesz do bazy. Proste (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
A zapisujesz normalnie jak zawsze.

Oto chodzilo?
Go to the top of the page
+Quote Post
pioch
post
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


ja sobie to inaczej wyobrażałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )

ze odrazu wyświetla mi sie w jeden linii jeden formularz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

dzieki za odpowiedz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )

więc doczytam o formularzu wielostronicowym (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) i jak będe miał jeszcze jakieś nurtujące pytania to odpisze

jeszcze raz dzięki dobry człowieku (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




mozna tez od razu walnac jeden form, tylko podzielic go na kawalki i ukrywac to co w danej chwili nie jest potrzebne. Zrobic to na zasadzie zakladek, ze klikajac w dana zakladke pojawia sie dana czesc forma, a wciskajac zapisz wysyla sie caly. To rizwiązanie ma taką zalete, ze kolesiowi strona sie nie bedzie przeladowywala przy kazdym przechodzeniu "dalej". No i oczywiscie tu juz trzeba zaprząc js
Go to the top of the page
+Quote Post
pioch
post
Post #5





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


  1. INSERT INTO sklady VALUES (119, 318, 3, 12, '21', 0, 90, 90, 0, 0, 'P');
  2. INSERT INTO sklady VALUES (120, 319, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  3. INSERT INTO sklady VALUES (121, 320, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  4. INSERT INTO sklady VALUES (122, 321, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  5. INSERT INTO sklady VALUES (123, 322, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  6. INSERT INTO sklady VALUES (124, 323, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  7. INSERT INTO sklady VALUES (125, 324, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  8. INSERT INTO sklady VALUES (126, 325, 3, 12, '4', 0, 69, 69, 0, 1, 'P');
  9. INSERT INTO sklady VALUES (127, 326, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  10. INSERT INTO sklady VALUES (128, 327, 3, 12, '14', 0, 90, 90, 0, 0, 'P');
  11. INSERT INTO sklady VALUES (129, 328, 3, 12, '10', 0, 90, 90, 0, 0, 'P');
  12. INSERT INTO sklady VALUES (130, 329, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  13. INSERT INTO sklady VALUES (131, 330, 3, 12, '15', 69, 90, 21, 0, 0, 'Z');
  14. INSERT INTO sklady VALUES (132, 331, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  15. INSERT INTO sklady VALUES (133, 332, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  16. INSERT INTO sklady VALUES (134, 333, 3, 12, '9', 76, 90, 14, 0, 0, 'Z');
  17. INSERT INTO sklady VALUES (135, 334, 3, 12, '6', 0, 90, 90, 0, 0, 'P');
  18. INSERT INTO sklady VALUES (136, 335, 3, 12, '16', 0, 90, 90, 0, 0, 'P');
  19. INSERT INTO sklady VALUES (137, 336, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  20. INSERT INTO sklady VALUES (138, 337, 3, 12, '8', 0, 90, 90, 0, 0, 'P');
  21. INSERT INTO sklady VALUES (139, 338, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  22. INSERT INTO sklady VALUES (140, 339, 3, 12, '7', 83, 90, 7, 0, 0, 'Z');
  23. INSERT INTO sklady VALUES (141, 340, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  24. INSERT INTO sklady VALUES (142, 341, 3, 12, '17', 0, 76, 76, 0, 0, 'P');
  25. INSERT INTO sklady VALUES (143, 342, 3, 12, '24', 0, 83, 83, 0, 0, 'P');
  26. INSERT INTO sklady VALUES (144, 343, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  27. INSERT INTO sklady VALUES (145, 344, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  28. INSERT INTO sklady VALUES (146, 345, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  29. INSERT INTO sklady VALUES (147, 346, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  30. INSERT INTO sklady VALUES (148, 347, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  31. INSERT INTO sklady VALUES (149, 348, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  32. INSERT INTO sklady VALUES (150, 349, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  33. INSERT INTO sklady VALUES (151, 350, 3, 12, '13', 0, 90, 90, 0, 1, 'P');
  34. INSERT INTO sklady VALUES (152, 351, 3, 12, '-', 0, 0, 0, 0, 0, 'R');
  35. INSERT INTO sklady VALUES (153, 476, 3, 12, '24', 0, 83, 83, 0, 0, 'P');



takie rekordy chciałbym dodac odrazu do bazy, po wciśnieciu buttona wyślij....
z tym ze 3 pierwsze będą stałe ( czyli id, idpilkarza, idklubu ) a nastepne zeby można wprowadzić ....

i stonnicowy formularz odpada....
Go to the top of the page
+Quote Post
sebik
post
Post #6





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 4.01.2007

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


Nie rozumiem do końca o co Ci chodzi. Czy te wszystkie dane mają być wprowadzanie z palca na formularzu? Jesli tak to mozesz w formularzu w petli wyswietlac <input>. Przed tym możesz wprowadzic pytanie o liczbę pozycji do wprowadzenia. Jesli tworzysz tablice inputow w petli nazywaj je np. tab[$i], w ten sposob przekazesz do wywolanego skryptu tablice $tab.

Ten post edytował sebik 8.01.2007, 11:16:25
Go to the top of the page
+Quote Post
pioch
post
Post #7





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


sebik

prosze możesz mi napisać przykład powiedzmy dla 3 pierwszych rekordów jak by to wyglądało ....


z góry dziękuje


rozwiazanie przez input jest oki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
Go to the top of the page
+Quote Post
sebik
post
Post #8





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 4.01.2007

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


napisz jeszcze raz dokladnie o co chodzi, jesli dobrze rozumiem chcesz miec formularz z tabela pól?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) kady wiersz ma byc zapisany jako oddzielny rekord w tabeli? od czego zalezy ilosc wierszy?
Go to the top of the page
+Quote Post
pioch
post
Post #9





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


Każdy wiersz ma byc zapisany jako oddzielny rekord w tabeli

czyli aby zobarazować


[...id....] [....idpilkarza....] [...idmeczu...]
[...id....] [....idpilkarza....] [...idmeczu...]
[...id....] [....idpilkarza....] [...idmeczu...]
[...id....] [....idpilkarza....] [...idmeczu...]
[...id....] [....idpilkarza....] [...idmeczu...]
[...id....] [....idpilkarza....] [...idmeczu...]
----------[submit]


i teraz tak po wpisaniu , wypełnienia tego formularza i wcisnieciu buttona wyslij aby do bazy dodalo

INSERT INTO sklady VALUES (1, 318, 3);
INSERT INTO sklady VALUES (2, 319, 3);
INSERT INTO sklady VALUES (3, 320, 3);
INSERT INTO sklady VALUES (4, 321, 3);
INSERT INTO sklady VALUES (5, 322, 3);
Go to the top of the page
+Quote Post
sebik
post
Post #10





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 4.01.2007

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


strzelam z palca wiec sorki za literowki:

plik z formularzem:
  1. <?php
  2. $ile_wierszy=5; //wklepuje na sztywno, ale mozesz to np. pobrac z formularza
  3.  
  4. echo '<form action="zapis.php" method="post">';
  5. for($i=0;$i<$ile_wierszy;$i++) {
  6.  echo '<input type="text" name=id['.$i.'] />';
  7.  echo '<input type="text" name=id_pilkarza['.$i.'] />';
  8.  echo '<input type="text" name=id_meczu['.$i.'] />';
  9.  echo '<br />';
  10. }
  11. echo '<input type="submit" value="wyslij" />';
  12. echo '</form>';
  13. ?>


plik zapis.php:

  1. <?php
  2. $id=$_POST['id'];
  3. $id_pilkarza=$_POST['id_pilkarza'];
  4. $id_meczu=$_POST['id_meczu'];
  5.  
  6. for ($i=0;$i<count($id);$i++) 
  7.  mysql_query("INSERT INTO sklady VALUES ('".$id[$i]."','".$id_pilkarza[$i]."','".$id_meczu[$i]."'));
  8. ?>


Ten post edytował sebik 8.01.2007, 17:57:54
Go to the top of the page
+Quote Post
pioch
post
Post #11





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


dalej jest problem.....

po wypełnieniu wszytskich pól, w bazie dostaje tylko JEDEN REKORD 0,0,0 ?

coś schrzaniłem ....?
Go to the top of the page
+Quote Post
sebik
post
Post #12





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 4.01.2007

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


wyswietl count($id) zeby zoabczyc czy nie jest puste
Go to the top of the page
+Quote Post
pioch
post
Post #13





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


  1. <?php
  2.  
  3. $id=$_POST['id'];
  4. $id_pilkarza=$_POST['id_pilkarza'];
  5. $id_meczu=$_POST['id_meczu'];
  6.  
  7. for ($i=0;$i<count($id);$i++) 
  8.  
  9. $baza = mysql_connect('localhost', 'root', 'krasnal');
  10. if ($baza) {
  11. $wynik = mysql_select_db('test');
  12. $wynik = mysql_query("INSERT INTO sklady VALUES ('".$id[$i]."','".$id_pilkarza[$i]."','".$id_meczu[$i]."')");
  13.  
  14.  
  15. if ($wynik) echo "<br>Rekord został poprawnie dodany ";
  16. else echo "<br>Rekord nie został dodany: ".mysql_error();
  17. mysql_close($baza);
  18. }
  19. ?>

plik zapis.php

po wysłaniu formularz otrzymuje Rekord został poprawnie dodany.....

ale otrzymuje w bazie tylko same zera :/

ps. wstyd sie przyznać ale nie wiem jak sprawdzić count($id)
Go to the top of the page
+Quote Post
maryaan
post
Post #14





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

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


dopierow w sasiednim temacie bylo wyjasnione zeby sobie zrzucac zawartosc danych (obojetnie czy echo'em czy var_dump()'em czy czym innym) wtedy widzisz czy przekazales prawidlowe dane czy tez zginely gdzies po drodze

Ten post edytował maryaan 8.01.2007, 19:28:15
Go to the top of the page
+Quote Post
pioch
post
Post #15





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


więc dodałem na końcu

  1. <?php
  2. var_dump($wynik);
  3. ?>


i zwróciło mi bool(true) co oznacz ze zakończyło się sukcesem , a jednak w bazie

nie dodaje pięciu rekordów , i jeszcze pole id_pilkarza, id_meczu = 0 , niezaleznie co wpisze
Go to the top of the page
+Quote Post
maryaan
post
Post #16





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

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


ale nie chodzi o wynik zapytania tylko o zmienne, wyswietl tresc zapytania jakie idzie do bazy i wartosci zmiennych ktore sa przekazywane postem do skryptu,




nie jestem pewien czy w ten sposob da sie wysylac dane tablicowe

Ten post edytował maryaan 8.01.2007, 19:54:25
Go to the top of the page
+Quote Post
sebik
post
Post #17





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 4.01.2007

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


troche nie tak napisales ten skrypt, ja pominalem w skrypcie {} bo w petli for uzylem tylko jedna komende, powinno byc tak:

  1. <?php
  2. $baza=mysql_connect('localhost', 'root', 'krasnal') 
  3. if ($baza) {
  4. mysql_select_db('test') or die ("nie udalo sie polaczyc");
  5.  
  6.  
  7. $id=$_POST['id'];
  8. $id_pilkarza=$_POST['id_pilkarza'];
  9. $id_meczu=$_POST['id_meczu'];
  10.  
  11. for ($i=0;$i<count($id);$i++) {
  12. $wynik = mysql_query("INSERT INTO sklady VALUES ('".$id[$i]."','".$id_pilkarza[$i]."','".$id_meczu[i]."')");
  13.  
  14.  
  15. if ($wynik) echo "<br>Rekord został poprawnie dodany ";
  16. else echo "<br>Rekord nie został dodany: ".mysql_error();  
  17.  }
  18. mysql_close($baza); 
  19.  }
  20. ?>



nie dodales klamr w petli for dlatego skrypt wykonywal jedno zapytanie, poza tym mysql_connect i select_db nie powinno byc w petli
aha i dopisz cudzyslowy w formularzu przy name (name="...")

Ten post edytował sebik 8.01.2007, 20:04:11
Go to the top of the page
+Quote Post
pioch
post
Post #18





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


dziekuje

poprawiłem wedłud instrukcji...

ale nadal jest problem


formularz wypełniam tak

1,1,1
2,2,2
3,3,3
4,4,4
5,5,5


a w bazie danych otrzymuje

5, 5, 0
4, 4, 0
3, 3, 0
2, 2, 0
1, 1, 0


dlaczego nie dodaje do bazy tak samo jak w formularzu...

dodam ze w bazie mam pola ustawione na INT
Go to the top of the page
+Quote Post
sebik
post
Post #19





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 4.01.2007

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


bo strzelilem literowke a ty przepisales (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (w zapytaniu powinno byc $i a nie i):

  1. <?php
  2. $wynik = mysql_query("INSERT INTO sklady VALUES ('".$id[$i]."','".$id_pilkarza[$i]."','".$id_meczu[$i]."')");
  3. ?>


komunikat o powodzeniu powinines wyrzucic na zewnatrz petli zeby ci nie wyswietlal po 5 razy
a formularzu wstaw tabele zeby wizualnie to jakos wygladalo, to sa same podstawy, powinienes poczytac o php i formularzach
pozdrawiam

Ten post edytował sebik 9.01.2007, 12:53:55
Go to the top of the page
+Quote Post
pioch
post
Post #20





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


sebik wielkie dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) piwko dla ciebie (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 4.10.2025 - 13:22