Ik ben op het moment bezig met het leren van het gebruik van sql databases in php. [url="Ihttp://www.zend.com/zend/spotlight/websearchengine2may.php#Heading9"]Hier[/url] vond ik een tutorial over het maken van een eenvoudige searchengine die door keywords in een database zoekt. Veel errors heb ik er al uitgevist, maar nu loop ik ff vast bij de volgende:
dit is het script:
Naar mijn idee is dit gewoon goed, de syntax klopt en de variabele $reg_ex wordt precies zo opgebouwd als in de tutorial, hoewel ik toch denk dat hier de fout zit. heeft iemand enig idee wat hier de fout kan zijn?
[sorry, om de een of andere reden worden extra line-breaks niet weergegeven, wordt de code niet duidelijker op]
code:
1
2
| Couldn't execute query [1064]: You have an error in your SQL syntax near '[(test)(test2)]) GROUP BY keyword_list.page_id ORDER BY score DESC' at line 7 |
dit is het script:
PHP:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
| <? $dbinfo = array("host" => "localhost", "user" => "root", "pass" => "ietsanders", "database" => "mydb", "keywords" => "keywords_list", "desc" => "page_data"); function search($db, $query_terms) { $matches = array(); $db_h = mysql_connect($db['host'], $db['user'], $db['pass']); if (!$db_h) { $error = "Couldn't connect to MySQL database [" . mysql_errno() . "]: "; $error .= mysql_error(); return $error; } mysql_select_db("jokes"); $keywords = explode(' ', addslashes(strtolower($query_terms))); $reg_ex = "[(" . implode(")(", $keywords) . ")]"; $query = "SELECT count(keyword_list.key_id) as score, page_data.url as url, page_data.title as title, page_data.description as description FROM keyword_list, page_data WHERE (page_data.page_id = keyword_list.page_id) AND (keyword_list.sleutel REGEXP $reg_ex) GROUP BY keyword_list.page_id ORDER BY score DESC"; $query_h = mysql_query($query, $db_h); if (!$query_h) { $error = "Couldn't execute query [" . mysql_errno($db_h) . "]: "; $error .= mysql_error($db_h); return $error; } while($row = mysql_fetch_array($query_h)) { array_push($matches, $row); } echo $matches; } $val = search($dbinfo, "test test2"); if(is_string($val)) die ($val); // print the contents of the $val array ?> |
Naar mijn idee is dit gewoon goed, de syntax klopt en de variabele $reg_ex wordt precies zo opgebouwd als in de tutorial, hoewel ik toch denk dat hier de fout zit. heeft iemand enig idee wat hier de fout kan zijn?
[sorry, om de een of andere reden worden extra line-breaks niet weergegeven, wordt de code niet duidelijker op]
Zolang ik het zelf geloof is het goed toch?