Query voor selecteren van tag's
Ik ben bezig met een kleine zoekmachine voor mn database,
Ik heb een database met een kolom TAGS in elke rij staat het zo opgedeeld:
tag1,tag2,tag3 etc... (tag1 tag2 tag3, zijn steeds verschillende tag namen).
Hoe kan ik bijvoorbeeld met een query de tag 'TEST' laten zoeken zonder alle rows te checken?
Want de TAG 'TEST' staat op rij 3, 6, 7, 231 maar dan heb ik het handmatig opgezocht, hoe kan ik een query dat laten zoeken?
Mvg, Kevin
Staan er meerdere waarden in één 'veld' / 'hokkie' / 'plaatjes' / 'vakje'? Dan klopt je datamodel niet.
Als je MySQL gebruikt zou je FIND_IN_SET('test', tags) NOT NULL kunnen proberen, maar dat zal waarschijnlijk wel snel langzaam worden.
CLASS:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
function SearchLayout($tag, $value, $arr_limit=null){
$tag = mysql_real_escape_string($tag);
$value = mysql_real_escape_string($value);
$sql="
SELECT * FROM `template_tag`
WHERE
tag='".$tag."' AND
value='".$value."'
";
if($arr_limit != null)
$sql .= " LIMIT ".$arr_limit[0].", ".$arr_limit[1];
$res=mysql_query($sql);
$cnt=0;
while($dat=mysql_fetch_assoc($res)){
$return[$cnt] = $dat['template_id'];
$cnt++;
}
return $return;
}
?>
function SearchLayout($tag, $value, $arr_limit=null){
$tag = mysql_real_escape_string($tag);
$value = mysql_real_escape_string($value);
$sql="
SELECT * FROM `template_tag`
WHERE
tag='".$tag."' AND
value='".$value."'
";
if($arr_limit != null)
$sql .= " LIMIT ".$arr_limit[0].", ".$arr_limit[1];
$res=mysql_query($sql);
$cnt=0;
while($dat=mysql_fetch_assoc($res)){
$return[$cnt] = $dat['template_id'];
$cnt++;
}
return $return;
}
?>
RESULTAAT PAGINA: