Zoekfunctie meerdere database
ik zit momenteel met het probleem dat ik niet in 1 datebase in gebruik heb die moet worden doorzocht maar 4 stuks
en elke datebase heeft weer een apparte pagina waar de data uitgehaald word dus.
script 1 word de gebruikt database 1 om de data te laten zien
maar script 2 gebruikt database 2 om de data te laten zien
dus er zijn telkens weer verschillende links die gebruikt worden om de pagina's op te vragen.
Code (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
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
<?php
//maximaal aantal zoek resultaten
$max_query = 10;
$max_resultaat_lengte = 30;
$substr_vs_suggestie = false;
$min_input = 3;
include("config.php");
$eind_chars = array(
" ", //spatie
".", //punt
",", //komma
"/", //fw slash
"\\", //backwards slash
"\"", //double quote
"'", //single quote
"<",
">",
"?",
"=",
"&");
if(!empty($_GET['zoekwoord']) && strlen($_GET['zoekwoord']) >= $min_input)
{
$zoekwoord = mysql_real_escape_string($_GET['zoekwoord']);
$qry = mysql_query("SELECT DISTINCT(mop),
SUBSTR(mop, LOCATE('".$zoekwoord."', tekst ), ".$max_resultaat_lengte." ) as tekst_gedeelte,
id
FROM
tekst
WHERE
tekst
LIKE '%".$zoekwoord."%'
LIMIT ".$max_query) or die(mysql_error());
//$eindwoord = $max_resultaat_lengte;
while($res = mysql_fetch_array($qry))
{
$gevonden = stripslashes($res['tekst_gedeelte']);
$index = array();
if(!$substr_vs_suggestie)
{
//mogelijke "einde(s)" opduikelen
for($i = 0; $i < count($eind_chars); $i++)
{
$pos = strpos($gevonden, $eind_chars[$i]) ;
if($pos)
{
array_push($index, $pos);
}
}
//eerste "einde" vooraan zetten
sort($index);
}
//lengte van onze "suggestie" string bepalen
$max_resultaat_lengte = (count($index) > 0) ? $index[0] : $max_resultaat_lengte;
$link = htmlentities(substr($gevonden, 0, $max_resultaat_lengte));
?>
//maximaal aantal zoek resultaten
$max_query = 10;
$max_resultaat_lengte = 30;
$substr_vs_suggestie = false;
$min_input = 3;
include("config.php");
$eind_chars = array(
" ", //spatie
".", //punt
",", //komma
"/", //fw slash
"\\", //backwards slash
"\"", //double quote
"'", //single quote
"<",
">",
"?",
"=",
"&");
if(!empty($_GET['zoekwoord']) && strlen($_GET['zoekwoord']) >= $min_input)
{
$zoekwoord = mysql_real_escape_string($_GET['zoekwoord']);
$qry = mysql_query("SELECT DISTINCT(mop),
SUBSTR(mop, LOCATE('".$zoekwoord."', tekst ), ".$max_resultaat_lengte." ) as tekst_gedeelte,
id
FROM
tekst
WHERE
tekst
LIKE '%".$zoekwoord."%'
LIMIT ".$max_query) or die(mysql_error());
//$eindwoord = $max_resultaat_lengte;
while($res = mysql_fetch_array($qry))
{
$gevonden = stripslashes($res['tekst_gedeelte']);
$index = array();
if(!$substr_vs_suggestie)
{
//mogelijke "einde(s)" opduikelen
for($i = 0; $i < count($eind_chars); $i++)
{
$pos = strpos($gevonden, $eind_chars[$i]) ;
if($pos)
{
array_push($index, $pos);
}
}
//eerste "einde" vooraan zetten
sort($index);
}
//lengte van onze "suggestie" string bepalen
$max_resultaat_lengte = (count($index) > 0) ? $index[0] : $max_resultaat_lengte;
$link = htmlentities(substr($gevonden, 0, $max_resultaat_lengte));
?>
<a href="?pagina=weergeventekst.php&id="></a><br />
Omschrijf duidelijk waar je tegen aanloopt, dus beantwoord vragen als
waar je stuk op loopt
waarom je gekozen hebt om het een en ander in 4 of meer op te slaan
en zet je code hier tussen de blokken
Jelee, bedoel je daadwerkelijk 4 databases, of 4 verschillende tabellen in een database. Een wezenlijk verschil! (en 2de situatie is logischer)
@noppes
Ik moet mijn script aanpassen zodat er meerdere tabelen in de datebase worden doorzocht.
als ik bijvoorbeeld in tabel 1 zoek moet de link worden script1.php?id=
en als ik bijvoorbeeld in tabel 2 zoek moet de link worden script2.php?id=
En waarom zo moeilijk doen je kan het afdoen met 1 script en daar mag je dan eens diep over nadenken hoe je dat voor elkaar kan krijgen.