Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wstawianie danych z pętli przez pętlę do tabeli mysql
Forum PHP.pl > Forum > PHP
jaco1410
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




macromatic
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
jaco1410
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?
PiterosWeb
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ń.
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.