Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Problem z INSERTEM
polishmilk
post 29.08.2010, 19:32:51
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 27.04.2007

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


Witam,
posiadam pewien formularz
  1. $sql="SELECT * FROM uczen WHERE klasa='$klasau' ORDER BY nazwisko";
  2. $wynik=$lacz->query($sql);
  3. $ile=$wynik->num_rows;
  4. echo '<form action="sprawdz_obecnosc.php" method="post">';
  5.  
  6. echo '<input type="hidden" name="klasau" value="'.$klasau.'">';
  7. echo '<input type="hidden" name="ile" value="'.$ile.'">';
  8. echo '<table align="center">
  9. <tr><td colspan="5">
  10. <select name="godz">
  11. <option value="0" selected>Proszę wybrać godzinę</option>
  12. <option value="8.00-8.45">8.00-8.45</option>
  13. <option value="8.50-9.35">8.50-9.35</option>
  14. <option value="9.40-10.25">9.40-10.25</option>
  15. <option value="10.45-11.30">10.45-11.30</option>
  16. <option value="11.35-12.20">11.35-12.20</option>
  17. <option value="12.30-13.15">12.30-13.15</option>
  18. <option value="13.35-14.20">13.35-14.20</option>
  19. <option value="14.25-15.10">14.25-15.10</option>
  20. </select></td></tr><tr>';
  21. echo '<td>Imie</td><td>Nazwisko</td><td>Nieobecny</td><td>Obecny</td></tr>';
  22. for($i=0; $i<$ile; $i++){
  23. $row=$wynik->fetch_assoc();
  24. echo '<tr><td>'.$row['imie'].'</td><td>'.$row['nazwisko'].'</td>';
  25. echo '<input type="hidden" name="id_uczen" value="'.$row['id'].'">
  26. <td><select name="obecny">
  27. <option value="" selected>Wybierz...</option>
  28. <option value="O">Obecny</option>
  29. <option value="N">Nieobecny</option>
  30. </select>
  31. </td></tr>';
  32.  
  33. }
  34. echo '<tr><td colspan="5" align="center"><input type="submit" value="Sprawdź"></td></tr>';
  35. echo '</table></form>';
  36. }


oraz skrypcik
  1. $sprawdz.="INSERT INTO obecnosc_$klasau VALUES ('', '$id_uczen', '$godz', '$przedmiot', '$dzien', '$obecny')";
  2. for($i=0; $i<$ile; $i++){
  3. $wynik=$lacz->query($sprawdz);
  4. }


Problem w tym że do bazy wstawiane są rekordy ale z wartościami dla osoby ostatniej z listy. Czy należy to wrzucić to do tablicy i wtedy z tym jechać?
Go to the top of the page
+Quote Post
sadistic_son
post 29.08.2010, 19:45:03
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Nazwy pól w formularzach pozamieniaj na np. name="id_uczen[]". Wtedy php utworzy tablice dla tych inputów a tak to w formie przekazywana jest tylko ostatnia wartość.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
polishmilk
post 30.08.2010, 15:38:32
Post #3





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 27.04.2007

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


Zrobiłem tak jak napisałeś ale wtedy zamiast np id wstawia mi się 0 a zamiast innych pól array.

Ok. Problem rozwiązany. Przepraszam zachowałem się jak gówniarz było tak jak mówiłeś. Dałem w nazwach formularza "[]" i potem w skrypciku coś takiego(dla zainteresowanych)
  1. $ile=count($id_uczen);
  2. for($i=0; $i<$ile; $i++){
  3. if($id_uczen[$i]=="")continue;
  4. $sprawdz="INSERT INTO obecnosc_$klasau VALUES ('', '$id_uczen[$i]', '$godz', '$przedmiot', '$dzien', '$obecny[$i]')";
  5. $wynik=$lacz->query($sprawdz);
  6. }


Ten post edytował polishmilk 30.08.2010, 15:54:17
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 Wersja Lo-Fi Aktualny czas: 12.06.2025 - 16:27