Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Zapytanie w pętli...
Forum PHP.pl > Forum > Przedszkole
_itoaster
Witam

Jest to mój pierwszy post na tym forum i pragnę was serdecznie powitać winksmiley.jpg Zmagam się z pewnym problemem, otóż zapytania umieszczone w pętli for są wykonywane, ale tylko za pierwszym przebiegiem pojawia się zapis w bazie. Mój wredny kod:

  1. <?php
  2. $ssklad = "zawodnik pierwszy, zawodnik drugi ż.k (46` zawodnik trzeci)";
  3.  
  4. if (!empty($ssklad)) {
  5.  
  6. $sklad = explode(',', $ssklad);
  7. $ile = count($sklad);
  8.  
  9.  
  10. for($i=0;$i<$ile;$i++) {
  11.  
  12.         if(preg_match("/^(.*) ((.*))$/i", $sklad[$i], $b)) {
  13.  
  14.                        $c = str_replace('(', '', $b);
  15.                        $d = str_replace(')', '', $c);
  16.                        $e = $d['2'];
  17.                        
  18.                         $zawodnik1 = $d['1'];
  19.                         if(preg_match("/ż.k/", $zawodnik1)) { $zk1 = 1; $czk1=0;
  20.                             if(preg_match("/cz.k/", $zawodnik1))  { $czk1 = 1; $zk1=2;
  21.                             }
  22.                             } elseif(preg_match("/cz.k/", $zawodnik1)) { $czk1 = 1; $zk1=0; } else { $czk1=0; $zk1=0; }
  23.  
  24.  
  25.                             $f = explode("`" , $e);
  26.                             $minuta = $f['0'];
  27.                             $zawodnik = $f['1'];
  28.                            
  29.                             $czas = 90-$minuta;
  30.                             $czas1 = 90-$czas;
  31.                             $zawodnik1 = str_replace(' ż.k', '', $zawodnik1);
  32.                             $zawodnik1 = addslash(str_replace(' cz.k', '', $zawodnik1));
  33.  
  34.  
  35.                             $zawodnik = str_replace(' ż.k', '', $zawodnik);
  36.                             $zawodnik = addslash(str_replace(' cz.k', '', $zawodnik));
  37.  
  38.                            
  39.                             if(preg_match("/ż.k/", $e)) { $zk = 1; $czk=0;
  40.                             if(preg_match("/cz.k/", $e)) { $czk = 1; $zk=2; }
  41.                             } elseif(preg_match("/cz.k/", $e)) { $czk = 1; $zk=0; } else {
  42.                             $czk=0; $zk=0; }
  43.  
  44.                            
  45.                             $result = mysql_query("UPDATE ep_zawodnicy SET mecze=mecze+1, czas=czas+'$czas', zk=zk+'$zk', czk=czk+'$czk' WHERE zawodnik='$zawodnik'");
  46.  
  47.  
  48.                             $result = mysql_query("UPDATE ep_zawodnicy SET mecze=mecze+1, czas=czas+'$czas1', zk=zk+'$zk1', czk=czk+'$czk1' WHERE zawodnik='$zawodnik1'");
  49.  
  50.  
  51.                     } else {
  52.  
  53.                     if(preg_match("/ż.k/", $sklad[$i])) { $zk = 1; $czk=0;
  54.                     if(preg_match("/cz.k/", $sklad[$i])) { $czk = 1; $zk=2;
  55.                     }
  56.                     } elseif(preg_match("/cz.k/", $sklad[$i])) { $zk=0; $czk = 1; } else { $zk=0; $czk=0; }
  57.  
  58.                     $sasa = str_replace(' ż.k', '', $sklad[$i]);
  59.                     $zawodnik = addslash(str_replace(' cz.k', '', $sasa));
  60.  
  61.                     $result = mysql_query("UPDATE ".$db_prefix."zawodnicy SET mecze=mecze+1, czas=czas+90, zk=zk+'$zk', czk=czk+'$czk' WHERE zawodnik='$zawodnik'");
  62.                    
  63.                     }
  64.                       $zk = 0; $czk=0;
  65.  
  66. }
  67.  
  68. }
  69. ?>


Jeżeli przed zapytanie w echo wyświetlam zmienne, które mają być zapisane wszystko się zgadza. Tak jak napisałem, tylko "zawodnik pierwszy" trafia do bazy danych. Może ktoś z was spotkał się z takim problemem. Z góry dziękuję za pomoc.

Pozdrawiam _itoaster

//PS. Wiem, że namieszane ale przez to cudo ciężko o logiczny zapis smile.gif

//EDIT: Dałem sobie radę. W następnych przejściach $zawodnik zaczynał się od spacji. Dodałem preg_replace z limitem na 1 podmianę i wszystko śmiga smile.gif
Pawel_W
od tego jest mysql_error(), sprawdź czy czegoś nie "podpowie"
_itoaster
Niestety - niczego nie wyświetla.
progresmedia
Szczerze mówiąc to skrypt jest tak namieszane w tym skrypcie, że nic nie widać winksmiley.jpg

Dlaczego wogóle jako wartość wejściowa ma być ciąg znaków ? Nie może być kilka zmiennych (formularz) ?
_itoaster
Ot taki był pomysł smile.gif Zależało mi na tym, żeby ograniczyć ilość pól w formularzu bo wyświetlam to w wielu miejscach. Potem musiałbym to za każdym razem składać, żeby wyświetlić je w formie ciągu, w takim właśnie formacie. A jest tego jeszcze więcej 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.