Ik heb een database welke ik wil queryen. In de voorbeeldcode staat het volgende als "SQL output" welke het script gebruikt als voorbeeld-database.
Dit is natuurlijk verre van handig omdat dat alle regels worden ingelezen en er daarna pas een selectie gemaakt wordt van wat er nodig is in het script.
Je wil dus een database gaan queryen zoals ik eerder ook al aangaf.
Dit is het volledige script overigens waar de SQL code al in stond:
Ik kwam er achter dat de output van een var_dump($search_engine) erg vreemd is. Dit is geen normale array of iets dergelijks, hier loop ik dus vast.
Ik weet van de ontwikkelaar dat hij aangeeft dat je een PHPclass moet gebruiken om je MySQL output om te zetten naar JSON, dit vind ik echter wat vreemd aangezien ik hier toch geen JSON zie en er duidelijk een soort van query gedaan wordt welke onduidelijk is.
Ik heb even wat overleg gehad met andere PHP-prutsers en die vonden het ook al een rare output van de dump, dus ik wil jullie opinie eens vragen wat hier mee te doen.
Waar bovenstaan de code uitendelijk voor gebruikt wordt is om aan de hand van de landennaam de verdere informatie te gebruiken in een dropdown, dit kun je dus ook met een query doen... echter moet ik wel een output hebben die uiteindelijk als de huidige $search_engine naar buiten komt.
Waarom er trouwen een userselect gedaan wordt weet ik niet maar dit is om de gebruiker wat wijs te maken met de mogelijke query denk ik welke gewoon ergens uit gevist is.
code:
1
2
3
4
| $country_list = '"Sort Order","Common Name","Formal Name","Type","Sub Type","Sovereignty","Capital","ISO 4217 Currency Code","ISO 4217 Currency Name","ITU-T Telephone Code","ISO 3166-1 2 Letter Code","ISO 3166-1 3 Letter Code","ISO 3166-1 Number","IANA Country Code TLD" "1","Afghanistan","Islamic State of Afghanistan","Independent State",,,"Kabul","AFN","Afghani","+93","AF","AFG","004",".af" "2","Albania","Republic of Albania","Independent State",,,"Tirana","ALL","Lek","+355","AL","ALB","008",".al" ' ; |
Dit is natuurlijk verre van handig omdat dat alle regels worden ingelezen en er daarna pas een selectie gemaakt wordt van wat er nodig is in het script.
Je wil dus een database gaan queryen zoals ik eerder ook al aangaf.
Dit is het volledige script overigens waar de SQL code al in stond:
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
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
| /** * Plugin for search_engine * Do search on world countries * */ #@ Detect if loaded by search_engine if ( ! SEARCHENGINE_LOADED ) return false; #@ Category Name $searchCat_name = 'Countries' ; #@ Do search $databaseConnect = mysql_connect("192.168.x.x", "user", "password") Or die("Unable to connect to the database."); mysql_select_db("table", $databaseConnect); $sql = 'SELECT * FROM users LIKE "%'.$search_engine['options']['input'].'%" ORDER BY users.lastname LIMIT 0, '.$search_engine['options']['search_limit'] ; _dumpLog("Search : query =>\n $sql \n", 0) ; $db->query($sql) ; /* #@ For example, simule return sql request $country_list = '"Sort Order","Common Name","Formal Name","Type","Sub Type","Sovereignty","Capital","ISO 4217 Currency Code","ISO 4217 Currency Name","ITU-T Telephone Code","ISO 3166-1 2 Letter Code","ISO 3166-1 3 Letter Code","ISO 3166-1 Number","IANA Country Code TLD" "1","Afghanistan","Islamic State of Afghanistan","Independent State",,,"Kabul","AFN","Afghani","+93","AF","AFG","004",".af" "2","Albania","Republic of Albania","Independent State",,,"Tirana","ALL","Lek","+355","AL","ALB","008",".al" ' ; */ #@ Transform txt in array $country_list = str_replace("\"", '', $country_list) ; $country_list = explode("\n", $country_list) ; for ( $i = 1 ; $i < count($country_list) ; $i++ ) { // Explode each lines $elements = explode(',', $country_list[$i]) ; // Get elements to search and display $id = "countries_".trim($elements[0]) ; $common_name = trim($elements[1]) ; $formal_name = trim($elements[2]) ; $capital = trim($elements[6]) ; $code = trim($elements[11]) ; // Search on elements if ( preg_match('/'.$search_engine['options']['input'].'/i', $common_name) OR preg_match('/'.$search_engine['options']['input'].'/i', $code) ) { // To display $results['value'] = utf8_encode($common_name). ' ('.utf8_encode($code).')'; $results['info'] = utf8_encode($capital) ; // Store result $search_engine['results'][$searchCat_name][$id] = $results ; } } |
Ik kwam er achter dat de output van een var_dump($search_engine) erg vreemd is. Dit is geen normale array of iets dergelijks, hier loop ik dus vast.
Ik weet van de ontwikkelaar dat hij aangeeft dat je een PHPclass moet gebruiken om je MySQL output om te zetten naar JSON, dit vind ik echter wat vreemd aangezien ik hier toch geen JSON zie en er duidelijk een soort van query gedaan wordt welke onduidelijk is.
Ik heb even wat overleg gehad met andere PHP-prutsers en die vonden het ook al een rare output van de dump, dus ik wil jullie opinie eens vragen wat hier mee te doen.
Waar bovenstaan de code uitendelijk voor gebruikt wordt is om aan de hand van de landennaam de verdere informatie te gebruiken in een dropdown, dit kun je dus ook met een query doen... echter moet ik wel een output hebben die uiteindelijk als de huidige $search_engine naar buiten komt.
Waarom er trouwen een userselect gedaan wordt weet ik niet maar dit is om de gebruiker wat wijs te maken met de mogelijke query denk ik welke gewoon ergens uit gevist is.