Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: podbranie dwóch zdań z pola TEXT
Forum PHP.pl > Forum > Bazy danych
shpyo
Witam, czy wie ktoś czy da się pobrać z tabeli 2 zdania?

Mam w tabeli pole TRESC (text) i chcę pobrać z niego dwa zdania. Da się tak zrobić?
Do tego momentu używałem SUBSTRING(), ale nie zawsze da się "trafić" w odpowiedni "moment" aby nie ucieło wyrazu.

pozdr i za pomoc dziękuję.
shpyo
crash
I znów korzystając tylko z manuala MySQL:
  1. SELECT concat( substring_index( tresc, '.', 2 ), '.' )
  2. FROM tabela;

Leń biggrin.gif
shpyo
dzięki bardzo za pomoc biggrin.gif
Nie umiem za bardzo korzystać z manuala na mysql.com :/
TomASS
Nie tylko Ty tongue.gif Ja na szczęście znalazłem to w manualu smile.gif Ale widze, że już ktoś Ci odpowiedział smile.gif Pozdrawiam
php programmer
$tablica_ze_zdaniami = explode('.',$wypracowanie)
Sh4dow
Cytat(php programmer @ 2005-09-02 10:08:14)
$tablica_ze_zdaniami = explode('.',$wypracowanie)

Ke ? blink.gif Tak troche to na SQL'a nie wyglada, zrszta po co pobierac wypracowanie, ktore moze zajmowac okolo 10 tys zdan i obciazac server ? Wyciagasz tylko tyle ile ci potrzeba. łatwo miło i przyjemnie
php programmer
Cytat(Sh4dow @ 2005-09-02 08:31:24)
po co pobierac wypracowanie, ktore moze zajmowac okolo 10 tys zdan i obciazac server ? Wyciagasz tylko tyle ile ci potrzeba. łatwo miło i przyjemnie

dane są przesyłane do klienta dopiero po wykonaniu instrukcji echo.
Tak więc po załadowaniu całej tablicy wcale nie idzie przez łącza 10 tysięcy zdań.
(program wykonuje sie na serwerze i tam pamiętane są wszystkie zmienne)
A w tym przypadku jedynie 2 zdania idą przez sieć do klienta.

echo $tablica[0]
echo $tablica[1]

zresztą jest chyba drugi argument funkcji explode
(ale nie wiem może sie myle, moze nie ma tego drugiego argumentu)
który określa maksymalną ilość elementów tablicy.
NuLL
@php programmer - a wiesz że dane wędrują między php a samym serwerem SQL-a. Nie pisz więc takich bzdur jak u góry bo wprowadzasz ludzi w błąd.
crash
php programmer: no się mylisz... Nie chodzi o przesłanie danych do klienta, ale z serwera SQL do parsera php. Nawet jeśli serwer SQL jest już na tym samym komputerze co serwer WWW to i tak obciążona zostanie bardzo pamięć przy pobraniu tak dużych ilości danych. Podsumowując: Jeśli możesz coś zrobić na poziomie bazy - zrób to.
nospor
@php programmer rajciu, ostatnio twoje wypowiedzi są ciut ... nie trafione. najpierw walidacja js a teraz to.

To fakt, do klienta nie pojdzie te 10tys zdan. Ale serwer musi je przetworzyc, włozyc do pamieci. A poco ma to robic, skoro bazka moze mu zwrócic tylko to co naprawde potrzebuje?
Zastanów się troche zanim cos napiszesz.
php programmer
tak, ale moja odpwiedź była bardziej ogólna, nie koniecznie dla db
nie zawsze przeciez przetwarzamy dane z bazy
i nie zawsze mam do czynienia z tak dużą ilością informacji jak 10 tyś zdań.
SongoQ
Cytat
tak, ale moja odpwiedź była bardziej ogólna, nie koniecznie dla db
nie zawsze przeciez przetwarzamy dane z bazy
i nie zawsze mam do czynienia z tak dużą ilością informacji jak 10 tyś zdań.

Zasada jest prosta, wykorzystujesz baze jak najbardziej sie tylko da, a co sie nie da wtedy wyciagasz rekordy. Prosty przyklad firma ORACLE wprowadzajac PL/SQL miala cos na celu.
php programmer
Cytat(nospor @ 2005-09-02 08:59:32)
To fakt, do klienta nie pojdzie te 10tys zdan. Ale serwer musi je przetworzyc, włozyc do pamieci. A poco ma to robic, 

