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

Czy da się takie coś zrobić za pomocą funkcji str_freplace
pol90
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1181
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.

pol90
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1181
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 ?

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 339
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

pol90
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1181
0

To jak byś ty to zrobił

Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
1

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

pol90
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1181
0
Marcin.Miga napisał(a):

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

To jest algorytm jak to zrobić ?

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 339
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ć

pol90
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1181
0

Ale trzeba przebudowywać strkturę bazy ?

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 339
0

no tak..

pol90
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1181
0

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

TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: 700m n.p.m.
  • Postów: 681
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.

pol90
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1181
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

TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: 700m n.p.m.
  • Postów: 681
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ąć.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.