Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zapis do bazy danych, dziwny problem :| HELP
bronx
post
Post #1





Grupa: Zarejestrowani
Postów: 333
Pomógł: 0
Dołączył: 4.03.2004

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


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ą ?
Go to the top of the page
+Quote Post
popo
post
Post #2





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 15.07.2005

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


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
Go to the top of the page
+Quote Post
bronx
post
Post #3





Grupa: Zarejestrowani
Postów: 333
Pomógł: 0
Dołączył: 4.03.2004

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


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

Ten post edytował bronx 20.08.2005, 18:03:20
Go to the top of the page
+Quote Post
strife
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


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!


--------------------
Go to the top of the page
+Quote Post
bronx
post
Post #5





Grupa: Zarejestrowani
Postów: 333
Pomógł: 0
Dołączył: 4.03.2004

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


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 ?
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: 21.08.2025 - 12:47