Ale epoka, kiedy programista musi się liczyć z kazdym bajtem
mineła już chyba 10 lat temu. Co za różnica czy procek wykona zadanie w
0.0001 czy 0.01 sek. - dla mnie osobiście żadna

Jesli na serwer odwoluje sie jeden klient na dzien, to i dla mnie zadna. Ale gdy tych klientó przybywa to jednak robi to różnicę.
Pisałes w innym drazliwym dla ciebie temacie że masz duże doświadczenie. Interesuje mnie jakie. inni też się chętnie by dowiedzieli
---
nospor


OK. Programować zacząłem 7 lat temu (7 lat to chyba nie tak mało) dosć intensywnie się tego uczyłem, bo wydaje mi się że wiek 19 lat (wtedy tyle miałem) to dość późno. Głównie był Pascal ( Uczyłem się na tej żółtej książce Marciniaka
),
potem na studiach doczedł jeszcze ANSI C
i ogólnie teoria algorytmów. Troche też Delphi.
Śladowe ilość asemblera, javy, xml, uml, schema,

od roku praceje jako progamista php,
co oczywiście wymaga też css, js, html
jako baz używam mysql i postgres

Nikt tego nie neguje ze jestes takim a nie innym programista, tylko pewne sprawy radze wczesniej przemyslec. (Motto kubusia puchatka)
-- SongoQ


----edit----
To ja też dołoże coś od siebie.
Wybacz jeżeli Cię uraże ale nie czas się liczy a wiedza i umiejętności. A to co wypisujesz na forum świadczy źle o Twojej wiedzy.
Proponuję skończyć tego OT'a.
~mike_mech


WYBACZAM CI !
SongoQ
@php programmer Widze za malo czytasz, poczytaj o bazach danych temat dostrajania zapytan, elastycznosc aplikacji, itd. to zobaczysz co jest wazne a co nie.

Prosty przyklad odnosnie tego co podales zapytanie na bazie trwa 0,01 n razy odwolan + dotego przeslanie kilku MB tekstu na serwerach oddalonych od siebie jest powaznym problemem, a jesli placisz za za dane przeslane (dziennie bedzie kilkadziesiat GB). Ale wedlug Ciebie to nie problem. W twojej logice widze ze nie korzystasz z baz danych lub wykorzystujesz je do skladowania danych (myslenie podobne do Pan ktore ucza sie obslugi excela, "super program bo mozna tabelki kolorowe zrobic").

Takie jest moje zdanie o Twojej wypowiedzi.
php programmer
Cytat(SongoQ @ 2005-09-02 11:40:56)
+ dotego przeslanie kilku MB tekstu na serwerach oddalonych od siebie jest powaznym problemem, a jesli placisz za za dane przeslane (dziennie bedzie kilkadziesiat GB).

ale ja mówie o operacjach lokalnych (procek i pamięć)
a nie o przesyłąniu takich informacji przez sieć.
Przeczytaj kilka postów wcześniej o co biega zanim wpierw skrytykujesz
crash
Od kilkunastu odpowiedzi ten temat zapełnia się offtopic'em. Proponuję go zamknąć bo o wydajności było już nie raz. php programmer: a Ty dalej swoje, każdy nawet minimalnie zaawansowany programista powie Ci, że jedną z najistotniejszych cech aplikacji jest wydajność. Skoro można coś zrobić na poziomie bazy (czy innego medium) i zaoszczędzić użycia nawet kilku kilobajtów pamięci to warto to zrobić.
SongoQ
Cytat
ale ja mówie o operacjach lokalnych (procek i pamięć)
a nie o przesyłąniu takich informacji przez sieć.


Ok, moze troche inaczej.

1. Wyciagniecie zaluzmy 10MB danych przez sewer baz danych
2. Przeslanie to do php
3. Zastosowaine algorytmow gdzie wyciagasz jak 2 zdania.

W tym jak sie dobrze orientujesz po dlugoletnim stazu programisty, wykorzystanie pamieci, przeyslanie danych itd.

Teraz wersja z baza danych

1. Zapytanie gdzie wewnetrzne te wszystkie operacje sa robione, jesli wyciagasz cos gdzie warunkem where jest 1 rekord, masz caly wiersz jako cache wtedy operacja na stringu i zwracasz gotowy rekor.

No ale jak sie upierasz dalej ze 1 sposob jest lepszy to nie bede sie przekonywal. Wkoncu jestes programista z doswiadczeniem.
NuLL
Starczy tego OT.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.