Eğer onları takip böylece, bir kategori tablo ekleyin. Bir çok-çok olabilir böylece Sonra, bir color_category tablo ekleyin. Şöyle:
CategoryID Category
----------------------
1 primary
2 dark
ColorID CategoryID
---------------------
1 1
1 2
2 2
ColorID Color
-----------------
1 red
2 brown
Sonra, şöyle bir UserPalette tablo var:
UserID ColorID
-----------------
1 3
1 4
Yani, bir kullanıcının seçtiği dark
, bu sorguyu çalıştırdığınızda ne zaman:
insert into userpalette
select
$userId as userid,
c.colorid
from
category cat
inner join color_category cc on
cat.categoryid = cc.categoryid
inner join colors c on
cat.colorid = c.colorid
where
cat.category = '$category'
Bir kullanıcının renk kapmak için, bunu yapmak istiyorum:
select
c.color
from
userpalette up
inner join colors c on
up.colorid = c.colorid
where
up.userid = $userid
Sadece bir adı varsa:
select
*
from
users u
inner join userpalette up on
u.userid = up.userid
inner join colors c on
up.colorid = c.colorid
where
u.username = '$username'
Bir SQL sorgusu içine koymadan önce Açıkçası, mysql_real_escape_string()
ile emin boru her şeyi yapmak. Aksi takdirde, SQL enjeksiyon saldırıları için kendinizi açık gidiyoruz.