abonnement Unibet Coolblue Bitvavo
pi_72795454
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?
Trotse poster van het 37000000ste bericht ^O^
  woensdag 16 september 2009 @ 10:50:55 #182
75592 GlowMouse
l'état, c'est moi
pi_72795501
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

Maar ik gok zomaar dat pps geen los woord is.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72795543
quote:
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.
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 niet
Trotse poster van het 37000000ste bericht ^O^
  woensdag 16 september 2009 @ 10:55:17 #184
75592 GlowMouse
l'état, c'est moi
pi_72795641
Hoeveel records heb je?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72795682
quote:
Op woensdag 16 september 2009 10:55 schreef GlowMouse het volgende:
Hoeveel records heb je?
Deze tabel bestaat uit 73 rijen
Trotse poster van het 37000000ste bericht ^O^
  woensdag 16 september 2009 @ 10:57:55 #186
75592 GlowMouse
l'état, c'est moi
pi_72795711
http://dev.mysql.com/doc/(...)atural-language.html

"Some words are ignored in full-text searches"
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72795760
quote:
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"
ah, dat verklaart een hoop weet 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

[ Bericht 9% gewijzigd door daReaper op 16-09-2009 11:32:58 ]
Trotse poster van het 37000000ste bericht ^O^
pi_72796134
quote:
Op vrijdag 11 september 2009 12:29 schreef slacker_nl het volgende:
Wat doe je dan in het php topic??
Omdat 't een regex vraag was
pi_72799049
quote:
Op woensdag 16 september 2009 10:59 schreef daReaper het volgende:

[..]

ah, dat verklaart een hoop weet 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
Zo maar opgelost:

SELECT id FROM projecten WHERE titel REGEXP '(^|[[:space:]])pps([[:space:]]|$)' OR omschrijving REGEXP '(^|[[:space:]])pps([[:space:]]|$)'

werkt prima
Trotse poster van het 37000000ste bericht ^O^
  woensdag 16 september 2009 @ 12:40:34 #190
75592 GlowMouse
l'état, c'est moi
pi_72799110
titel LIKE '% pps %' werkte niet? De performance penalty van dit soort constructies wil je niet weten
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72799457
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
Dat vermoedde ik inderdaad, maar het is niet een heel erg grote database, dus ik denk niet dat dit problemen op gaat leveren.


LIKE '% pps %' vindt geen resultaten waar de zin begint met "pps" of ermee eindigt, bijvoorbeeld.
Trotse poster van het 37000000ste bericht ^O^
pi_72811076


[ Bericht 41% gewijzigd door daReaper op 16-09-2009 22:56:25 ]
Trotse poster van het 37000000ste bericht ^O^
pi_72818796
Iemand enig idee hoe je met xPath de meta gegevens van een site kan opvragen? kom er maar niet uit. Of zijn de meta gegevens niet mogelijk? (lijkt me trouwens erg gek..)

1
2
3
4
5
6
7
8
9
10
11
<?php
        $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;    
?>
De enige echte BaggerUser!
Riemen
fiets kopen
pi_72834481
Even een vraagje stel ik heb een tabel met

gebruikerid en pakketid.

nu kan een gebruiker meerdere pakketten toevoegen maar wou ik voorkomen dat hij dezelfde entrys toevoegd.

gekoppelde sleutel alleen ik heb geen idee hoe ik dit moet uitvoeren in phpmyadmin. want unieke pakketid betekent dat klant 2 niet hetzelfde pakket kan kiezen.

iemand die een idee heeft ?

kort samengevat : dubbele primaire sleutel in phpmyadmin.
Redacted
  donderdag 17 september 2009 @ 11:44:15 #195
75592 GlowMouse
l'état, c'est moi
pi_72834558
een primary key of unique toevoegen op (gebruikerid,pakketid). Dat kan gewoon onder Structure, Details.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72834675
quote:
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.
Tof dit werkte
Redacted
  donderdag 17 september 2009 @ 14:22:27 #197
