Czy da się takie coś zrobić za pomocą funkcji str_freplace

0

Mam taki pytanie mam substancje w bazie i mam takie input ((!piwo warka=200)=count=2) and (thiocodin=450) 1
I teraz jak to interpretować to tak, żeby wyszukał substancje thiocodin gdzie dawka dobowa była 450 1 oznacza to to, że te substancje był← brane tego samego dnia i ten ! oznacza że tej substacji nie było razem z thiocodinem no i = 450 oznacza dawkę a count =2 oznacza, że ta sunstancja była brana 2 razy w ciągu dnia i teraz wiem jak to zrobić w sql mam taką nadzieje że wiem natomiast nie wiem jak ten tekst rozbić na dane za pomocą funkcji str_replace.

0

Czyli jak bym to tak myślał
((!piwo warka=200)=count=2) and (thiocodin=450) 1
Najpierw dzielimy dany ciąg na and
podzielić ciąg znaków według ( i ) tylko funkcja explode dzieli według jednego schematu
i teraz jak jest podzielony to dzielimy na = i sprawdzamy czy przez = dany produkt nie jest w bazie w tym prrzypadku piwo warka i thiocodin natomiast po = sprawdzamy dawkę potem sprawdzamy czy ciąg za dawką i ) nie nazywa się count jeżeli tak to pobieramy wartość i jeszcze sprawdzamy czy znak przed substancją nie jest ! i na końcu sprawdzamy liczbę w tym przypadku 1 czy to jest dobre ?

0

Serio chcesz bawić się w parsowanie stringów i ich obsługę? zmiana jednego znaku i wszystko szlag trafi.. zmień koncepcję. Źle to masz zaprojektowane

0

To jak byś ty to zrobił

1

Baza danych, ONP, http://goldparser.org

0
Marcin.Miga napisał(a):

Baza danych, ONP, http://goldparser.org

To jest algorytm jak to zrobić ?

0
pol90 napisał(a):
Marcin.Miga napisał(a):

Baza danych, ONP, http://goldparser.org

To jest algorytm jak to zrobić ?

To jest parser..

na samej bazie da sie to tak zaprojektować by nie trzeba było nic parsować

0

Ale trzeba przebudowywać strkturę bazy ?

0

no tak..

0

No to wtedy to rozwiązanie nie jest dobre ja już mam dane w tej bazie to moje było chyba lepsze.

1

Musisz zaprojektować odpowiednią strukturę bazy, która rozłoży tego typu rzeczy na poszczegolne relacje, lub przynajmniej kolumny.

Czyli nie robisz zapisu w stylu: thiocodin=450

Tylko masz osobną kolumnę na thiocodin i osobną na liczbę 450.

Jeżeli te wartości/wpisy są dynamiczne i nie mają ustalonej sztywnej struktury, musisz zaprojektować kilka relacji połączonych ze sobą kluczem obcym.

0

Ta baza ma taką konstrukcję, że jest tabela grupy, substancje i produkty
Tabela grupy
id
nazwa
Tabela produkty'
id
nazwa
color
ile_procent
cena
za_ile
Tabela substancje
nazwa
rownowaznik
color
tabela przekierowanie_grup
id
id_grupy
id_substancji
Tabela przekierowanie_substancji
id
id_substancji
id_produktu

0

Może komuś się będzie chciało, ale ja nie zrobię za Ciebie optymalnej/znormalizowanej struktury bazy danych.

Wbij do google i poczytaj:

"normalizacja bazy danych"
"optymalizacja struktury bazy danych"

Generalnie to co masz zapakowane w ciągu znaków "((!piwo warka=200)=count=2) and (thiocodin=450) 1" powinieneś przetłumaczyć na odpowiednie kolumny i relacje, tak zebyś nie musiał się potem bawić w wyciąganie wszystkich rekordów i filtrowanie ich funkcjami PHP. Zorganizowanie tego w taki sposób ma też wiele innych zalet, o których się przekonasz, jeżeli uda Ci się to ogarnąć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1