![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Czy mogę updatować jakiś rekord w bazie w taki sposób, żeby dodawać do tego co jest jakąś wartość a nie ją nadpisywać ?
Mam: $sql = "UPDATE `tags` SET tekst=$tekst WHERE id='".$id_dwr."'"; Jeśli mam już ustawiony jakiś 'tekst' to to mi go nadpisze nową wartością a chciałbym aby update zostawił tą wartość i dopisał nową. Czy jedyny sposób to taki, że muszę wcześniej pobrać to wartość i ją skleić z tą nową i wtedy dopiero updatować, nie ma uproszczenia ? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) ![]() ![]() |
Czy mogę updatować jakiś rekord w bazie w taki sposób, żeby dodawać do tego co jest jakąś wartość a nie ją nadpisywać ? Mam: $sql = "UPDATE `tags` SET tekst=$tekst WHERE id='".$id_dwr."'"; Jeśli mam już ustawiony jakiś 'tekst' to to mi go nadpisze nową wartością a chciałbym aby update zostawił tą wartość i dopisał nową. Czy jedyny sposób to taki, że muszę wcześniej pobrać to wartość i ją skleić z tą nową i wtedy dopiero updatować, nie ma uproszczenia ? Tak powinno dzialac:
W przypadku cyfr mozesz tak: `kolumna`=`kolumna`-5 `kolumna`=`kolumna`+5 itd... Ten post edytował KsaR 30.09.2015, 09:53:35 |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
CONCAT - patrz manual mysql
@KsaR w mysql tekstow sie nie dodaje... teksty sie łączy... poraz kolejny mowie: CONCAT |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat , i poprawilem dopiero co przeciez.. Chwile przed twoim postem. No tak, piszac mojego posta, mialem co sekunde sprawdzac czy przypadkiem nie poprawiles juz.... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za info - działa, ale chciałbym dodać między wartościami przecinek bo mi je zlepia.
Da się coś takiego uwzględnić w CONCAT ? (mogę to zrobić obejściem, ale pytam czy jest może w tym concat taka możliwość - chociaż nie widzę w manualu nic na ten temat). Ten post edytował kuna11 30.09.2015, 10:10:25 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jakbyś zajrzał do Manuala tak jak Ci napisano to byś wieedział że się da:
https://dev.mysql.com/doc/refman/5.0/en/str...function_concat |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Tak jak pisałem, patrzyłem ale nie zauważyłem (IMG:style_emoticons/default/smile.gif)
Dzięki za pomoc! Tylko nie wiem, po co to dodaje przecinek na początku... Właśnie tego chciałem uniknąć. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Na jakim początku? Kod...
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Najpierw podaje separator jaki ma być, potem stringi, wg manuala.
echo $sql = "UPDATE `tags` SET `id_utworu`=CONCAT_WS(',',`id_utworu`,'$id') WHERE id='".$id_danego_utworu."'"; No i przed 1 wpisem też jest przecinek. Nie jest to mega problem, ale lepiej jakby separator separował coś od czegoś a nie nic od czegoś, więc na początku nie powinno go być. Przykład: ,1,2,3,4,5 A powinno być: 1,2,3,4,5 Ten post edytował kuna11 30.09.2015, 10:39:03 |
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
zacznijmy od tego, ze masz zle zaprojektowaną strukture bazy. Tabela tags nie powinna zawierac info do jakich utworow jest przypisany tag.
Powinna powstac dodatkowa tabela tag_utwor z polami: tag_id oraz utwor_id |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Wiem,
Tak to też na początku zaprojektowałem, ale chciałem na szybko walnąć w ten sposób, bo słabo koduje, a przy drugiej tabeli napotkałem dodatkowe problemy, więc na szybko zrobiłem w ten sposób... |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tylko ze w ten sposob, bardzo szybko natrafisz na jeszcze wiecej problemow (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
:] W sumie potrzebuję jedynie wyświetlać wszystkie 'utwory' o danym tagu, wiec może wystarczy...
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Najpierw podaje separator jaki ma być, potem stringi, wg manuala. echo $sql = "UPDATE `tags` SET `id_utworu`=CONCAT_WS(',',`id_utworu`,'$id') WHERE id='".$id_danego_utworu."'"; No i przed 1 wpisem też jest przecinek. Nie jest to mega problem, ale lepiej jakby separator separował coś od czegoś a nie nic od czegoś, więc na początku nie powinno go być. Przykład: ,1,2,3,4,5 A powinno być: 1,2,3,4,5 A czy przypadkiem nie jest taż że , dodaje Ci się jak dodajesz pierwszy tag ? Tj pole najpierw jest puste...
Ten post edytował Pyton_000 30.09.2015, 10:59:40 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 0 Dołączył: 15.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie, tak (IMG:style_emoticons/default/smile.gif) Dzięki wielkie!
Już ideałem byłoby jakby CONCAT w przypadku dopisywanej wartości sprawdzał, czy czasem już nie występuje i jej nie duplikował. Zakładam, że nie ma takiej opcji, ale jeszcze postudiuję manual... |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
nie, nie ma. I tu pojawia się @nospor:
Cytat Tylko ze w ten sposob, bardzo szybko natrafisz na jeszcze wiecej problemow
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli kolumna będzie miała UNIQUE sypnie ci błędem na powieloną wartość.
|
|
|
![]()
Post
#19
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@viking przeczytaj caly watek a nie piszesz glupoty (IMG:style_emoticons/default/wink.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 05:45 |