webForumDet fria alternativet

Jämföra i Query

7 svar · 202 visningar · startad av startail

startailMedlem sedan sep. 2000155 inlägg
#1

Jag har lite problem med en query...

Man kan ställa in kategorier på sin profil och sin bild.
Och det skall bara visas categorier som man har i sin profil.

Säg att $profil[cat] == "buddy" och
$bild1[cat] == "buddy, pal, dude" och
$bild2[cat] == "evil".

Nu skall queryn bara visa bild 1, inte bild två eftersom bild1 har buddy i sin cat men inte bild 2.

Hur gör man för att kolla om ett ord (sträng) finns i en cell med hjälp av mysql_query ?

Typ som strstr(); gör i php...

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Hur är dina tabeller definierade? Säg inte att du lagrar flera, kommaseparerade, ord i en kolumn?

startailMedlem sedan sep. 2000155 inlägg
#3

Det var så jag hade tänkt mig att spara definieringen av cats. Med ett "," som sepperation.

Har du nån bättre ide, vänligen berätta :)

LAMPMedlem sedan mars 2002777 inlägg
#4

Ha en separat tabell där du lagrar användarId och definiering (Kategori). det är bättre att lägga till poster i en egen tabell än göra kommaseparerade strängar.

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Använd en extra tabell för att lagra kategorier

create table category(cid int, ...)
create table picture(pid int , ...)
create table pictureCategory(pid,cid)

Varje kombination av bild och kategory lagras som en post.

Det är hopplöst att göra sökningar i din modell.

startailMedlem sedan sep. 2000155 inlägg
#6

Nu har ni nog missförstått mig.

Databasen ser ut så här.

CREATE TABLE pictures (
id tinyint(10) NOT NULL auto_increment,
user_id tinyint(255) NOT NULL default '0',
picture varchar(255) NOT NULL default '',
cat varchar(255) NOT NULL default '',
)

CREATE TABLE members (
id tinyint(10) NOT NULL auto_increment,
name varchar(255) NOT NULL default '',
passwd varchar(255) NOT NULL default '',
email varchar(255) NOT NULL default '',
cat varchar(255) NOT NULL default '',
)

members[cat] kan inehålla flera categorier av dom som går att välja på. Dom är seppererade med "," tecken.

Sen skall den visa pictures[cat] endast om pictures[cat] finns i members[cat].

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Nej, jag har inte missförstått. Jag tycker bara att du skall ändra på din datamodell.

startailMedlem sedan sep. 2000155 inlägg
#8

Okay

Då säger vi så då =)

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)