![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%)
|
Witam,
mam w bazie 2 tabeli: Tabela 1: budowaofert (przechowuje nazwy ofert) id | nazwaOferty ___________________ 1 | nazwa 1 2 | nazwa 2 3 | nazwa 3 itd. Tabela 2: wybraneoferty (przechowuje powiązania userów z ofertami) id_pracownik | wybraneOferty _______________________________ 1 | 1,2,3 2 | 2,5,11 3 | 4,6,15 itd. W tabeli nr 2 (wybraneoferty) w kolumnie wybraneOferty przechowywane są ID ofert z tabeli budowaofert, z tym, że każdy user może mieć wybraną jedną, lub więcej niż jedna ofertę, poszczególne oferty są zapisywane w kolumnie wybraneOferty i rozdzielane przycinkiem. Teraz chcę wykonać do bazy zapytanie, które: 1. pobierze mi wszystkie oferty z tabeli budowaofert i wygeneruje mi z tego listę ofert z checkboxami do odhaczenia 2. pobierze mi wszystkie WYBRANE przez konkretnego usera oferty (pobierając je z tabeli wybraneoferty i kolumny wybraneOferty) i, co ważne, WSTAWI CHECKED W CHECKBOXACH TYCH OFERT, ID KTÓRYCH ZNAJDUJĄ SIĘ W KOLUMNIE wybraneOferty tabeli wybraneoferty. Robie takie zapytanie:
Działa, ale zaznacza mi tylko ostatniego checkboxa, czyli np jak pobieram dane i d_pracownik = 2, to odhacza mi tylko ofertę nr 11, a jak pobieram id_pracownik = 3, to odhacza mi tylko 15 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Co robię nie tak?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ten post edytował miedzna 30.04.2007, 10:15:40 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 611 Pomógł: 19 Dołączył: 28.02.2005 Skąd: Wrocław Ostrzeżenie: (0%)
|
Pierwsza sprawa: przebuduj bazę danych Zrób 3 tabela1 (tabela ofert) ,tabela2( tabela pracowników) i mapowanie_tabela1_tabela2 o polach id_oferty i id pracownika. i teraz select
Cytat 2. pobierze mi wszystkie WYBRANE przez konkretnego usera oferty (pobierając je z tabeli wybraneoferty i kolumny wybraneOferty) i, co ważne, WSTAWI CHECKED W CHECKBOXACH TYCH OFERT, ID KTÓRYCH ZNAJDUJĄ SIĘ W KOLUMNIE wybraneOferty tabeli wybraneoferty. ee? nie rozumiem Chcesz pobrać wszystkie oferty z tabeli ofert i dać checked dla tych które wybrał user ? |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%)
|
Tak, w dużym uproszczeniu chcę w jednej tabeli trzymać opisy ofert, a w drugiej trzymac te oferty, które wybrał user, a później na stronie pokażywać wszystkie oferty, oraz odhaczone te oferty, które wybrał dany user.
Pierwsza sprawa: przebuduj bazę danych Zrób 3 tabela1 (tabela ofert) ,tabela2( tabela pracowników) i mapowanie_tabela1_tabela2 o polach id_oferty i id pracownika. i teraz select Tak mam, mam tabelę z userami, mam tabelę z opisami ofert i mam tabelę z mapująca te dwie powyższe: id_pracownik | wybraneOferty _______________________________ 1 | 1,2,3 2 | 2,5,11 3 | 4,6,15 z tym, że każdy user może wybrać więcej niż jedną ofertę, dlatego umieszczam ID poszczególnych ofert w kolumnie wybraneOferty po przecinku. Później jeszcze będę chciał wysyłac maila do tych userów, co wybrali np ofertę z ID 2, czyli mail pójdzie do usera z ID 1 i 2. |
|
|
|
Post
#4
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%)
|
To nie rób tego w ten sposób tylko inaczej kojarz te dane. Coś w tym stylu:
id | id_pracownik | id_oferty 1 |1 |3 2 |1 |4 3 |1 |5 4 |2 |12 itd itd Tak będzie łatwiej wyciągnąć dane. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%)
|
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 611 Pomógł: 19 Dołączył: 28.02.2005 Skąd: Wrocław Ostrzeżenie: (0%)
|
odpowiedź masz w moim poście powyżej łącznie z zapytaniem sql wyciągającym takie dane (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
powtórze co nieco tabela1 - > oferty id_oferty | opis oferty .... 1 sprzedam spodnie tabela2 - > pracownicy id_pracownika | pesel | imie | nazwisko .... 1 111 jan kowalski 2 222 jon doe tabela3 -> mapowanie_oferta_pracownik id_oferty | id_pracownika 1 2 2 2 3 2 i teraz select który jest we wcześniejszym poście jaśniej sie zrobiło ? |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%)
|
odpowiedź masz w moim poście powyżej łącznie z zapytaniem sql wyciągającym takie dane (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) powtórze co nieco tabela1 - > oferty id_oferty | opis oferty .... 1 sprzedam spodnie tabela2 - > pracownicy id_pracownika | pesel | imie | nazwisko .... 1 111 jan kowalski 2 222 jon doe tabela3 -> mapowanie_oferta_pracownik id_oferty | id_pracownika 1 2 2 2 3 2 i teraz select który jest we wcześniejszym poście jaśniej sie zrobiło ? OK, wszystko jest tak jak piszesz, tylko do tabeli mapowanie_oferta_pracownik dodałem klucz ID wykonuję zapytanie zgodnie z Twoim kodem powyżej:
tylko jak teraz w pętli where zmienną $checked raz ustawiać na "checked" a raz nie, w zależności od tego, czy user wcześniej wybrał którąś z ofert, czy nie. |
|
|
|
![]() ![]() |
|
Aktualny czas: 7.12.2025 - 08:15 |