Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: checkboxy i baza danych
Forum PHP.pl > Forum > Bazy danych
sumar
Krótkie wprowadzenie. To jest baza mailowa do newslettera. Ktoś zapisując się na listę wybiera jakie tematy go interesują i odznacza je checkboxami. Teraz wszystko trafia do bazy i wygląda to tak

TABELA 1
id | opcje |email
---------------------------------------------------
1 |1,5,23,56,45 |email@email.pl
---------------------------------------------------
2 |9,12,25,23,27,36 |email@email.pl
---------------------------------------------------
3 |2,4,7,23,41,56,67 |email@email.pl


1. Generuję stronę i do każdego rekordu przyporządkowany jest checkbox. Następnie wrzucam to do bazy danych i otrzymuję rekord zawierający opcje i email - TO DZIAŁA

2. Teraz znowu wygeneruje taką samą stronę z checkboxami po stronie administracyjnej i odznaczając kilka checkboxów chce wybrać z bazy te rekordy, które zawierają dokładnie te odznaczone opcje. Np zaznaczam checkbox 23 i 56, to powinienem dostać wynik w postaci dwóch rekordów o id=1 i id=3.

3. Wyswietlam dany rekord np: o id =2
TABELA 1
id | opcje |email
---------------------------------------------------
2 |9,12,25,23,27,36 |email@email.pl

i chce wyświetlić wszystkie tematy jakie są przyporządkowane do danego e-maila. Numery opcji to id odpowiadający danemu tematowi w bazie danych.

czyli
TABELA 2
id | temat
--------------------
1 |Motoryzacja
--------------------
2 |Muzyka
--------------------
3 |Sport


I problem polega na tym że nie wiem jak skonstruować te dwa zapytanie. :?:
itsme
moja propozycja:
tabela newsletter
Kod
|ID_newsletter|temat|email|

poprawnie wpisane dane winny wygladac wygladac tak
Kod
|1|2   |php@php.pl|

|3|34  |php@php.pl|

|4|36  |php@php.pl|

|5|37  |php@php.pl|

|6|45  |php@wp.pl|

|7|78  |php@wp.pl|

|8|31  |php@wp.pl|

Jak widzisz nie wpisujemy w jednym rekordzie jak to wprowdzic do bazy przy dodawniu: robisz petle z tablica i zmieniasz tylko numer tematu.
Idziemy dalej: jaki jest plus tego ? otoz w latwy sposb mozna to edytowac :-) dodajesz lub usuwasz dany rekord przez co masz odany lub skasowany temat z newslettera.

Jak ok wyciagnac dane z nazwa tematu
[sql:1:d20c5eb487]SELECT newsletter.*, tematy.temat from newsletter LEFT JOIN tematy ON (newsletter.ID_newsletter=temat.ID_temat) where newsletter.email='$email'[/sql:1:d20c5eb487]
i masz jedny potanie i wszystkie odpowiedzi.

Jest tez drugie rozwiazanie:
masz swoj schemat danych. Po staremu. Wyciagasz dany rekord z numerami tematow i emailem, nastepnie wyciagasz tematy z tabeli i tworzysz tablice $tematy[$id_tematy]=$temat;
i pozniej za pomoca funkcji lańcuchowych zamieniasz daną cyferkę w uzyskanym rekordzie na temat z tablicy.

Jest babrania sie i to nie mao dlatego zalecam pierwsze rozwiazanie.
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.