![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 4 Dołączył: 22.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hello,
Mam skomplikowany problem i nie wiem jak się za niego zabrać... Załóżmy, że tabela ma 10 kolumn i 10 rekordów - każdy rekord ma: różną lub taką samą lub brak wartości. Cechą wspólną wszystkich rekordów niech będzie kolumna o nazwie "szukam" o wartosci "123". Jak skonstruować zapytanie, które wyświetli mi KOMPLETNE dane dla wartości 123? Zakładając, że za pomocą jednego rzędu rekordów nie wyświetlę kompletnych danych ponieważ są braki w kolumnach? Nie wiem jak to jaśniej opisać - mam nadzieję, że ktoś zrozumie... (IMG:style_emoticons/default/wstydnis.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Teoretycznie da się coś takiego zrobić złączeniami może lecz to chyba nie najlepszy pomysł. Jeśli dobrze Cię rozumiem to przy założeniu że mam 4 kolumny (a nie 10) wygląda to tak:
Kod a | - | - | 123 - | b | - | 123 x | y | z | 124 - | - | c | 123 i chciałbyś aby zwrócić dla 123 rekord tak by wyszło a,b,c? A co jeśli jest np 5 takich rekordów i w jednym polu masz rózne wartości? Którą zwrócić? Ogólnie mi to się wydaję jakimś antywzorcem struktury bądź złym sposobem umieszczania danych. Jeśli masz wiele rekordów dotyczących tego samego "123" to nie powinno tak być tylko do jednego powinny być dopisywane pola które uprzednio były puste... Może coś źle rozumiem - rozpisz to bardziej (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 4 Dołączył: 22.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź Sephirus (IMG:style_emoticons/default/smile.gif)
Perfekcyjnie zrozumiałeś moje pytanie. Jeśli będzie 5 takich rekordów i w jednym polu będą rożne wartości to wybrać pierwszą lepszą - bez większego znaczenia. Gdybyś mógł zarzucić prowizorycznym kodem dla pomocy jak to ma mniej-więcej wyglądać to przynajmniej będę wiedział jak mam wziąć się za to... Ogólnie polega to na wyświetlaniu np. miejsca z poszczególnym opisem takim jak np. ulica, miejscowosc, ocena itp. Rozwiązałem to w ten sposob, ze uzytkownik gdy dodaje `nowe miejsce` do bazy, to wpisuje obowiazkowo wylacznie tytul i miejscowosc - reszta pól z opisem dokladniejszym `miejsca` jest nie obowiazkowa. Robi sie jeden nowy insert do jednej tabeli i pozniej to wyswietlam, z tym, ze pobieram wszystkie informacje na temat danego `miejsca` z wszystkich INSERTOW zrobionych na temat tego danego miejsca(tak jak powyzej to zademonstrowałeś). Nie wiem jak to zrobic inaczej... będę wdzięczny za poradę. Nie chcę robić tego w taki sposób, że przed zrobieniem INSERTA z nowym miejscem - sprawdzam w bazie czy dane miejsce o podanej nazwie juz istnieje i UPDATOWAC zamiast INSERTOWAC - poniewaz jak wiadomo, uzytkownicy lubia robic pomylki we wpisywaniu konkretnej nazwy miejsca, a pozniej przy wyswietlaniu zrobil by sie jeden wielki burdel. Ogolnie to faktycznie powinienem zmienic calosc - tylko w jaki sposob zrealizowac takie zalozenie? Ma ktos pomysly? Ten post edytował fr33d0m 13.12.2012, 14:43:32 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 550 Pomógł: 75 Dołączył: 5.06.2012 Skąd: Lębork Ostrzeżenie: (0%) ![]() ![]() |
Jeśli dobrze zrozumiałem to do tabeli są dodawane miejscowości z jakimiś tam danymi. A dodaje następne po to, żeby w razie pustego pola w innych uzupełniło je. tak.?
Jeżeli tak to możesz zrobić to jednym rekordem, a przy następnym dodawaniu rekordu updatować jedynie te pola które są puste. Jeżeli na siłę musisz zrobić tak jak masz, że kilkoma to pokombinuj coś z implode() bądź też stwórz tablicę(wyglądającą, i zawierającą te same pola co z bazy) i w pętli puść rekordy uzupełniając poszczególne elementy tablicy jeżeli są puste ;p |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 4 Dołączył: 22.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wazniak96, dobrze zrozumiales - problem w tym, ze nie zrobie poprawnego UPDATE jesli uzytkownik wprowadzi chociazby odrobine inna nazwe danego `miejsca` (swiadomie badz nie).
Rekordy uzupelniajace to faktycznie jest jakies wyjscie z problemu i jesli nikt nic lepszego nie zasugeruje to chyba tak zrobie:) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 23:10 |