Query voor selecteren van tag's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kevin van der Burgt

kevin van der Burgt

20/11/2009 16:58:00
Quote Anchor link
Hallo,

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
 
PHP hulp

PHP hulp

26/04/2024 12:07:30
 
Richard van Velzen

Richard van Velzen

20/11/2009 17:01:00
 

20/11/2009 17:01:00
Quote Anchor link
Staan er meerdere waarden in één 'veld' / 'hokkie' / 'plaatjes' / 'vakje'? Dan klopt je datamodel niet.
 
Jelmer -

Jelmer -

20/11/2009 17:12:00
Quote Anchor link
Het is inderdaad niet handig wat je nu doet, want je kan nu niet gemakkelijk een lijst opvragen met alle tags die voorkomen, of even snel tellen hoe vaak ze voorkomen.

Als je MySQL gebruikt zou je FIND_IN_SET('test', tags) NOT NULL kunnen proberen, maar dat zal waarschijnlijk wel snel langzaam worden.
 
Kevin van der Burgt

kevin van der Burgt

20/11/2009 17:15:00
Quote Anchor link
Ik heb al een andere manier gebruikt, Ik weet niet of dit de juiste manier is maar het werkt wel.

CLASS:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
        }

?>


RESULTAAT PAGINA:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
            $data
=$cl->SearchLayout('color', 'gr2een');
            $cnt=0;
            while($data[$cnt]!=''){
                echo $data[$cnt].", ";
                $cnt++;
            }

?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.