Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Błąd z formularzem
Forum PHP.pl > Forum > PHP
Kojak
Witam. Napisałem pewien skrypt do dodawania wyników i cały czas było dobrze, a tu nagle nie mogę dodać wyników. Ale zacznijmy od początku a więc pokażę wam kawałek skryptu:

Najpierw jest funkcja która przeprowadza dodawanie wyników. Ona się dobrze wyświetla. Globalna zmienna 'wybor' ma wartość 1 (czyli tak ma być):

  1. function PrzeprowadzKonkurs ($tab_konkurs, $wybor, $nazwa_konkursu, $hs, $nr) 
  2. {
  3.  require("./includes/lang/" . $_SESSION['lang'] . "/napisy.txt");
  4.  
  5.  $query = "SELECT skrot FROM dsj_sezony ORDER BY id DESC";
  6.  $result = mysql_query($query);
  7.  require("sezony/config_turniej_" . mysql_result($result, 0, 0) . ".php");
  8.  
  9.  if ($wybor == 3)
  10.  {
  11. // nieważne co tu jest bo zmienna 'wybor' ma wartość 1
  12.  }
  13.  else if ($wybor == 6)
  14.  {
  15.  // to samo co wyżej
  16.  }
  17.  else // INDYWIDUALNE
  18.  {
  19. $query = "SELECT id, nick FROM dsj_jumpers ORDER BY nick";
  20. $result = mysql_query($query);
  21. $liczba_osob = mysql_num_rows($result);
  22. ?>
  23. <form method="POST" action="">
  24. <table width="100%">
  25. <tr><td align="center" colspan=5><b><?echo $nazwa_konkursu?></b></td></tr>
  26. <tr>
  27. <td><b><?echo $lng['nick'];?></b></td>
  28. <td><b><?echo $lng['odleglosc'];?> 1</b></td>
  29. <td><b><?echo $lng['nota'];?> 1</b></td>
  30. <td><b><?echo $lng['odleglosc'];?> 2</b></td>
  31. <td><b><?echo $lng['nota'];?> 2</b></td>
  32. </tr>
  33. <?
  34. for ($i=0; $i<$liczba_osob; $i++)
  35. {
  36. ?>
  37. <tr>
  38. <td><input type="hidden" name="osoba[<?echo $i;?>][0]" value="<?echo mysql_result($result, $i, 0);?>"><?echo mysql_result($result, $i, 1);?></td>
  39. <td><input size=10 type="text" name="osoba[<?echo $i;?>][1]"></td>
  40. <td><input size=10 type="text" name="osoba[<?echo $i;?>][2]"></td>
  41. <td><input size=10 type="text" name="osoba[<?echo $i;?>][3]"></td>
  42. <td><input size=10 type="text" name="osoba[<?echo $i;?>][4]"></td>
  43. </tr>
  44. <?
  45. }
  46. ?>
  47. <tr>
  48. <td colspan="5">
  49. <input type="hidden" name="wybor" value="<?echo $wybor;?>">
  50. <input type="hidden" name="nr" value="<?echo $nr;?>">
  51. <input type="hidden" name="konkurs" value="<?echo $tab_konkurs;?>">
  52. <input type="hidden" name="il_osob" value="<?echo $liczba_osob;?>">
  53. <input type="hidden" name="hs" value="<?echo $hs;?>">
  54. <input type="submit" name="wprowadzono" value="<?echo $lng['gotowe'];?>!">
  55. </td>
  56. </tr>
  57. </table>
  58. </form>
  59. <?
  60. }
  61. }


A teraz główne wywołanie programu:
  1. <?php
  2. if ($_POST['wprowadzono'])
  3. {
  4. // tutaj jest dodający wyniki do bazy danych
  5. }
  6. else
  7. {
  8. if ($aktualny != 0)
  9. {
  10. $skrot = 'skrot'.$aktualny;
  11. $kon = 'kon'.$aktualny;
  12. $typ = 'typ'.$aktualny;
  13. $nr = $aktualny;
  14.  
  15. $tabela = $prefix . $skrot;
  16. $typ_konkursu = OkreslTypKonkursu($typ);
  17. $tekst = StrToUpper($lng[$kon]) . ' - ' . StrToUpper($lng[$typ]);
  18. $hs = OkreslHS($kon);
  19.  
  20. PrzeprowadzKonkurs($tabela, $typ_konkursu, $tekst, $hs, $nr);
  21. }
  22. else Blad($lng['blad'], $lng['admin_konkurs_stworzcie']);
  23. }
  24. ?>


No i właśnie.. o co mi chodzi. Otóż funkcja PrzeprowadzKonkurs jest wywoływana z dobrymi parametrami (czyli takimi jakie powinny tam być), bo sprawdzałem to. Funkcja ta tworzy formularz i po zatwierdzeniu wyników program powinien wejść w następującą instrukcję, a nie wchodzi (uprzedzam pytania... wcześniej to wszystko chodziło):

  1. <?php
  2. if ($_POST['wprowadzono'])
  3.  {
  4.  // tutaj jest dodający wyniki do bazy danych
  5.  }
  6. ?>
kossa
A masz pewność że tu nie wchodzi?

Cytat
if ($_POST['wprowadzono'])
{
// tutaj jest dodający wyniki do bazy danych
}


czy zrobiłeś sobie jakiś test, np w tym powyższym wyrażeniu jakieś echo aby sprawdzić czy tekst się pojawi?

Jeśli jednak wchodzi a nie dodaje do bazy nowych danych to sprawdź wartość pola np id jeśli takie masz w bazie i jaki ma typ bo może jego wartość maksymalną jeśli ustawiłeś jakąś małą to już przekroczyło i dlatego rekordy nie są dodawane, sprawdź to bezpośrednio w bazie danych i tam spróbuj dodać jakiś rekord

Łukasz
Kojak
Nie bardzo wiem co się dzieje... gdy wziąłem w komentarz następujący kawałek kodu:

  1. for ($i=0; $i<$liczba_osob; $i++)
  2. {
  3. ?>
  4. <tr>  
  5.  <td><input type="hidden" name="osoba[<?echo $i;?>][0]" value="<?echo mysql_result($result, $i, 0);?>"><?echo mysql_result($result, $i, 1);?></td>
  6.  <td><input size=10 type="text" name="osoba[<?echo $i;?>][1]"></td>
  7.  <td><input size=10 type="text" name="osoba[<?echo $i;?>][2]"></td>
  8.  <td><input size=10 type="text" name="osoba[<?echo $i;?>][3]"></td>
  9.  <td><input size=10 type="text" name="osoba[<?echo $i;?>][4]"></td>
  10. </tr>
  11. <?
  12. }


Czy jest możliwe że formularz jest za duży, albo jakiś inny błąd? Pomóżcie.. z góry dzięki smile.gif
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.