Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Zapytanie w pętli...
_itoaster
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.07.2009

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


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

Ten post edytował _itoaster 7.07.2009, 19:25:07
Go to the top of the page
+Quote Post
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


od tego jest mysql_error(), sprawdź czy czegoś nie "podpowie"
Go to the top of the page
+Quote Post
_itoaster
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.07.2009

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


Niestety - niczego nie wyświetla.
Go to the top of the page
+Quote Post
progresmedia
post
Post #4





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 7.05.2009
Skąd: Wrocław

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


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) ?


--------------------
<aL> jaką masz stronę startową?
<Gustaff> na firefox'ie wp.pl...
<Gustaff> a na IE about:blank, żebym wiedział, że złą przeglądarkę włączylem ;P

www.progresmedia.pl
Go to the top of the page
+Quote Post
_itoaster
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.07.2009

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


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
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 Aktualny czas: 20.08.2025 - 09:13