Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: duzo postow i powtarzajace sie pytania mysql
Forum PHP.pl > Forum > PHP
japolak
witam

taki problem
mam taki skrypt ktory otrzymuje dane z formularza
  1. <?php
  2. $godzina=$_POST['godz'.$i];
  3. $typ_karnetu=$_POST['typ_karnetu'];
  4. $pole0=$_POST['10'];
  5. $pole1=$_POST['11'];
  6. $pole2=$_POST['12'];
  7. $pole3=$_POST['13'];
  8. $pole4=$_POST['14'];
  9. $pole5=$_POST['15'];
  10. $pole6=$_POST['16'];
  11. $pole7=$_POST['17'];
  12. $pole8=$_POST['18'];
  13. $pole9=$_POST['19'];
  14. $pole10=$_POST['20'];
  15. $pole11=$_POST['21'];
  16. $pole12=$_POST['22'];
  17. $pole13=$_POST['23'];
  18. $pole14=$_POST['24'];
  19. $pole15=$_POST['25'];
  20. $pole16=$_POST['26'];
  21. $pole17=$_POST['27'];
  22. $pole18=$_POST['28'];
  23. $pole19=$_POST['29'];
  24.  
  25.  
  26. include_once('funkcje_strony.php');
  27.  
  28. zapisz_wejscia($godzina,$typ_karnetu,$pole0,$pole1,$pole2,$pole3,
  29. $pole4,$pole5,$pole6,$pole7,$pole8,$pole9,$pole10,$pole11,$pole12,
  30. $pole13,$pole14,$pole15,$pole16,$pole17,$pole18,$pole19,$pole20);
  31.  
  32.  
  33. ?>


funkcja zapisz_wejscia wyglada nastepująco..
  1. <?php
  2. function zapisz_wejscia($godzina,$typ_karnetu,$pole0,$pole1,$pole2,$pole3,
  3. $pole4,$pole5,$pole6,$pole7,$pole8,$pole9,$pole10,$pole11,$pole12,
  4. $pole13,$pole14,$pole15,$pole16,$pole17,$pole18,$pole19,$pole20)
  5. {
  6.    $lacz=lacz_bd();
  7.    $pytanie1="insert into wejscia values
  8.    ('$pole0','$typ_karnetu',CURDATE(),'$godzina')";
  9.    $wynik=$lacz->query($pytanie1);
  10.    
  11.    i tak dalej moge sobie pisac ... az do $pole19
  12. }
  13. ?>

i ogolnie wszystko sie ladnie zapisuje.
chodzi mi o to jak mozna to zrobić jak najkrutszym sposobem..

i zeby nie zapisywane byly dane z $pola*- gdzie nie zostaly wpisane dane w formularzu ( zeby te pola zostaly omijane )
erix
Cytat
chodzi mi o to jak mozna to zrobić jak najkrutszym sposobem..

Najkrótszym sposobem byłoby opanowanie tablic.
japolak
Cytat(erix @ 26.05.2009, 21:28:39 ) *
Najkrótszym sposobem byłoby opanowanie tablic.


tak myślałem ze coś z tym słowem jest nie tak:P

.. hmm a może podpowiedź czego kąretnie z tablic??

pętli foreach??
phpion
Cytat(japolak @ 26.05.2009, 21:32:12 ) *
.. hmm a może podpowiedź czego konretnie z tablic??

pętli foreach??

Tak.
erix
Kurs PHP, dział: TABLICE.
japolak
Cytat(phpion @ 26.05.2009, 21:33:20 ) *
Tak.


to moze jakiś maly sample do mojego kodu powyżej.. przynajmniej do zgarnięcia $_post..
dalej pokompinował bym sam
erix
Pokombinujesz, jeśli uzupełnisz podstawy.
japolak
Cytat(erix @ 26.05.2009, 21:51:07 ) *
Pokombinujesz, jeśli uzupełnisz podstawy.



hehe .. motywacja nie zna granic;)

ale musze przyznać że masz dobre podejscie do ludzi

w weekend podpowiadałeś mi w innej sprawie
var_dump i te sprawy... - .. problem mialem złozony a ty krótka podpowiedz.. i męcz sie człowieku sam;)
przyznaje pomęczylem sie i nauczylem co nieco..
także thx..
.................................

ok zrobilem to tak:
  1. <?php
  2. $godzina=$_POST['godz'.$i];
  3. $typ_karnetu=$_POST['typ_karnetu'];
  4.  
  5. for($i=10;$i<=29;$i++)
  6. {
  7. $tablica[]=$_POST[$i];
  8. };
  9.  
  10.  
  11. include_once('funkcje_strony.php');
  12. tworz_nagl_html('ga');
  13.  
  14.  
  15. zapisz_wejscia($godzina,$typ_karnetu,$tablica);
  16.  
  17. tworz_stopke_html();
  18. ?>


oraz pytania do bazy:

  1. <?php
  2. function zapisz_wejscia($godzina,$typ_karnetu,$tablica)
  3. {
  4.    $lacz=lacz_bd();
  5.    foreach ($tablica as $pole){
  6.    $pytanie1="insert into wejscia values
  7.    ('$pole','$typ_karnetu',CURDATE(),'$godzina')";
  8.    $wynik=$lacz->query($pytanie1);
  9.    
  10.    }
  11. }
  12. ?>


został mi jeszcze temat jak zrobić aby do bazy zapisywały sie tylko pola posiadające jakąś wartość
bo teraz jeśli nie wypełnie wszystkich pol formularza to niewypenione pola zapisuja mi sie jako zero.
a wogole nie chce ich zapisywac>

prosze o kolejna podpowiedz:
phpion
  1. <?php
  2. function zapisz_wejscia($godzina,$typ_karnetu,$tablica)
  3. {
  4.   $lacz=lacz_bd();
  5.   foreach ($tablica as $pole){
  6.        if (/*warunki*/) {
  7.            $pytanie1="insert into wejscia values('$pole','$typ_karnetu',CURDATE(),'$godzina')";
  8.            $wynik=$lacz->query($pytanie1);
  9.        }
  10.  
  11.   }
  12. }
  13. ?>

Jako warunki podajesz np. sprawdzenie długości (strlen" title="Zobacz w manualu PHP" target="_manual) $pole czy co tam chcesz i gdy warunek będzie spełniony dane będą zapisywane w bazie.
japolak
dzieki

pomogło
  1. <?php
  2. if (strlen($pole)!=0)
  3. ?>



kurcze niekiedy problemy sa tak proste ze az trudne winksmiley.jpg
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.