.........www.raketje.com....................soon.....
Digitaal onderwijsmateriaal, leermateriaal voor hbo
Verwijderd
Je hebt dus een zoekscript gemaakt, waar zoek je in, in een DB? Zoja, hoe ziet je SELECT query er uit?
Van welk type is het veld waarop je zoekt,
etc etc....
Misschien kan je eens de P&W Quickstart lezen?
* whoami heeft hem niet.curry684 schreef op 06 oktober 2003 @ 20:11:
* curry684 zoekt z'n glazen bol zodat ie bekkel's code kan zien... d'oh! Die's kwijt!
* whoami is innocent.
[ Voor 34% gewijzigd door whoami op 06-10-2003 20:13 ]
https://fgheysels.github.io/
$string is het veld waar de gebruiker zijn zoekwoorden heeft ingevuld
1
2
 | $q_array=explode(" ", $string);
$q_num=(integer)count($q_array); | 
De WHERE (hier file_name) wordt opgebouwd door de uitkomste achter elkaar te zetten.
1
 | $andnr .= "AND file_name LIKE '%$q_array[$i]%' ";  | 
error:
paFileDB was unable to successfully run a MySQL query.
MySQL Returned this error: You have an error in your SQL syntax near '' at line 1 Error number: 1064
The query that caused this error was: SELECT * FROM pahack_files WHERE
.........www.raketje.com....................soon.....
En aan je snelle code is ook niet echt een touw vast te knopen
|>
(wel als je op die 0 zoekt dan hè)
Kom je er dan nog niet uit, post de query dan ff, kunnen wij er ff naar kijken.
als ik enkel 0 invul krijg je zo een query:
1
 | $result = $pafiledb_sql->query($db, "SELECT * FROM $db[prefix]_files WHERE $andnr", 0);  | 
waarbij $andnr leeg is, als ik enkel op 0 zoek.
Dit heb ik nu afgevangen door eerst $andnr te controleren of deze bestaat.
de code is: (kort samengevat)
1
2
3
4
5
6
7
8
9
10
 | if (!$string3=="")  {
   $i=0
   $q_array=explode(" ", $string);
   $q_num=(integer)count($q_array);
   while ($i < $q_num) {
      $andnr .= "AND (file_name LIKE '%$q_array[$i]%' ) ";
   }
$result = $pafiledb_sql->query($db, "SELECT * FROM $db[prefix]_files WHERE $andnr", 0);
} | 
de AND wordt afgevangen als dit nodig is.
.........www.raketje.com....................soon.....
|>
echo $q_array[$i]; levert niks op.
als ik op 0 en e zoek dan doet ie het wel goed. dan zoekt ie zowel op 0 en e.
.........www.raketje.com....................soon.....
Want je krijgt dan iets als WHERE AND file_name LIKE ...
Verder zal dit wel fout gaan op een verkapte vorm van empty(), namelijk zoiets:
if (!$string3=="") {
Als ik echter puur de string 0 explode, dan krijg ik minstens 1 waarde en zou er toch echt wat in je $andstr moeten zitten:
1
2
3
4
5
6
7
 | <? print_r(explode(' ', 0)); ?> Array ( [0] => 0 )  | 
Dus je zult nog even wat beter moeten debuggen voor je de boel op kan lossen.
[ Voor 3% gewijzigd door ACM op 07-10-2003 00:36 ]
Want je krijgt dan iets als WHERE AND file_name LIKE ...
the eerste AND wordt afgevangen dus dat is niet het probleem..
ik zal eens verder naar de verkapte vorm van empyt() kijken....
thanks
[ Voor 3% gewijzigd door bekkel op 07-10-2003 09:23 ]
.........www.raketje.com....................soon.....