Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z INSERTEM
Forum PHP.pl > Forum > Przedszkole
polishmilk
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ć?
sadistic_son
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ść.
polishmilk
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. }
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.