Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodanie zmiennej ilości rekordów jednym przyciskiem
damianprz
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 26.08.2009
Skąd: Zamojsce

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


Struktura bazy danych:

(IMG:http://images39.fotosik.pl/184/e75ca425f3300656m.jpg)

A tutaj kod:

  1. $zapytanko="SELECT * FROM towary";
  2. $rezultat = mysql_query($zapytanko)
  3. or die("Błąd zapytania");
  4. $ile=mysql_num_rows($rezultat);
  5.  
  6. echo "<form action='aktualizacja_2.php' method='post'>";
  7. echo "Data id: <INPUT TYPE='text' NAME='data' VALUE=''><P><BR>";
  8. echo "<table id='tabela'>";
  9. echo '<tr><td>Id</td><td>towar</td><td>Wpisz popyt</td></tr>';
  10.  
  11. for ($i=0; $i <$ile; $i++)
  12. {
  13. $wiersz = mysql_fetch_array($rezultat);
  14. echo '<tr>';
  15. echo '<td>'.$wiersz['id'].'</td>';
  16. echo '<td>'.$wiersz['nazwa'].'</td>';
  17. echo "<td><INPUT TYPE='text' NAME='$i' VALUE=''></td>";
  18. echo '</tr>';
  19. }
  20. echo '</table>';
  21.  
  22. echo "<P><INPUT class='button' type=submit value='AKTUALIZACJA' style='font-family: Verdana; font-size: 16pt; font-weight: bold'><br>
  23. </form>";


który wyświetla taki formularz:

(IMG:http://images44.fotosik.pl/191/64ebb3441ad7f9dfm.jpg)

W pliku aktualizacja_2.php do którego odwołuje się powyższy formularz mam coś takiego:

  1. $zapytanko="INSERT INTO produkty
  2. SET
  3. produkty.popyt=".$_POST['value'].",
  4. produkty.id_towaru=".$_POST['i'].",
  5. produkty.id_daty=".$_POST['data']."
  6. ";
  7.  
  8. $rezultat=mysql_query($zapytanko)
  9. or die ("Niestety, nie udało się");


I teraz tak.
$_POST['data'] pobiera w porządku id daty bo próbowałem INSERTOWAĆ coś takiego
  1. produkty.popyt='50',
  2. produkty.id_towaru='1',
  3. produkty.id_daty=".$_POST['data']

i się udało.
Ale jak zrobić żeby pobrało dane popytu i id_towaru które są w pętli w pliku aktualizacja.php i żeby INSERT wprowadził 4 rekordy do tabeli produkty z tą samą datą, ale z różnymi id_towaru i popytami, podanymi w polach INPUT

Za napisane sugestie z góry dziękuję.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
damianprz
post
Post #2





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 26.08.2009
Skąd: Zamojsce

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


Próba wpisania 4 rekordów o dacie 19 i popytach 1 2 3 4

  1. echo "<form action='aktualizacja_2.php' method='POST'>";
  2. echo "<input type='hidden' name='ile' value=".$ile."> ";
  3. echo "Data id: <INPUT TYPE='text' NAME='data' VALUE='19'><P><BR>";
  4. echo "<table id='tabela'>";
  5. echo '<tr><td>Id</td><td>towar</td><td>Wpisz popyt</td></tr>';
  6.  
  7. for ($i=1; $i <=$ile; $i++)
  8. {
  9. $wiersz = mysql_fetch_array($rezultat);
  10. echo '<tr>';
  11. echo '<td>'.$wiersz['id'].'</td>';
  12. echo '<td>'.$wiersz['nazwa'].'</td>';
  13. echo "<INPUT TYPE='text' NAME='$i' VALUE='$i'>";
  14. echo "<input type='hidden' name='id_towaru$i' value=".$wiersz['id']."> ";
  15. echo '</tr>';
  16. }
  17. echo '</table>';
  18.  
  19.  
  20.  
  21.  
  22.  
  23. echo "<P><INPUT class='button' type=submit value='AKTUALIZACJA' style='font-family: Verdana; font-size: 16pt; font-weight: bold'><br>
  24. </form>";


  1. for($i = 1; $i <= $_POST['ile']; $i++)
  2.  
  3. {
  4.  
  5. echo "<HR>ile: ".$ile." ok<BR>";
  6. $id_daty = $_POST['data'];
  7. echo "data: ".$id_daty." ok<BR>";
  8. $variable = 'id_towaru$i';
  9. echo "variable: ".$variable." ok<BR>";
  10. $popyt = $_POST['$i'];
  11. echo "popyt: ".$popyt." ok<BR>";
  12. $id_towaru = $_POST['$variable'];
  13. echo "id towaru: ".$id_towaru." ok<P>";
  14.  
  15. $sql = "INSERT INTO produkty (id_towaru, id_daty, popyt) values ('$id_towaru', '$id_daty', '$popyt')";
  16. echo "sql: ".$sql." ok<P>";
  17. $result = mysql_query ($sql) or die ("Mada faka");
  18. echo "result: ".$result." ok<P>";
  19. }


Dostaje taki wynik:

  1. ile: 4 ok
  2. data: 19 ok
  3. variable: id_towaru$i ok
  4. popyt: ok
  5. id towaru: ok
  6. sql: INSERT INTO produkty (id_towaru, id_daty, popyt) values ('', '19', '') ok
  7.  
  8. result: 1 ok
  9.  
  10.  
  11.  
  12. --------------------------------------------------------------------------------
  13. ile: 4 ok
  14. data: 19 ok
  15. variable: id_towaru$i ok
  16. popyt: ok
  17. id towaru: ok
  18. sql: INSERT INTO produkty (id_towaru, id_daty, popyt) values ('', '19', '') ok
  19.  
  20. result: 1 ok
  21.  
  22.  
  23.  
  24. --------------------------------------------------------------------------------
  25. ile: 4 ok
  26. data: 19 ok
  27. variable: id_towaru$i ok
  28. popyt: ok
  29. id towaru: ok
  30. sql: INSERT INTO produkty (id_towaru, id_daty, popyt) values ('', '19', '') ok
  31.  
  32. result: 1 ok
  33.  
  34.  
  35.  
  36. --------------------------------------------------------------------------------
  37. ile: 4 ok
  38. data: 19 ok
  39. variable: id_towaru$i ok
  40. popyt: ok
  41. id towaru: ok
  42. sql: INSERT INTO produkty (id_towaru, id_daty, popyt) values ('', '19', '') ok
  43.  
  44. result: 1 ok
  45.  


1) Dlaczego proponujesz count($wiersz) a nie $_POST['ile']

2) Datę wczytuje gdy jest $id_daty = $_POST['data']; a nie $id_daty = $_POST['$data']; jak w propozycji

