Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wstawianie danych z pętli przez pętlę do tabeli mysql
jaco1410
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 30.12.2010

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


Problem polega na tym że mam formularz który pyta użytkownika o ilość pytań, na kolejnej stronce
wyświetla się w pętli formularz (zakładając że użytkownik wpisał 2 wtedy: pyt1,odp1,pyt2,odp1),
pola name są takie same dla każdego pytania i odpowiedzi, gdyż chciałbym aby było to wprowadzane
do 1 tabeli gdzie mam pola: id,pytanie,odp_1 w kolejnych wierszach czyli każde pytanie powinno mieć inne id w mysql

skrócony formularz wygląda tak, znaczniki form są poza pętlą.
  1. <?php
  2. $ile = $_POST["ile"];
  3. $a=1;
  4. while($a <= $ile) {
  5. <td align=left bgcolor=#FFA500 width=25%>Podaj Pytanie ' . $a . ':</td>
  6. <textarea type=text name=pytanie rows=2 cols=65% wrap=virtual> ' . $row['pytanie'].' </textarea>
  7. <textarea type=text name=odp_1 rows=2 cols=65% wrap=virtual>'.$row['odp_1'].'</textarea>
  8. $a++;
  9. }
  10. ?>

tym kodem wprowadzam dane do tabeli,
  1. $zapytanie = "INSERT INTO `pytania` SET `id_szkolenia`='$ukryteid', `pytanie`='$pytanie', `odp_1`='$odp_1',

niestety tylko ostatnie pytanie i odpowiedz z generowanego formularza jest wprowadzane do tabeli, nie mogę sobie poradzić z efektem żeby wszystkie pytania i ich odp. były wprowadzane w kolejnych wierszach tabeli mysql

pozdrawiam




Go to the top of the page
+Quote Post
macromatic
post
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 1
Dołączył: 20.02.2007

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


wykonujesz zapis tylko ostatniego zapytania w formularzu a nie wszystkich

musisz jako name wstawić tablice

  1. <textarea type="text" name="pytanie[]" rows=2 cols=65% wrap=virtual> ' . $row['pytanie'].' </textarea>
  2. <textarea type=text name="odp[]" rows=2 cols=65% wrap=virtual>'.$row['odp_1'].'</textarea>


a następnie skorzystaj z pętli foreach
Go to the top of the page
+Quote Post
jaco1410
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 30.12.2010

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


Coś mi ta funkcja nie wychodzi, wpisuje mi wartości: ($ukryteid i $pytanie) w polu id_szkolenia

  1. $tablica = array(
  2. id_szkolenia => '$ukryteid',
  3. pytanie => '$pytanie',
  4. );
  5. foreach($tablica as $ukryteid){
  6. $zapytanie = "INSERT INTO `pytania` SET `id_szkolenia`='$ukryteid', `pytanie`='$pytanie', `odp_1`='$odp_1',
  7. }


co robię nie tak?
Go to the top of the page
+Quote Post
PiterosWeb
post
Post #4





Grupa: Zarejestrowani
Postów: 48
Pomógł: 2
Dołączył: 2.10.2010
Skąd: Piotrków Trybunalski

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


mógłbyś po kombinowac z tablicą i na niej operować np.
na początku dajesz w formualrzu zamiast odp to nr odpowiedzi.

A później to już prosta sprawa dajesz pętelke np. for jesli wiesz ile jest tych tablic.
i w tej pętli dajesz mniej więcej takie zpaytanie:
Ten post $i to jest numer odpowiedzi.

Jeśli pętelka for to: Ten index "$i" musi być także w pętli wtedy będzie po prostu dodawać on te dane które miały w formularzu podaną właśnie tą tablice.
A jeśli np. While to deklarujesz przed pętlą że $i =1 a potem w pętli dajesz to:
  1. $zapytanie = "INSERT INTO pytania values('$ukryteid', '".$_POST[$i]."')";
  2. $i = $i++;
  3. lub
  4. $i=$i+1;

Jeżeli używasz pętli for to nei musisz tego robić wystarczy że będzie ona podana w nagłówku pętli w sensie że coś takiego:
for($i=1; $i<=5; $i++)

a tą piątkę ,możesz zamienić na jakąś zmienną w której będzie ilość tych powtórzeń.
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 Aktualny czas: 20.08.2025 - 11:09