Ik ben bezig mijn search engine voor een bepaalde site te verbeteren oftewel wat meer search mogelijkheden in te bouwen.. waaronder
* zoeken op letters
* zoeken op catagorie
* zoeken op type
* zoeken min grote, max grote
* zoeken met image? etc
nu wil ik ook mijn engine uitbreiden om te werken met meerdere pagina's... dus als je zoekt op xxx dat er dan bv 10 pagina's uitkomen
opzich is dat natuurlijk niet zo moeilijk met MySQL haal je met een count het aantal gegevens uit de db en met de daarop volgende query lees je de items uit ($van, $maxaantalitems)
alleen zit ik nu met een probleem, de volgende query haalt uit de db items van dit

de query is
Ik dacht dat ik deze oplossing reeds gevonden had (met hulp van Got->Zef;)
de GROUP BY moest ik verwijderen daarna gaf hij het aantal rijen... nu zit ik met een geheel ander probleem binnen deze zelfde search engine..
met deze query (die ik nu gefixt hebt) lees ik het aantal items uit,
nu geeft dit dat er 30 items zijn terwijl de volgende query de items moet laden en maar 11 items aangeeft
dit is echt wel super vervelend.. nu heb ik de query nogmaals goed bekeken maar kan niet vinden waarom de ene 30 aan geeft terwijl de andere er maar 11 vind, of zal het dan toch aan de group by liggen en zo jah hoe kan ik dan de 1e query optimaliseren inclusief de group by
maar blijkt dus niet zo te zijn...
wat wil ik!
1. een snelle search doen waarmee ik een count terug krijg met alle items uit mijn database zonder dat dit veel preformace vraagt
2. ik wil de database uitlezen van $from, 20 dus vanaf de geselecteerde pagina 20 items (ofzoites)
Nu las ik in een topic van iemand waarin ACM de laatste reactie gaf dat het ook mogelijk is om tempory tables te gebruiken, daarop heb ik echter gezocht maar niets gevonden waar ik precies duidelijk gemaakt kon worden hoe het werkt, wat ik er mee kan etc? nu is natuuriljk ook de vraag of dit handig is voor mijn website maar dat even terzijde.
Ik hoop dat deze topic wel openblijft want heb nu al 9 dagen op mijn probleem zitten spacen en heb er nog geen antwoord op
* zoeken op letters
* zoeken op catagorie
* zoeken op type
* zoeken min grote, max grote
* zoeken met image? etc
nu wil ik ook mijn engine uitbreiden om te werken met meerdere pagina's... dus als je zoekt op xxx dat er dan bv 10 pagina's uitkomen
alleen zit ik nu met een probleem, de volgende query haalt uit de db items van dit
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| count(*) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 4 4 4 4 1 1 1 1 1 1 1 |

de query is
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| <? SELECT count(*) FROM sd_item LEFT JOIN sd_tree ON sd_tree.id = sd_item.tree_id LEFT JOIN sd_hash ON sd_hash.item_id = sd_item.id WHERE ( sd_item.title LIKE '%sex%' OR sd_hash.filename LIKE '%sex%') AND sd_item.tree_id > 0 GROUP BY sd_item.id ORDER BY sd_item.id DESC ?> |
Ik dacht dat ik deze oplossing reeds gevonden had (met hulp van Got->Zef;)
de GROUP BY moest ik verwijderen daarna gaf hij het aantal rijen... nu zit ik met een geheel ander probleem binnen deze zelfde search engine..
met deze query (die ik nu gefixt hebt) lees ik het aantal items uit,
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| SELECT count(sd_item.id) FROM sd_item LEFT JOIN sd_tree ON sd_tree.id = sd_item.tree_id LEFT JOIN sd_hash ON sd_hash.item_id = sd_item.id WHERE ( sd_item.title LIKE '%test%' OR sd_hash.filename LIKE '%test%') AND sd_item.tree_id > 0 ORDER BY sd_item.id DESC |
nu geeft dit dat er 30 items zijn terwijl de volgende query de items moet laden en maar 11 items aangeeft

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| SELECT sd_item.id, sd_item.cnt_views as views, sd_item.title, sd_item.image, sd_item.cnt_rating, sd_item.cnt_votes, sd_item.cnt_files as files, sd_item.cnt_size as totalsize, sd_item.cnt_clicks as dls, sd_tree.id as treeid, sd_tree.title as treetitle FROM sd_item LEFT JOIN sd_tree ON sd_tree.id = sd_item.tree_id LEFT JOIN sd_hash ON sd_hash.item_id = sd_item.id WHERE ( sd_item.title LIKE '%test%' OR sd_hash.filename LIKE '%test%') AND sd_item.tree_id > 0 GROUP BY sd_item.id ORDER BY sd_item.id DESC LIMIT 0, 25 |
maar blijkt dus niet zo te zijn...
wat wil ik!
1. een snelle search doen waarmee ik een count terug krijg met alle items uit mijn database zonder dat dit veel preformace vraagt
2. ik wil de database uitlezen van $from, 20 dus vanaf de geselecteerde pagina 20 items (ofzoites)
Nu las ik in een topic van iemand waarin ACM de laatste reactie gaf dat het ook mogelijk is om tempory tables te gebruiken, daarop heb ik echter gezocht maar niets gevonden waar ik precies duidelijk gemaakt kon worden hoe het werkt, wat ik er mee kan etc? nu is natuuriljk ook de vraag of dit handig is voor mijn website maar dat even terzijde.
Ik hoop dat deze topic wel openblijft want heb nu al 9 dagen op mijn probleem zitten spacen en heb er nog geen antwoord op