3) W formularzu mamy inputy:
<INPUT TYPE='text' NAME='$i' VALUE='$i'>
<input type='hidden' name='id_towaru$i' value=".$wiersz['id'].">

i próbujemy to wczytać za pomocą:
$variable = 'id_towaru$i';
$popyt = $_POST['$i'];
$id_towaru = $_POST['$variable'];

Nie rozumiem dlaczego nie może być
$id_towaru = $_POST['id_towaru$i'];

4) Nie wiem dlaczego $popyt = $_POST['$i']; nie wczytuje popytu, w pętli powinno wczytać od 1 do 4
$popyt = $_POST['1']
$popyt = $_POST['2']
$popyt = $_POST['3']
$popyt = $_POST['4'] gdzie 1 2 3 4 to kolejne nazwy INPUTów w formularzu czyli powinno pobrać Value tych pól

Nie wiem czy to są podstawy których nie znam. Wydaje mi się że powyższe zagadnienie jest trochę trudne bo to nie jest wpisanie 4 INSERTAMI 4 rekordów o podanych wartościach tylko są te pętle. Wiem, że dla was to banały, ale jak widać dla mnie chyba czarna magia. Gdzie mam błąd? w aktualizacja.php czy aktualizacja_2.php ? Czy w pierwszym pliku wartości są wysyłane dobrze do drugiego pliku i ten drugi źle odbiera, a może ten pierwszy źle wysyła a drugi dobrze odbiera, czy może (zapewne tak jest) obydwa są do bani. Nie chce gotowego kodu. Chcę się czegoś nauczyć.
Te inputy wyjąłem z tabeli bo napisałeś że nie wczyta ich z pola <TD>
Panowie, prosze Was, nakierujcie mnie co mam poprawić...


Dodam że INSERT wprowadza mi rekordy ale oczywiście typu
19 0 0
19 0 0
19 0 0
19 0 0
19 0 0
gdzie data=19 a popyt i id_towaru 0
Go to the top of the page
+Quote Post

Posty w temacie
- damianprz   Dodanie zmiennej ilości rekordów jednym przyciskiem   31.08.2009, 21:23:08
- - Fixus   po raz kolejny kłaniają się podstawy. Skoro masz t...   31.08.2009, 22:15:03
- - damianprz   [PHP] pobierz, plaintext $variable = 'wiersz$i';[P...   31.08.2009, 22:45:01
- - Fixus   hmm skoro formularz masz aktualizacja.php a skrypt...   31.08.2009, 23:14:00
- - damianprz   [PHP] pobierz, plaintext echo "<form actio...   1.09.2009, 01:14:16
- - thek   Chyba nikt nie spojrzał na budowę tabel. Damian......   1.09.2009, 04:34:01
- - damianprz   CytatJeśli jest mało pól (a tak jest teraz) to naw...   1.09.2009, 07:04:11
- - Fixus   theek ma rację. jesteś leniwy. Mógłbyś chociaż po...   1.09.2009, 08:07:31
- - damianprz   Próba wpisania 4 rekordów o dacie 19 i popytach 1 ...   1.09.2009, 11:01:38
- - thek   Lepiej sprawdź jaka jest różnica pomiędzy "...   1.09.2009, 11:32:04
- - damianprz   [PHP] pobierz, plaintext echo ...   1.09.2009, 11:59:48
- - nospor   CytatKur.. a ja myślałem że w $_POST tylko ap...   1.09.2009, 12:01:55
- - damianprz   EDIT2: Id_towaru też mam już zapodane Powinno cho...   1.09.2009, 12:07:02
- - nospor   CytatJa PHP miałem tylko przez 1 semestr, 2h w tyg...   1.09.2009, 12:10:10
- - damianprz   A nie ma czegoś PL?   1.09.2009, 12:14:23
- - Fixus   Cytat(damianprz @ 1.09.2009, 12:07:02...   1.09.2009, 12:18:33
- - thek   Część manuala php jest przetłumaczona na pl, ale d...   1.09.2009, 12:22:24
- - damianprz   Z angielskim najgorzej to nie jest więc przejrze n...   1.09.2009, 12:38:07
- - Fixus   sam   1.09.2009, 12:59:23
- - Karwoch   Tak jak tutaj, gdy zobaczyłem zwrot $variable...   1.09.2009, 13:57:14


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: 14.10.2025 - 13:54