Ik heb al in de manual gekeken, maar kan niet echt een antwoord vinden. Het resultaat van de eerste query is een project met de titel: "Een typologie van PPS in het LNV domein". Het is dus wel een los woord, maar de fulltext search vindt 'm nietquote:Op woensdag 16 september 2009 10:50 schreef GlowMouse het volgende:
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
Maar ik gok zomaar dat pps geen los woord is.
ah, dat verklaart een hoopquote:Op woensdag 16 september 2009 10:57 schreef GlowMouse het volgende:
http://dev.mysql.com/doc/(...)atural-language.html
"Some words are ignored in full-text searches"
Omdat 't een regex vraag wasquote:Op vrijdag 11 september 2009 12:29 schreef slacker_nl het volgende:
Wat doe je dan in het php topic??
Zo maar opgelost:quote:Op woensdag 16 september 2009 10:59 schreef daReaper het volgende:
[..]
ah, dat verklaart een hoopweet je misschien hoe ik dat aan kan passen, als ik niet bij de config van MySQL kan?
[edit]Ik zie na wat gegoogle dat dit dus niet kan... Behoorlijk waardeloos dus
Dat vermoedde ik inderdaad, maar het is niet een heel erg grote database, dus ik denk niet dat dit problemen op gaat leveren.quote:Op woensdag 16 september 2009 12:40 schreef GlowMouse het volgende:
titel LIKE '% pps %' werkte niet? De performance penalty van dit soort constructies wil je niet weten
1 2 3 4 5 6 7 8 9 10 11 | $this->html = file_get_contents($this->url); $this->dom = new DomDocument(); @$this->dom->loadHTML($this->html); $this->xpath = new DomXpath($this->dom); /*Deze functie haalt de meta van een pagina op*/ $this->metaKeywords = $this->xpath->query('/html/head/meta'); return $this->metaKeywords->item(0)->nodeValue; ?> |
Tof dit werktequote:Op donderdag 17 september 2009 11:44 schreef GlowMouse het volgende:
een primary key of unique toevoegen op (gebruikerid,pakketid). Dat kan gewoon onder Structure, Details.
MyISAM kan niet zoeken naar substrings < 4 karakters. Simpel. Met de stopwoorden die er in zitten heeft het niks te maken, daar komt pps niet in voor.quote:Op woensdag 16 september 2009 10:49 schreef daReaper het volgende:
Ik kom er even niet uit met een full text search.
Ik heb een tabel met de volgende kolommen:
id
titel
omschrijving
status
datum
Als ik nu de query "SELECT id FROM projecten WHERE titel LIKE '%pps%' OR omschrijving LIKE '%pps%'; uitvoer, krijg ik netjes 1 resultaat terug.
Ik heb een fulltext index op de kolommen "titel" en "omschrijving" die de titel "titel" draagt.
Als ik echter de query "SELECT id FROM projecten WHERE MATCH (titel, omschrijving) AGAINST ('pps'); uitvoer, krijg ik géén resultaten terug (maar ook geen foutmelding).
Wat kan hier aan de hand zijn?
1 2 3 4 5 6 7 8 9 10 11 12 | ----------------------- 1 | 1 | 1251909627 2 | 2 | 1251909727 3 | 1 | 1251909827 4 | 2 | 1251909927 5 | 1 | 1251910027 6 | 2 | 1252773627 7 | 1 | 1252773627 8 | 2 | 1252773627 9 | 1 | 1253205628 10 | 2 | 1253205628 |
1 2 3 4 5 6 | from_unixtime(datestart,"%Y-%v") AS weekInYear, count(*) as numberOfRegistrations FROM Listitems GROUP BY weekInYear ORDER BY datestart |
1 2 3 4 | 2009-36 | 5 2009-37 | 3 2009-38 | 2 |
1 2 3 4 | 2009-36 | 3 | 2 | 5 2009-37 | 1 | 2 | 3 2009-38 | 1 | 1 | 2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | `id` int(11) NOT NULL auto_increment, `soort` int(11) NOT NULL, `dateStart` int(11) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; INSERT INTO `Listitems` VALUES ('1', '1', '1251909627'); INSERT INTO `Listitems` VALUES ('2', '2', '1251909727'); INSERT INTO `Listitems` VALUES ('3', '1', '1251909827'); INSERT INTO `Listitems` VALUES ('4', '2', '1251909927'); INSERT INTO `Listitems` VALUES ('5', '1', '1251910027'); INSERT INTO `Listitems` VALUES ('6', '2', '1252773627'); INSERT INTO `Listitems` VALUES ('7', '1', '1252773627'); INSERT INTO `Listitems` VALUES ('8', '2', '1252773627'); INSERT INTO `Listitems` VALUES ('9', '1', '1253205628'); INSERT INTO `Listitems` VALUES ('10', '2', '1253205628'); |
quote:Op donderdag 17 september 2009 19:07 schreef GlowMouse het volgende:
Het makkelijkste en meest logische is om GROUP BY week,group te gebruiken en dan je applicatie de rest te laten doen.
1 2 3 4 5 6 7 | from_unixtime(datestart,"%Y-%v") AS weekInYear, soort, count(*) as numberOfRegistrations FROM Listitems GROUP BY weekInYear , soort ORDER BY datestart |
1 2 3 4 5 6 | 2009-36 2 2 2009-37 2 2 2009-37 1 1 2009-38 1 1 2009-38 2 1 |
quote:Op vrijdag 18 september 2009 13:43 schreef pc-fr34k het volgende:.
Ik zit met een probleempje waar ik niet uit kom. Ik heb 2 arrays:
Vandaag: Array ( [1] => 2 [2] => 1 [3] => 1 [4] => 1 [5] => 2 [6] => 10 [7] => 1 [999] => 1 )
Gisteren: Array ( [1] => 5 [2] => 0 [6] => 3 )
Hier is de key het ID van een linkpartner en de value is het aantal hits op die dag.
Nu wil ik de som van vandaag en gisteren in 1 array. Hoe zorg ik dat overal waar de key gelijk is de 2 waardes bij elkaar opgeteld worden?
Bvd
1 2 3 4 | foreach(array_keys($array1) as $key) { $totaal[$key] = $array1[$key] + $array2[$key]; } |
Als $array2[$a] niet bestaat, krijg je minimaal een notice. Die kun je onderdrukken, maar 't is niet netjes. En je moet er nog rekening mee houden dat een key wel in $array2 kan voorkomen en niet in $array1 zit.quote:Op vrijdag 18 september 2009 13:55 schreef daReaper het volgende:
[..]
[ code verwijderd ]
Niet getest, laat maar weten of het werkt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $total = array(); foreach($array1 as $key => $value) { if(isset($array2[$key]) { $total[$key] = $value + $array2[$key]; unset($array2[$key]); } else { $total[$key] = $value; } } foreach($array2 as $key => $value) { // Alles wat we nog gemist hebben $total[$key] = $value; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | pr.[product_naam], logp.[logpers_datum], MAX(l.[log_uitgave]), p.[persoon_naam] FROM [product] AS pr LEFT JOIN [log] AS l ON l.[product_id] = pr.[product_id] LEFT JOIN [log_persoon] AS lp ON lp.[log_id] = l.[log_id] LEFT JOIN [persoon] AS p ON p.[persoon_id] = logp.[persoon_id] WHERE logp.[persoon_rol] = '6' GROUP BY pr.[product_id], pr.[product_naam], logp.[logpers_datum], p.[persoon_naam], l.[log_uitgave] ORDER BY l.[log_uitgave] DESC |
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 32 33 34 35 36 37 38 39 40 41 | product_id product_naam 1 Stofzuiger 2 Appelsap 3 Wijn 4 ABC Log log_id product_id log_uitgave 1 1 1 2 2 1 3 3 1 4 3 2 5 4 1 Log_persoon log_id persoon_id persoon_rol log_datum 1 1 2 2009-08-09 1 2 3 2009-08-12 1 4 6 2009-08-13 2 2 1 2009-08-17 2 1 6 2009-08-18 3 3 4 2009-08-19 3 3 5 2009-08-22 3 1 6 2009-08-28 4 2 6 2009-08-29 5 4 6 2009-08-30 Persoon persoon_id persoon_naam 1 Jan 2 Piet 3 Klaas 4 Kees Het resultaat wat ik dan wil is... ---------------------------------------- 1. stofzuiger 2009-08-13 1 Jan 2. Appelsap 2009-08-18 1 Jan 3. Wijn 2009-08-29 2 Piet 4. ABC 2009-08-30 1 Kees |
wat is je resultaat nu ? en waarom mis je een orderby artikel ID? en wat is er met je where aan de hand =)? waarom alleen persoon 6?quote:Op maandag 21 september 2009 12:59 schreef ReWout het volgende:
Ik heb wat moeite met 't ophalen van data...
Ik heb 4 tabellen...
- product (bestaat uit info product)
- log (bestaat uit info van veranderingen product o.a. versie nummer & product id)
- log_persoon (bestaat uit log_id & persoon_id & rol_id (een getal welke de "rol" voorstelt van de persoon))
- persoon (bestaat uit info over persoon)
Wat ik nu wil is dat ik van alle producten de info selecteer met daarbij de laatste log gegevens en de daarbij horende persoons gegeves...
Wat ik heb
[ code verwijderd ]
[ code verwijderd ]
WHERE artikel IN (800, 200, 300)quote:Op maandag 21 september 2009 12:39 schreef cablegunmaster het volgende:
vraagje.
ik heb een $_SESSION en daarin zitten meerdere nrs bvb 800,200,300
dit zijn nummers die ik met behulp van een database in weergave wil weergeven.
$sql = select * from artikelen
where artikel = '".$_SESSION['artikelid']."' ";
of moet er perse een for while loop? of een for loop bij?
met een extra $I variabele of iets dergelijks.
(meerdere waardes in 1 where statement)
Even voor de zekerheid, hebben we het hier over MySQL? En zo nee, over welke SQL-smaak dan wel?quote:Op maandag 21 september 2009 12:59 schreef ReWout het volgende:
Ik heb wat moeite met 't ophalen van data...
Ik heb 4 tabellen...
- product (bestaat uit info product)
- log (bestaat uit info van veranderingen product o.a. versie nummer & product id)
- log_persoon (bestaat uit log_id & persoon_id & rol_id (een getal welke de "rol" voorstelt van de persoon))
- persoon (bestaat uit info over persoon)
Wat ik nu wil is dat ik van alle producten de info selecteer met daarbij de laatste log gegevens en de daarbij horende persoons gegeves...
Wat ik heb
[ code verwijderd ]
[ code verwijderd ]
Nah MSSQL.quote:Op maandag 21 september 2009 13:58 schreef Light het volgende:
[..]
Even voor de zekerheid, hebben we het hier over MySQL? En zo nee, over welke SQL-smaak dan wel?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |