Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MYSQL - Usuniecie fragmentu z bazy oraz licznik znaków
dram
post 15.10.2011, 18:40:21
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


Witam.
1. Pytanie to:
Wiem że można dodawać dany ciąg znaków do danego rekordu i kolumny ale jak usunąć fragment?

Zakładamy ,że mam Tabele która ma rekordy i 2 kolumny("ID","COS")
Zawartość rekordu
1,"BLA"
2,"blabla"

Teraz chciałbym z rekordu 1-wszego z kolumny "COS" usunąć fraze "LA" czyli w kolumnie COS pozostanie wtedy "B".

PYTANIE 2:

Mam taką samą tabele jak wyżej ("ID","COS")
REKORDY:
1,"BLAA"

W rekordzie 1-wszym w kolumnie "COS" chciałbym zliczyć ilość liter A, (zwroci 2);
Tu od razu proszę o przykład bo kombinuje i nie wychodzi
Pozdrawiam.

Ten post edytował dram 15.10.2011, 23:47:01
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
Fifi209
post 15.10.2011, 18:57:17
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


REPLACE


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
dram
post 15.10.2011, 21:28:44
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


Jeszcze mam jedno pytanko poza konkursem.

Jak wygląda znak entera w MYSQL?
w niektórych językach jest to <br> bądź ^n a w HTML?
Go to the top of the page
+Quote Post
Fifi209
post 15.10.2011, 21:34:36
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Wiesz co, zależy co później robisz z danymi. Jeżeli wyświetlasz na stronie to zapisujesz <br/> jeżeli w pliku to odpowiednio dla systemu: \n \r\n \r


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
dram
post 15.10.2011, 22:02:14
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


Najpierw zapisuje dane za pomocą ^n i wygląda to tak
bb
bc
bd

A następnie funkcją replace chce zabrać bc i razem z bc usunąć linijke aby nie została pusta

//
próbuje każdą znaną mi metodą to cały czas zostaje ten wiersz pusty sad.gif

edit 2:
Pytanie z poza konkursu jakoś poszło dało rade z \n
Natomiast pozostaje jedynie:
PYTANIE 2:

Mam taką samą tabele jak wyżej ("ID","COS")
REKORDY:
1,"BLAA"

W rekordzie 1-wszym w kolumnie "COS" chciałbym zliczyć ilość liter A, (zwroci 2);

I jeszcze jedno..
Chciałbym przepisać dane z tabeli do tabeli + dodać pare nowych danych NP.

1 tabela :
ID,COS
2 tabela:
ID,COS,BLA

teraz chciałbym przepisać dane z tabeli 1 do tabeli 2 wpisując w kolumne "BLA" tekst "123"

Ten post edytował dram 15.10.2011, 23:36:21
Go to the top of the page
+Quote Post
Fifi209
post 16.10.2011, 12:16:40
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


insert + select


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
croc
post 16.10.2011, 12:26:50
Post #7





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Cytat(Fifi209 @ 15.10.2011, 22:34:36 ) *
Jeżeli wyświetlasz na stronie to zapisujesz <br/>

O co chodzi z <br/>? HTML ma <br>, a XHTML ma <br /> - skąd się wziął pomysł na <br/>? Wielu tak zapisuje, ale czy to jest prawidłowo zapisany?
Go to the top of the page
+Quote Post
dram
post 16.10.2011, 20:41:47
Post #8





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


insert + select
prosiłbym o przykład takiego zapytania jakie chciałem uzyskać post wcześniej. Próbuje próbuje i nic nie wychodzi sad.gif

Wykombinowałem takie zapytanie:
INSERT INTO `gangi_arch` VALUES(NULL,nazwa_gangu,poziom_gangu,doswiadczenie_gangu,nazwa_graczy,nazwa_ocze
kujacych_graczy,ilosc_zabojstw,status_oczekujacy,data_utworzenia,'DJ.Dr@M | ToMeK-rozwiazanie','16-10-2011-21-39-7') SELECT * from `gangi` WHERE `nazwa_gangu` = 'Dram TEAM'

Nie śmiga:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * from `gangi` WHERE `nazwa_gangu` = 'Dram TEAM'' at line 1

Ten post edytował dram 16.10.2011, 20:42:06
Go to the top of the page
+Quote Post
croc
post 16.10.2011, 21:12:24
Post #9





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Bo jest zepsute.

  1. INSERT INTO `gangi_arch` (pole1, pole2, pole3...) SELECT pole1, pole2, pole3 FROM `gangi` WHERE `nazwa_gangu` = 'Dram TEAM'


