![]() |
![]() ![]() |
![]() |
-Kubula- |
![]()
Post
#1
|
Goście ![]() |
Witam,
mam problem z dodawaniem liczb z tabel z bazy danych. Mam dwie tabele w bazie danych o zmiennych $row[1] i $row[2] Kod dodawania wygląda następująco
Jesli $row[1] to, załóżmy, liczba 10 a $row[2] liczba 20 to wynik jaki otrzymam to 30 - czyli wszystko ok. Ale jeśli w $row[1] (albo [2]) będzie ciąg liczb np.: (10, 11, 12) albo (10+11+12) to brana jest pod uwagę tylko pierwsza liczba (10). Jak powinien wyglądać kod, kiedy w zmiennej jest ciąg liczb, a ja chce uzyskać wynik dodawania ich wszystkich?
Powód edycji: dodalem tag (cysiaczek)
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Zaproponuję jedno z wielu rozwiązań, które zakłada że separator jest znany i stały:
I dodam, że na pierwszy rzut oka wygląda to na nieprzemyślaną bazę danych. Oczywiście mogę się mylić. |
|
|
-Kubula- |
![]()
Post
#3
|
Goście ![]() |
Wielkie dzięki za odpowiedź, faktycznie działa. Co do nazw tabel, podałem te nazwy dla przykładu, żeby było łatwiej zrozumieć o co mi chodzi
![]() Ale mam jeszcze jedno pytanie, jak zrobić, żeby wynik tej sumy zaraz po przeliczeniu, automatycznie został zapisany w odpowiednią tabelę bazy danych mysql? Np.: żeby wynik dodawania zapisał się do tabeli TABELA_X w polu POLE_X . |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nieprzemyślana baza nie z powodu nazw tabel ale z powodu tego, że dane, które ostatecznie okazują się być liczbowe bo przeprowadzasz na nich operacje arytmetyczne, Ty przechowujesz w postaci stringa.
Nawet nie próbuję wymyślić skąd w ogóle się biorą te dane w takiej postaci i po co je tak przechowujesz skoro i tak je sumujesz. A co do drugiej kwestii
|
|
|
-petylyl- |
![]()
Post
#5
|
Goście ![]() |
Jeśli chodzi o kod formularza to jest on na 100% poprawny, ponieważ wcześniej zanim zacząłem kombinować z funkcją emnty to wyświetlało dane z formularza (także adres). Włączyłem obsługę błędów i pokazuje mi się coś takiego:
Kod Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 Fatal error: Unknown: Failed opening required '/srv/www/htdocs/przetworzzamowienie.php' (include_path='.:/usr/share/php5:/usr/share/php5/PEAR') in Unknown on line 0 Hm... |
|
|
-Gość- |
![]()
Post
#6
|
Goście ![]() |
Jeśli chodzi o kod formularza to jest on na 100% poprawny, ponieważ wcześniej zanim zacząłem kombinować z funkcją emnty to wyświetlało dane z formularza (także adres). Włączyłem obsługę błędów i pokazuje mi się coś takiego: Kod Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 Fatal error: Unknown: Failed opening required '/srv/www/htdocs/przetworzzamowienie.php' (include_path='.:/usr/share/php5:/usr/share/php5/PEAR') in Unknown on line 0 Hm... Prosze admina o usunięcie tego i poprzedniego postu w tym temacie. Ta wiadomość miała byc odpowiedzią do innego tematu (tego założonego przeze mnie - za pomyłkę przepraszam). |
|
|
-Kubula- |
![]()
Post
#7
|
Goście ![]() |
Otóż potrzebne mi to jest do gry którą tworzę. Uczestnik zdobywa punkty w różnych kategoriach a ja, żeby tego nie liczyć potrzebuję skryptu, który to zrobi za mnie.
Np.: punktów +XX za coś tam punktów +XX za coś tam itd. suma punktów XX |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Ale dlaczego twój algorytm wygląda tak:
1. z kolejnych liczb robisz string np. "2+3+4" 2. umieszczasz taki string w tablicy 3. następnie wyciągasz 4. rozbijasz na fragmenty 5. sumujesz 6. na koniec zapisujesz ponownie do bazy sumę Zamiast 1. kolejną liczbę dodaj do liczby, która już jest w tabeli Albo: 1. dodaj do siebie wszystkie liczby 2. zapisz sumę w bazie Dobra, nie wnikam bo nie wiem jak wygląda całość ale czy Tobie się nie wydaje dziwne takie traktowanie danych? Ten post edytował Foxx 10.11.2007, 09:08:06 |
|
|
-Kubula- |
![]()
Post
#9
|
Goście ![]() |
Mam 3 pola do wpisywania punktów w panelu administracyjnym, dla każdego gracza osobno.
1. Pole A [ ] 2. Pole B [ ] 3. Pole C [ ] i na końcu Suma punktów [$suma] I teraz załóżmy mamy gracza X, wchodzę w jego panel i widzę 1. Pole A [+5, +5, +10 ] 2. Pole B [+5, +5, +5 ] 3. Pole C [+5 ] Suma punktów: 40 Oczywiście on w swoim panelu widzi to samo, jednak w formie tekstowej, bez możliwości edytowania. I teraz, chcąc dopisać mu punkt klikam w panel, wybieram sobie pole i wpisuję kolejne +5, co za tym idzie automatycznie suma wyniesie 45. Mam nadzieję, że to wyjaśniłem ![]() Na pytanie, czy to dobry sposób, odpowiem, nie wiem. Taki wymyśliłem i tylko taki potrafiłem zrealizować (przy Twojej pomocy). Z pewnością dałoby to się zrobić lepiej, jednak na tym kończą się moje umiejętności ![]() Pozdrawiam |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.05.2025 - 07:40 |