Zoeken in de database
Wie kan en wil mij daarbij helpen?
Ik heb hier en daar al iets aan gepast, hier de volgende fouten:
Warning: main(connection.php): failed to open stream: No such file or directory in /home/radiobood/www/2.php on line 108
Warning: main(): Failed opening 'connection.php' for inclusion (include_path='.:/usr/share/pear') in /home/radiobood/www/2.php on line 108
Let wel ik ben een beginner en weet dus nog zeer weinig over PHP, wel als redelijk veel gelezen en geprobeerd.
In de datavase heb ik de volgende kolommen: ID, Soort, Merk, Chassis, Klacht en Oplossing.
Ik denk dat ik meer heb aan uitel dan een kant en klaar script.
Hier het script wat ik nu heb:
========================= zoekenInvoer.php ============================================
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<HTML>
<BODY BGCOLOR=#E0FFFF>
<form method="post" action="../WINDOWS/Desktop/zoekenUitvoer.php?optie=zoeken">
<table>
<tr>
<td valign="top"><b>Zoeken op:</b></td>
<td> <select name="opZoeken">
<option value="0">vraag
<option value="1">antwoord
<option value="2">vraag en antwoord </select></td>
</tr>
<tr>
<td valign="top"><b>Zoekwoorden:</b></td>
<td><input type="text" name="zoektermen" size="30"> Verschillende zoekwoorden scheiden met spaties.</td>
</tr>
<tr>
<td><b>Hoe wilt u zoeken?</b></td>
<td>
<select name="optieZoeken">
<option value="0">alle zoekwoorden (AND)
<option value="1">enige zoekwoorden (OR)
</select>
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="zoeken"></td>
</tr>
</table>
</form>
</BODY>
</HTML>
========================= connection.php ===============================================
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
function verbindt()
{
@mysql_connect("localhost","test","test") or Die (mysql_error()); //login gegevens
@mysql_select_db("reparatie",$db) or Die ("Error: " . mysql_error()); //database selectie
}
?>
function verbindt()
{
@mysql_connect("localhost","test","test") or Die (mysql_error()); //login gegevens
@mysql_select_db("reparatie",$db) or Die ("Error: " . mysql_error()); //database selectie
}
?>
======================= zoekenUitvoer.php ============================================
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY BGCOLOR=#E0FFFF>
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?php
include("connection.php"); //script die de verbinding met uw database maakt
verbindt();
echo "<table align=left><TR>";
function get_search_query($keywords,$table_name,$sort_column,$search_columns,$search_method) {
/* $search_columns moet een array zijn */
/* $search_method kan OR of AND */
/* Verwijder onnodige spaties en +/- tekens uit de string */ $keywords = trim($keywords);
$keywords = ereg_replace ('\+', "", $keywords);
$keywords = ereg_replace ('\-', "", $keywords);
while (ereg(' ',$keywords)) {
$keywords = ereg_replace(' ',' ',$keywords);
}
/* Converteer de keywords naar een array en stel variabelen in */
$keywords = explode(' ',$keywords);
$num_keywords = count($keywords);
$num_searchcolumn = count($search_columns);
$search_method = strtoupper($search_method);
/* Maak de query */
$query = "SELECT * FROM $reparatie WHERE ";
for ($i =0; $i < $num_keywords; $i++)
{
if ($i != 0)
$query .= "$search_method ";
$stringWoord = $keywords[$i];
for ($j = 0; $j < $num_searchcolumn; $j++)
{
if ($j == 0)
$query .= "( ";
if ($j != 0)
$query .= "OR ";
$kolom = $search_columns[$j];
$query .= "$kolom LIKE '%$stringWoord%' ";
}
$query .= ") ";
}
$query .= "ORDER BY '$sort_column' ASC";
return $query;
}
$Merk = array ('vraag', 'antwoord'); //vul hier en op de 3de en 5de regel hieronder de velden waarop gezocht moet kunnen worden
if ($_POST['opZoeken']==0)
$Merk = array('vraag');
else if ($_POST['opZoeken']==1)
$Merk = array('antwoord');
$keywords= $_POST['zoektermen'];
$reparatie='vragen'; //vervangen door de tabelnaam waarop query moet gebeuren
$postTypeZoeken = $_POST['optieZoeken'];
$typeZoeken="";
if ($postTypeZoeken == 0)
$typeZoeken = "AND";
else
$typeZoeken = "OR";
$querySearch = get_search_query($keywords,$table_name,'rubriek',$search_columns,$typeZoeken); //rubriek is de veldnaam waarop gesorteerd wordt. Pas deze evt. aan.
$result = mysql_query($querySearch) or die("Probs query zoeken");
$resultaten = mysql_num_rows($result); //aantal resultaten kun je in de regel eronder gebruiken
echo "<tr><td><font face=arial size=2><B>We hebben $resultaten resultaten in onze database gevonden:<P></td></tr>";
while($row=mysql_fetch_object($result))
{
echo "<tr><td><font face=arial size=2 color=black><B>Rubriek: $row->rubriek</B></td><tr><td><font face=arial size=2 color=blue><B>$row->vraag</B></td><tr><td><font face=arial size=2>$row->antwoord<P><HR width=100%></td></tr>";
}
?>
include("connection.php"); //script die de verbinding met uw database maakt
verbindt();
echo "<table align=left><TR>";
function get_search_query($keywords,$table_name,$sort_column,$search_columns,$search_method) {
/* $search_columns moet een array zijn */
/* $search_method kan OR of AND */
/* Verwijder onnodige spaties en +/- tekens uit de string */ $keywords = trim($keywords);
$keywords = ereg_replace ('\+', "", $keywords);
$keywords = ereg_replace ('\-', "", $keywords);
while (ereg(' ',$keywords)) {
$keywords = ereg_replace(' ',' ',$keywords);
}
/* Converteer de keywords naar een array en stel variabelen in */
$keywords = explode(' ',$keywords);
$num_keywords = count($keywords);
$num_searchcolumn = count($search_columns);
$search_method = strtoupper($search_method);
/* Maak de query */
$query = "SELECT * FROM $reparatie WHERE ";
for ($i =0; $i < $num_keywords; $i++)
{
if ($i != 0)
$query .= "$search_method ";
$stringWoord = $keywords[$i];
for ($j = 0; $j < $num_searchcolumn; $j++)
{
if ($j == 0)
$query .= "( ";
if ($j != 0)
$query .= "OR ";
$kolom = $search_columns[$j];
$query .= "$kolom LIKE '%$stringWoord%' ";
}
$query .= ") ";
}
$query .= "ORDER BY '$sort_column' ASC";
return $query;
}
$Merk = array ('vraag', 'antwoord'); //vul hier en op de 3de en 5de regel hieronder de velden waarop gezocht moet kunnen worden
if ($_POST['opZoeken']==0)
$Merk = array('vraag');
else if ($_POST['opZoeken']==1)
$Merk = array('antwoord');
$keywords= $_POST['zoektermen'];
$reparatie='vragen'; //vervangen door de tabelnaam waarop query moet gebeuren
$postTypeZoeken = $_POST['optieZoeken'];
$typeZoeken="";
if ($postTypeZoeken == 0)
$typeZoeken = "AND";
else
$typeZoeken = "OR";
$querySearch = get_search_query($keywords,$table_name,'rubriek',$search_columns,$typeZoeken); //rubriek is de veldnaam waarop gesorteerd wordt. Pas deze evt. aan.
$result = mysql_query($querySearch) or die("Probs query zoeken");
$resultaten = mysql_num_rows($result); //aantal resultaten kun je in de regel eronder gebruiken
echo "<tr><td><font face=arial size=2><B>We hebben $resultaten resultaten in onze database gevonden:<P></td></tr>";
while($row=mysql_fetch_object($result))
{
echo "<tr><td><font face=arial size=2 color=black><B>Rubriek: $row->rubriek</B></td><tr><td><font face=arial size=2 color=blue><B>$row->vraag</B></td><tr><td><font face=arial size=2>$row->antwoord<P><HR width=100%></td></tr>";
}
?>
</table>
</BODY>
</HTML>
Vr. groeten,
Gerard
Er is hier waarschijnlijk niemand die het hele script gaat zitten bekijken en dan nog eens tellen tot regel 108.
Verder staat er in de foutmelding dat de error in 2.php zit. Die staat hier dus niet tussen de scripts die jij heb gepost. Hier kan ik dus niets mee.
Warning: main(): Failed opening 'connection.php' for inclusion (include_path='.:/usr/share/pear') in /home/radiobood/www/2.php on line 108
Ok, er wordt in je bestand 2.php dus connection.php geinclude, maar die bestaat niet.
Als je die dus aanmaakt, of je verwijderd de include, heb je deze error niet meer.