Usuń VALUES i masz coś z tymi polami nie tak. I unikaj raczej * w INSERT SELECT.
Go to the top of the page
+Quote Post
dram
post 16.10.2011, 21:40:10
Post #10





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


INSERT INTO `gangi_arch` (NULL,nazwa_gangu,poziom_gangu,doswiadczenie_gangu,nazwa_graczy,nazwa_oczekujacy
ch_graczy,ilosc_zabojstw,status_oczekujacy,data_utworzenia,'DJ.Dr@M | ToMeK-rozwiazanie','16-10-2011-21-39-7') SELECT nazwa_gangu,poziom_gangu,doswiadczenie_gangu,nazwa_graczy,nazwa_oczekujacych_gra
czy,ilosc_zabojstw,status_oczekujacy,data_utworzenia from `gangi` WHERE `nazwa_gangu` = 'Dram TEAM'

Niestety nadal nic:
Tutaj tabele podaje dokładniej
"gangi"


"gangi_arch"




Nazwy pól niczym się nie różnią, nie mam pojecia co jest grane ,a nie chce robić to w bezmyślny sposób tj. najpierw wczytywać a potem znów kolejne zapytanie z wysyłaniem danych.

Ten post edytował dram 16.10.2011, 21:40:52
Go to the top of the page
+Quote Post
croc
post 17.10.2011, 14:13:30
Post #11





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Cytat(dram @ 16.10.2011, 22:40:10 ) *
Nazwy pól niczym się nie różnią, nie mam pojecia co jest grane

Ja widzę coś innego. Zobacz jakie bzdury masz wypisane w nazwach pól w INSERT.
Go to the top of the page
+Quote Post
dram
post 17.10.2011, 15:05:32
Post #12





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


Racja była literówka jedna nie zauważyłem.. Jednak nie zmienia to faktu że występuje błąd w 2 linii w zapytaniu:
Kod
INSERT INTO `gangi_arch`
(NULL, // 2 linia
nazwa_gangu,
poziom_gangu,
doswiadczenie_gangu,
nazwa_graczy,
nazwy_oczekujacych_graczy,
ilosc_zabojstw,
status_oczekujacy,
data_utworzenia,
'DJ.Dr@M | ToMeK-rozwiazanie',
'16-10-2011-21-39-7')
SELECT nazwa_gangu,
poziom_gangu,
doswiadczenie_gangu,
nazwa_graczy,
nazwy_oczekujacych_graczy,
ilosc_zabojstw,
status_oczekujacy,
data_utworzenia
FROM `gangi` WHERE `nazwa_gangu` = 'Dram TEAM'



Przecież nie jestem w stanie przypisywać określonego ID musi tu byc null aby auto increment zrobił swoje
Go to the top of the page
+Quote Post
croc
post 17.10.2011, 21:42:18
Post #13





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Nie, nie i jeszcze raz nie, kolego. Pisząc bzdury miałem na myśli NULL i wartości tekstowe. Nie możesz wstawić wartości do wartości smile.gif Zaznaczę Ci na czerwono to co masz źle. Aby wartość auto increment zrobiła swoje, po prostu ją pomijasz. Żeby natomiast wstawić konkretną wartość przy INSERT SELECT, wrzuć ją do SELECT. Czyli np. SELECT pole1, pole2, 'wartość', pole3 itd.

INSERT INTO `gangi_arch`
(NULL, // 2 linia
nazwa_gangu,
poziom_gangu,
doswiadczenie_gangu,
nazwa_graczy,
nazwy_oczekujacych_graczy,
ilosc_zabojstw,
status_oczekujacy,
data_utworzenia,
'DJ.Dr@M | ToMeK-rozwiazanie',
'16-10-2011-21-39-7')
SELECT nazwa_gangu,
poziom_gangu,
doswiadczenie_gangu,
nazwa_graczy,
nazwy_oczekujacych_graczy,
ilosc_zabojstw,
status_oczekujacy,
data_utworzenia
FROM `gangi` WHERE `nazwa_gangu` = 'Dram TEAM'
Go to the top of the page
+Quote Post
dram
post 17.10.2011, 23:18:40
Post #14





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


DZięki stary jestem na prawde amatorem ;P

