Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapis do bazy danych
Forum PHP.pl > Forum > Przedszkole
bronx
witam

mam taki troszke dziwny problem, może ktoś będzie wiedział czemu tak się dzieje

a więc:
mam kilkanascie pół w formularzu, no i gdy po raz wypełniłem pola wszystko zapisało się dokądnie tak jak ma być. Ale gdy po raz drugi wypełniałem (z innymi danymi) żeby dodać kolejny rekord stało sie coś dziwnego. Niektóre wartości przesłało normalnie a inne zapisało takie same jak w pierwszym rekordzie. I tak jest dalej, że niektóre wartości z pól zapisuje dobre (te które wp[rowadzam) a inne pobiera z tego pierwszego wprowadzonego rekordu.

nie mam pojęcia czym to może być spowodowane, bo jeżeli pierwszy dodało dobrze to czemu w innych pare pół dodaje dobrze a inne pobiera i wstawia z tego pierwszego :|

spotkał się ktoś może z tajką sytuacją ?
popo
erm nie widzac kodu moge tylko strzelac
sprobuj zainicjalizowac wszystkie zmienne na poczatku skryptu poza tym sprawdz czy czasem nie masz register_globals on i nie pobierasz wartosci z innego miejsca niz formularz to tyle jesli biega o moje domysly jesli dal bys wiecej info np kod php ktory wykozystujesz byloby prosciej cos sensownego odpisac
bronx
dobra, już chyba wiem dlaczego tak się dzieje, ale nie wiem jak temu zarazdzić, a więc:

pare linijek wcześniej stosuje takie kod (wyświetlam te rekordy które już zostały dodane):

  1. <?php
  2.  
  3.  
  4. $wybrana_baza = "bronx";
  5.  
  6. $wybrana_tabela = "spary_com";
  7.  
  8. $polaczenie = mysql_connect("localhost", "bronx", "haslo") or
  9. die ("Połączenie z bazą danych nie zostało nawiązane");
  10.  
  11. $tabela = mysql_select_db($wybrana_baza, $polaczenie) or die ("Wybór bazy danych nie powiódł się");
  12.  
  13. $wybieranie = "SELECT * FROM $wybrana_tabela ORDER BY id DESC LIMIT 10";
  14.  
  15. $zapytanie = mysql_query ($wybieranie, $polaczenie) or die ("Nie można wyświetlić wyników");
  16.  
  17.  
  18. while ($row = mysql_fetch_array($zapytanie))
  19.  
  20. {
  21.  
  22. $nazwa = $row['nazwa'];
  23. $id = $row['id'];
  24. $wynik = $row['wynik'];
  25. $pkt1 = $row['pkt1'];
  26. $pkt2 = $row['pkt2'];
  27. $pkt3 = $row['pkt3'];
  28. $pkt4 = $row['pkt4'];
  29.  
  30. $nasze_pkt = $pkt1+$pkt2+$pkt3+$pkt4;
  31. $ich_pkt = 48-$nasze_pkt;
  32.  
  33. echo "<a href="pokaz_spar.php?id=$id" title="Zobacz info o sparze przeciwko $nazwa"><b>coM vs. $nazwa</b></a><br> wynik: $nasze_pkt - $ich_pkt<br />";
  34.  
  35.  
  36. }
  37.  
  38. mysql_close($polaczenie);
  39.  
  40. ?>


a potem wypełanijać formularz stosuje skrypt:

  1. <?php
  2. if ( $_POST ) {
  3.  
  4. $suma_pkt = $pkt1+$pkt3+$pkt3+$pkt4;
  5.  
  6. if($suma_pkt < "24")
  7.  
  8. {
  9.  
  10. $wynik = "przegrana";
  11.  
  12. }
  13.  
  14. elseif($suma_pkt == "24")
  15.  
  16. {
  17.  
  18. $wynik = "remis";
  19.  
  20. }
  21.  
  22. else
  23.  
  24. {
  25.  
  26. $wynik = "wygrana";
  27.  
  28. }
  29.  
  30. $wybrana_baza = "bronx";
  31.  
  32. $wybrana_tabela = "spary_com";
  33.  
  34. $polaczenie = mysql_connect("localhost", "bronx", "haslo") or
  35. die ("Połączenie z bazą danych nie zostało nawiązane");
  36.  
  37. $tabela = mysql_select_db($wybrana_baza, $polaczenie) or die ("Wybór bazy danych nie powiódł się");
  38.  
  39. $wartosci = "INSERT INTO $wybrana_tabela (nazwa, przeciwnik1, przeciwnik2, przeciwnik3, przeciwnik4, przeciwnik5, my1
    , my2, my3, my4, my5, wynik, pkt1, pkt2, pkt3, pkt4, nasza_mapa, mapa_przeciwnika
    , opis, rodzaj, data, podpis) VALUES ("
    $nazwa", "$przeciwnik1", "$przeciwnik2", "$przeciwnik3", "$przeciwnik4", "$przeciwnik5", "$my1", "$my2", "$my3", "$my4", "$my5", "$wynik", "$pkt1", "$pkt2", "$pkt3", "$pkt4", "$nasza_mapa", "$mapa_przeciwnika", "$opis", "$rodzaj", "$data", "$podpis")";
  40.  
  41. $zapytanie = mysql_query($wartosci, $polaczenie) or die ("Wykonanie zapytania nie powiodło się");
  42.  
  43.  
  44. echo "Relacja ze sparu została dodana";
  45.  
  46. }
  47.  
  48. else
  49.  
  50. {
  51.  
  52. // formularz
  53.  
  54. }
  55. ?>


no i zapamiętuje dane które pobrało wcześniej :/

i jak teraz temu zarazdić ?
strife
Witam,

Nie wiem, może dlatego że niektóre pola w tabeli są integer, a ty je traktujesz jako string i odwrotnie. Nie znamy w jakich polach czego dokładnie Ci nie dodaje a co nadpisuje, myślę że jak podasz więcej dokładnych informacji, zamiast hektarów kodu to otrzymasz szybciej pomoc. Ja stawiam na typy danych i błędne skonstruowanie zapytania jak narazie.

Pozdrawiam!
bronx
już edyotwałem post, wstawiłem kody które są odpowiedzialne za to i tak jak napisałem ,zapamiętuje zmienne wyciągnięte pare linijek temu i je zapisuje zamiast tych nowych (z formularza).

i teraz jak z tego wybrnać ? czy jedynym wyjśćiem jest zmiana nazwy pól w formularzu i zapytaniu ?
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.