72762 marq
Mr. Psychonaut
pi_72839131
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?
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.
Sigmoid: f(x) = 1 / (1 + 2.718281828458# ^ -x)
  donderdag 17 september 2009 @ 19:02:34 #198
65490 whoops
Home is where the heart is...
pi_72848822
Geen PHP maar een wel MySQL vraag.

Ik heb de volgende tabel:

1
2
3
4
5
6
7
8
9
10
11
12
id | soort | datestart  
-----------------------
 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


Nu wil ik per week de output tellen, dit kan via de volgende query:

1
2
3
4
5
6
SELECT DISTINCT 
   from_unixtime(datestart,"%Y-%v") AS weekInYear,  
   count(*) as numberOfRegistrations 
   FROM Listitems 
   GROUP BY weekInYear 
   ORDER BY datestart


Dan krijg ik het volgende als output:

1
2
3
4
weekInYear | numberOfRegistrations
   2009-36 | 5
   2009-37 | 3
   2009-38 | 2


So far so good. Maar wat ik eigenlijk wil, is de 'soort' erbij tellen, en dus dit als output krijgen:

1
2
3
4
weekInYear | soort1 | soort2 | numberOfRegistrations
   2009-36 |      3 |      2 | 5
   2009-37 |      1 |      2 | 3
   2009-38 |      1 |      1 | 2


Het aantal 'soorten' staat hierbij vast, dat zijn er 2. Het is dus geen probleem om in de query ergens harcoded 'where soort = 1 en/of where soort = 2' te hebben.

Model en Data
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE TABLE `Listitems` (
  `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');
In the beginning, the universe was created. This made a lot of people very angry and has been widely regarded as a bad move.
  donderdag 17 september 2009 @ 19:07:55 #199
75592 GlowMouse
l'état, c'est moi
pi_72848985
Het makkelijkste en meest logische is om GROUP BY week,group te gebruiken en dan je applicatie de rest te laten doen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 17 september 2009 @ 19:16:00 #200
65490 whoops
Home is where the heart is...
pi_72849283
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.

Het kan zo simpel zijn! Thanks dude!

1
2
3
4
5
6
7
 SELECT DISTINCT 
   from_unixtime(datestart,"%Y-%v") AS weekInYear,  
   soort,
   count(*) as numberOfRegistrations 
   FROM Listitems 
   GROUP BY weekInYear , soort
   ORDER BY datestart


Bovenstaande query heeft dit als output:

1
2
3
4
5
6
2009-36   1   3
2009-36   2   2
2009-37   2   2
2009-37   1   1
2009-38   1   1
2009-38   2   1


Hier kan ik wel weer verder mee!
In the beginning, the universe was created. This made a lot of people very angry and has been widely regarded as a bad move.
  † In Memoriam † vrijdag 18 september 2009 @ 13:43:15 #201
67005 pc-fr34k
"Internet=Telepathie"
pi_72873312
.

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
Wij zijn artificial intelligence. Overclock jezelf maar hou jezelf wel goed koel.
Ik ben gematigd verslaafd aan drugs-ik kan stoppen voor een periode of altijd-maar altijd is zo lang-leef in zonde met mate(n)
http://pc-fr34k.hyves.nl/blog/
pi_72873725
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
$totaal = array();
foreach(array_keys($array1) as $key) {
  $totaal[$key] = $array1[$key] + $array2[$key];
}


Niet getest, laat maar weten of het werkt.
Trotse poster van het 37000000ste bericht ^O^
pi_72874002
quote:
Op vrijdag 18 september 2009 13:55 schreef daReaper het volgende:

[..]
[ code verwijderd ]

Niet getest, laat maar weten of het werkt.
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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$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;
}
?>

En dat kan dan natuurlijk in een functie.
pi_72963645
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)
Redacted
pi_72964166
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT
    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
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
pi_72964547
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 ]
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?
Redacted
pi_72965757
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)
WHERE artikel IN (800, 200, 300)
pi_72965785
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 ]
Even voor de zekerheid, hebben we het hier over MySQL? En zo nee, over welke SQL-smaak dan wel?
pi_72967456
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?
Nah MSSQL.

-edit- ik zal me vraag wel even anders stellen want het gene wat ik hierboven wil kan ik namelijk wel verkrijgen met 2 queries... maar ik probeer er dus 1 van te maken.

[ Bericht 13% gewijzigd door ReWout op 21-09-2009 15:51:52 ]
  dinsdag 22 september 2009 @ 09:43:58 #210
49096 cosmick
Les Yeux Orange
pi_72992305
Even een include-vraag .

In sites gebruik ik altijd includes voor headers, footers etc. op deze manier: <? include("inc/scripts.php")?> .

Werkt natuurlijjk prima. Maar wat als ik nu een externe pagina wil includen? Dacht met mijn domme hoofd dat dat simpel zo zou gaan maar helaas:

<? include("inc/http://www.website.nl/pagina.html")?>

Iemand een oplossing?
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')