Wykombinowałem coś takiego:
  1. INSERT INTO `gangi_arch`
  2. (nazwa_gangu,
  3. poziom_gangu,
  4. doswiadczenie_gangu,
  5. nazwa_graczy,
  6. nazwa_oczekujacych_graczy,
  7. ilosc_zabojstw,
  8. status_oczekujacy,
  9. data_utworzenia
  10. )
  11. SELECT
  12. nazwa_gangu,
  13. poziom_gangu,
  14. doswiadczenie_gangu,
  15. nazwa_graczy,
  16. nazwa_oczekujacych_graczy,
  17. ilosc_zabojstw,
  18. status_oczekujacy,
  19. data_utworzenia,
  20. 'DJ.Dr@M | ToMeK-rozwiazanie',
  21. '16-10-2011-21-39-7'
  22. FROM `gangi` WHERE `nazwa_gangu` = 'Dram TEAM'

Oczywiście to nie może działać z przyczyny
1. Nie zgadza się ilość kolumn w insercie

To teraz jak tą wartość przepisać do insertu?

Pozdrawiam

/// EDIT
Haha! niesamowite.. Zrobiłem

Kod
INSERT INTO `gangi_arch`
(nazwa_gangu,
poziom_gangu,
doswiadczenie_gangu,
nazwa_graczy,
nazwa_oczekujacych_graczy,
ilosc_zabojstw,
status_oczekujacy,
data_utworzenia,
odrzucajacy,
data_usuniecia
)
SELECT
nazwa_gangu,
poziom_gangu,
doswiadczenie_gangu,
nazwa_graczy,
nazwa_oczekujacych_graczy,
ilosc_zabojstw,
status_oczekujacy,
data_utworzenia,
'DJ.Dr@M | ToMeK-rozwiazanie',
'16-10-2011-21-39-7'
FROM `gangi` WHERE `nazwa_gangu` = 'Dram TEAM'


Czy to tak powinno wyglądać?

Ten post edytował dram 17.10.2011, 23:21:15
Go to the top of the page
+Quote Post
croc
post 17.10.2011, 23:45:49
Post #15





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Dokładnie tak, brawo Lkingsmiley.png

EDIT
Tylko data jakoś dziwnie sformułowana tongue.gif Jaki jest format pola data_usuniecia? Bo jeśli datetime, to pamiętaj o formacie RRRR-MM-DD GG:MM:SS.

Ten post edytował croc 17.10.2011, 23:46:56
Go to the top of the page
+Quote Post
dram
post 18.10.2011, 06:16:05
Post #16





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


Cytat(croc @ 18.10.2011, 00:45:49 ) *
Dokładnie tak, brawo Lkingsmiley.png

EDIT
Tylko data jakoś dziwnie sformułowana tongue.gif Jaki jest format pola data_usuniecia? Bo jeśli datetime, to pamiętaj o formacie RRRR-MM-DD GG:MM:SS.


Obydwa pola mają takąsamą formułe dzien,miesiac,rok,godzina,minuta,sekunda

Wszystko odzielone myślnikami
Go to the top of the page
+Quote Post
croc
post 18.10.2011, 10:53:33
Post #17





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Lepiej skorzystaj z pola datetime - nie ma sensu przechowywać daty jako tekst z co najmniej dwóch powodów:
  1. Twój string zajmuje od 14 do 19 bajtów (w zależności od tego czy dana wartość jest jedno- czy dwucyfrowa), a pole datetime zajmuje 8 bajtów.
  2. Datetime umożliwia łatwe sortowanie wg dat. z Twoim formatem tego nie wykonasz.
Go to the top of the page
+Quote Post
dram
post 18.10.2011, 12:27:41
Post #18





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


Wybacz ,że tak piszę, ale w jaki sposób aktualnie mógłbym przekonwertować te daty na format datetime oraz jak na przyszłość wykonywać zapytania tak aby były zapisane w tym formacie?
Go to the top of the page
+Quote Post
croc
post 18.10.2011, 19:34:16
Post #19





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Polem datetime posługujesz się tak jak zwykłym stringiem. Inny jest sposób zapisu daty - myślę, że sobie poradzisz.
Go to the top of the page
+Quote Post
dram
post 19.10.2011, 20:49:53
Post #20





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


Chyba mi się udało korzystając z waszej(jak narazie twojej) pomocy zadam jeszcze jedno pytanie:

Zdarza się czasami że do bazy dodam nową kolumne i niestety ale w tym przypadku:
  1. while($ilosc_rekordow = mysql_fetch_row($zapytanie_1_w)){

$ilosc_rekordow[ktory] - bedzie wskazywać nieprawidłowo.

Przewertowalem dokumentacje w poszukiwaniu czegoś al'a FIELD to num jednak nie znalazłem tj. chodzi mi aby po nazwie kolumny zwrócić jej numer aby można było robić operacje kodem wyżej.


Pozdrawiam
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 31.07.2025 - 10:53