Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL] Problem dotyczący UPDATE ... SET
slupek
post 1.07.2008, 15:56:21
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 27.05.2007
Skąd: EPGD

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


Mam tabelę z kolumną nagroda2. Co miesiąc przyznaję użytkownikom nagrody (złote, srebrne i brązowe, każdej odpowiada pewien numer). Tak więc po kilku miesiącach zawartość komórki nagroda2 może wynosić np. 2,4,5,15 . Aktualizuję jej zawartość za pomocą formularza i checkboxów takim oto kodem:

  1. <?php
  2. $query = "UPDATE pilots SET nagroda2='$nagroda' WHERE pilot_id='$pilot_id' ";
  3. $result = mysql_query($query);
  4. if ($result) 
  5. echo ("Dokonano zmian w bazie pilotów.");
  6. ?>


Mój problem polega na tym, co w pewnej mierze jak się domyślam wynika ze specyfiki funkcji UPDATE, że, aktualizując tę komórkę, kasuje mi istniejące wartości. Jedynym sposobem jest zaznaczanie w formularzu wszystkich poprzednich nagród. W styczniu i lutym nie było problemu - ale jest lipiec. A co będzie w październiku? Czy jest jakiś sposób by nie zmieniając struktury tabeli "dopisywać" tylko kolejne wartości do już istniejących w tej samej komórce np.: 21, 34, 55 ?

Dzięki za info z góry.

Ten post edytował slupek 1.07.2008, 15:57:10
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
artega
post 1.07.2008, 16:26:55
Post #2





Grupa: Zarejestrowani
Postów: 174
Pomógł: 42
Dołączył: 22.07.2007
Skąd: /dev/random

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


Cytat
zy jest jakiś sposób by nie zmieniając struktury tabeli "dopisywać" tylko kolejne wartości do już istniejących w tej samej komórce np.: 21, 34, 55 ?

Chwile pomyśleć i użyć np. funkcji CONCAT w zapytaniu
  1. <?php
  2. $query = "UPDATE pilots SET nagroda2=CONCAT(nagroda2, ',$nagroda') WHERE pilot_id='$pilot_id' ";
  3. $result = mysql_query($query);
  4. if ($result) 
  5. echo ("Dokonano zmian w bazie pilotów.");
  6. ?>

lub odczytać aktualną wartość tego pola, rozbić przez funkcje explode i zaznaczyć checkbox'y atrybutem checked.
Go to the top of the page
+Quote Post
slupek
post 1.07.2008, 21:27:29
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 27.05.2007
Skąd: EPGD

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


Cytat(artega @ 1.07.2008, 17:26:55 ) *
Chwile pomyśleć


Jeśli się ma braki w wiedzy, to nie ma o czym myśleć. Dzięki za pomoc, działa wyśmienicie z CONCAT.
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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 16:38