Zoeken in meerdere tabellen
Pagina: « vorige 1 2 3 volgende »
ik snap wel dat het een aanvulling is,
maar kom er even niet uit...
inplaats van dat hij die sql uitvoert print hij hem gewoon op de site...
en na het zoeken komt er dus gewoon die "sql" te staan...
@lauren,
de mogelijkheid om vinkjes weg te halen in de checkboxxen moet wel blijven bestaan,
dus die code zoek ik niet helemaal...
om te zorgen dat als er checkboxxen uitgevinkt worden,
er niet meer op die categorie gezocht wordt?
mijn dank is enorm!
if (isset($_POST['checkbox1']))
Misschien een cursus door lopen want dit is heel basic.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//de query uitvoeren
$sql = mysql_query("SELECT * FROM
if (isset($_POST['Categorie']))
{ echo "categorie"}
if (isset($_POST['Logboek']))
{ echo ",logboek"}
if (isset($_POST['Omschrijving_cat']))
{echo "WHERE Categorie LIKE '%$zoekterm%'"}
if (isset($_POST['Omschrijving_log']))
{OR Omschrijving LIKE '%$zoekterm%'}
echo "LIMIT 0, 3 ") or die(mysql_error());"
?>
//de query uitvoeren
$sql = mysql_query("SELECT * FROM
if (isset($_POST['Categorie']))
{ echo "categorie"}
if (isset($_POST['Logboek']))
{ echo ",logboek"}
if (isset($_POST['Omschrijving_cat']))
{echo "WHERE Categorie LIKE '%$zoekterm%'"}
if (isset($_POST['Omschrijving_log']))
{OR Omschrijving LIKE '%$zoekterm%'}
echo "LIMIT 0, 3 ") or die(mysql_error());"
?>
maar er klopt volgens mij niets van!
Dat klopt helemaal niet neaj. Je kan als ik het goed heb geen if(isset in query uitvoeren. En aan de kleurtjes kan je zien dat het script al niet klopt..
maar een soorgelijke code werdt mij hier gegeven,
ik heb even geen idee hoe ik verder moet zoeken?
Vaak duidelijker en minder kans op fouten.
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
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
<?php
//de query maken
if(isset($_POST['categorie'])){$cat = true;}
if(isset($_POST['logboek'])){$log = true;}
// beide
if($cat AND $log)
{
$tabellen = "categorie AS c, logboek AS l";
$where = " c.categorie LIKE %".mysql_real_escape_string($_POST['Omschrijving_cat'])."%
OR l.omschrijving LIKE %".mysql_real_escape_string($_POST['Omschrijving_log'])."% ";
}
// alleen categorie
if($cat AND !$log)
{
$tabellen = "categorie AS c";
$where = "c.categorie LIKE %".mysql_real_escape_string($_POST['Omschrijving_cat'])."% ";
}
// alleen logboek
if(!$cat AND $log)
{
$tabellen = "logboek AS l";
$where = "l.omschrijving LIKE %".mysql_real_escape_string($_POST['Omschrijving_log'])."% ";
}
// samenvoegen
$sql = "SELECT l.*, c.*
FROM " . $tabellen . "
WHERE " . $where . "
LIMIT 0, 3
ORDER BY l.id, c.id
";
// query dit en laat hem script anders sterven
$sql = mysql_query($sql) or die(mysql_error());
?>
//de query maken
if(isset($_POST['categorie'])){$cat = true;}
if(isset($_POST['logboek'])){$log = true;}
// beide
if($cat AND $log)
{
$tabellen = "categorie AS c, logboek AS l";
$where = " c.categorie LIKE %".mysql_real_escape_string($_POST['Omschrijving_cat'])."%
OR l.omschrijving LIKE %".mysql_real_escape_string($_POST['Omschrijving_log'])."% ";
}
// alleen categorie
if($cat AND !$log)
{
$tabellen = "categorie AS c";
$where = "c.categorie LIKE %".mysql_real_escape_string($_POST['Omschrijving_cat'])."% ";
}
// alleen logboek
if(!$cat AND $log)
{
$tabellen = "logboek AS l";
$where = "l.omschrijving LIKE %".mysql_real_escape_string($_POST['Omschrijving_log'])."% ";
}
// samenvoegen
$sql = "SELECT l.*, c.*
FROM " . $tabellen . "
WHERE " . $where . "
LIMIT 0, 3
ORDER BY l.id, c.id
";
// query dit en laat hem script anders sterven
$sql = mysql_query($sql) or die(mysql_error());
?>
Gewijzigd op 01/01/1970 01:00:00 door Eddy E
en krijg deze error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE LIMIT 0, 3 ORDER BY l.id, c.id' at line 3
Er staat niets achter WHERE .....
is e rnu uit,
maar hij geeft n gewoon een blanco pagina,
zonder foutmelding!
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
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
<?php
include('gegevens.php');
//ff kijken of er op verzenden gedrukt is...
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
//variable zoekterm aanmaken waarin de zoekterm staat + nog wat beveiliging
$zoekterm = mysql_real_escape_string(addslashes(trim($_POST['zoekterm'])));
//even checken of er wel genoeg karakters zijn ingevoerd. Zoniet, maar de variable error aan met een boodschap
if(strlen($zoekterm) < 1)
{
$error = '<p>Je moet wel een zoekterm invoeren.</p>';
//hier checken we dus of de variable error bestaat
if(isset($error))
{
//ja hij bestaat... echo'en met die hap
echo $error;
}
}
//wanneer er GEEN error is en er dus meerdere tekens zijn opggegeven
else
{
//de query uitvoeren
//de query maken
if(isset($_POST['categorie'])){$cat = true;}
if(isset($_POST['logboek'])){$log = true;}
// beide
if($cat AND $log)
{
$tabellen = "categorie AS c, logboek AS l";
$where = " c.Categorie LIKE %".mysql_real_escape_string($_POST['Omschrijving_cat'])."%
OR l.Omschrijving LIKE %".mysql_real_escape_string($_POST['Omschrijving_log'])."% ";
}
// alleen categorie
if($cat AND !$log)
{
$tabellen = "categorie AS c";
$where = "c.Categorie LIKE %".mysql_real_escape_string($_POST['Omschrijving_cat'])."% ";
}
// alleen logboek
if(!$cat AND $log)
{
$tabellen = "logboek AS l";
$where = "l.Omschrijving LIKE %".mysql_real_escape_string($_POST['Omschrijving_log'])."% ";
}
// samenvoegen
$sql = "SELECT l.*, c.*
FROM " . $tabellen . "
WHERE " . $where . "
LIMIT 0, 3
ORDER BY l.id, c.id
";
$aantal = mysql_num_rows($sql) or die(mysql_error());
echo ($aantal == 1) ? $aantal.' resultaat gevonden <br><br>' : $aantal.' resultaten gevonden <br><br>';
echo "de opgegeven zoekterm was: <b> $zoekterm </b><br><br>";
//en de while loop wordt gestart om alles uit de database te laten zien
echo '<hr size="1" color="black">';
while($row = mysql_fetch_array($sql))
{
$sql1 = mysql_query("SELECT * FROM relatie WHERE id = '".$row['c_id']."'") or die(mysql_error());
$Categorie = $row['Categorie'];
$Date = $row['Date'];
$id = $row['id'];
$Omschrijving = substr($row['Omschrijving'], 0, 15);
while($row = mysql_fetch_array($sql1))
echo '<table border="1" width="300"><tr><th width="60">Naam: </th><td>'.$row['Naam'].'</td></tr><br>';
echo '<th>Datum: </th><td>'.$Date.'</td></tr><br>';
echo '<th>Categorie: </th><td><a href="res_categorie.php?id='.$id.'">'.$Categorie.'</a></td></tr><br>';
echo '<th>Omschrijving: </th><td>'.$Omschrijving.'</td></tr></table><br><hr size="1" color="black">';
}
}
}
//er is nog niet op verzenden gedrukt. Show het formulier maar!!
else
{ ?>
<form action="categorie.php" method="post">
<INPUT TYPE=CHECKBOX NAME="Categorie" checked>Categorie
<INPUT TYPE=CHECKBOX NAME="Omschrijving_cat" checked>Categorie omschrijving<BR>
<INPUT TYPE=CHECKBOX NAME="Logboek" checked>Logboek
<INPUT TYPE=CHECKBOX NAME="Omschrijving_log" checked>Logboek omschrijving<P>
<input type="text" name="zoekterm"><br>
<input type="submit" value="Zoeken">
</form>
<br><br>
<a href="javascript:history.go(-1);">« Ga terug</a>
<?php
}
?>
include('gegevens.php');
//ff kijken of er op verzenden gedrukt is...
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
//variable zoekterm aanmaken waarin de zoekterm staat + nog wat beveiliging
$zoekterm = mysql_real_escape_string(addslashes(trim($_POST['zoekterm'])));
//even checken of er wel genoeg karakters zijn ingevoerd. Zoniet, maar de variable error aan met een boodschap
if(strlen($zoekterm) < 1)
{
$error = '<p>Je moet wel een zoekterm invoeren.</p>';
//hier checken we dus of de variable error bestaat
if(isset($error))
{
//ja hij bestaat... echo'en met die hap
echo $error;
}
}
//wanneer er GEEN error is en er dus meerdere tekens zijn opggegeven
else
{
//de query uitvoeren
//de query maken
if(isset($_POST['categorie'])){$cat = true;}
if(isset($_POST['logboek'])){$log = true;}
// beide
if($cat AND $log)
{
$tabellen = "categorie AS c, logboek AS l";
$where = " c.Categorie LIKE %".mysql_real_escape_string($_POST['Omschrijving_cat'])."%
OR l.Omschrijving LIKE %".mysql_real_escape_string($_POST['Omschrijving_log'])."% ";
}
// alleen categorie
if($cat AND !$log)
{
$tabellen = "categorie AS c";
$where = "c.Categorie LIKE %".mysql_real_escape_string($_POST['Omschrijving_cat'])."% ";
}
// alleen logboek
if(!$cat AND $log)
{
$tabellen = "logboek AS l";
$where = "l.Omschrijving LIKE %".mysql_real_escape_string($_POST['Omschrijving_log'])."% ";
}
// samenvoegen
$sql = "SELECT l.*, c.*
FROM " . $tabellen . "
WHERE " . $where . "
LIMIT 0, 3
ORDER BY l.id, c.id
";
$aantal = mysql_num_rows($sql) or die(mysql_error());
echo ($aantal == 1) ? $aantal.' resultaat gevonden <br><br>' : $aantal.' resultaten gevonden <br><br>';
echo "de opgegeven zoekterm was: <b> $zoekterm </b><br><br>";
//en de while loop wordt gestart om alles uit de database te laten zien
echo '<hr size="1" color="black">';
while($row = mysql_fetch_array($sql))
{
$sql1 = mysql_query("SELECT * FROM relatie WHERE id = '".$row['c_id']."'") or die(mysql_error());
$Categorie = $row['Categorie'];
$Date = $row['Date'];
$id = $row['id'];
$Omschrijving = substr($row['Omschrijving'], 0, 15);
while($row = mysql_fetch_array($sql1))
echo '<table border="1" width="300"><tr><th width="60">Naam: </th><td>'.$row['Naam'].'</td></tr><br>';
echo '<th>Datum: </th><td>'.$Date.'</td></tr><br>';
echo '<th>Categorie: </th><td><a href="res_categorie.php?id='.$id.'">'.$Categorie.'</a></td></tr><br>';
echo '<th>Omschrijving: </th><td>'.$Omschrijving.'</td></tr></table><br><hr size="1" color="black">';
}
}
}
//er is nog niet op verzenden gedrukt. Show het formulier maar!!
else
{ ?>
<form action="categorie.php" method="post">
<INPUT TYPE=CHECKBOX NAME="Categorie" checked>Categorie
<INPUT TYPE=CHECKBOX NAME="Omschrijving_cat" checked>Categorie omschrijving<BR>
<INPUT TYPE=CHECKBOX NAME="Logboek" checked>Logboek
<INPUT TYPE=CHECKBOX NAME="Omschrijving_log" checked>Logboek omschrijving<P>
<input type="text" name="zoekterm"><br>
<input type="submit" value="Zoeken">
</form>
<br><br>
<a href="javascript:history.go(-1);">« Ga terug</a>
<?php
}
?>
op deze manier hoort hij toch ook te werken?
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
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
if(isset($_POST['Categorie'])){$cat = true;}
if(isset($_POST['Logboek'])){$log = true;}
// beide
if($cat AND $log)
{
$tabellen = "categorie, logboek ";
$where = "Categorie LIKE '%$zoekterm%'
OR Omschrijving LIKE '%$zoekterm%' ";
}
// alleen categorie
if($cat AND !$log)
{
$tabellen = "categorie";
$where = "Categorie LIKE '%$zoekterm%' ";
}
// alleen logboek
if(!$cat AND $log)
{
$tabellen = "logboek";
$where = "Omschrijving LIKE '%$zoekterm%' ";
}
// samenvoegen
$sql = "SELECT *
FROM " . $tabellen . "
WHERE " . $where . "
ORDER BY l.id, c.id
";
if(isset($_POST['Logboek'])){$log = true;}
// beide
if($cat AND $log)
{
$tabellen = "categorie, logboek ";
$where = "Categorie LIKE '%$zoekterm%'
OR Omschrijving LIKE '%$zoekterm%' ";
}
// alleen categorie
if($cat AND !$log)
{
$tabellen = "categorie";
$where = "Categorie LIKE '%$zoekterm%' ";
}
// alleen logboek
if(!$cat AND $log)
{
$tabellen = "logboek";
$where = "Omschrijving LIKE '%$zoekterm%' ";
}
// samenvoegen
$sql = "SELECT *
FROM " . $tabellen . "
WHERE " . $where . "
ORDER BY l.id, c.id
";
alleen deze geeft ook witte pagina,
Gewijzigd op 01/01/1970 01:00:00 door Jaap V
Code (php)
1
2
3
4
2
3
4
<INPUT TYPE=CHECKBOX NAME="Categorie" checked>Categorie
<INPUT TYPE=CHECKBOX NAME="Omschrijving_cat" checked>Categorie omschrijving<BR>
<INPUT TYPE=CHECKBOX NAME="Logboek" checked>Logboek
<INPUT TYPE=CHECKBOX NAME="Omschrijving_log"
<INPUT TYPE=CHECKBOX NAME="Omschrijving_cat" checked>Categorie omschrijving<BR>
<INPUT TYPE=CHECKBOX NAME="Logboek" checked>Logboek
<INPUT TYPE=CHECKBOX NAME="Omschrijving_log"
Dit staat niet helemaal netjes
doe iets als dit
TIP: gebruik in een input type geen hoofdletters. Daarmee bedoel ik name="Hoofdletter" Dit kan verwarrend zijn en tot fouten leiden.
voor de rest zie ik ook dit
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = "SELECT l.*, c.*
FROM " . $tabellen . "
WHERE " . $where . "
LIMIT 0, 3
ORDER BY l.id, c.id
";
?>
$sql = "SELECT l.*, c.*
FROM " . $tabellen . "
WHERE " . $where . "
LIMIT 0, 3
ORDER BY l.id, c.id
";
?>
Ik zie dat je de variablen zo aanroep ".$vari." probeer daar eens '".."' te gebruiken. Volgens mij kan je het niet zo doen zoals jij het nu doet. Maar het kan ook zijn dat het wel zo kan xD
Voor de rest.. Zet helemaal boven aan je pagina eens het volgende
En vertel eens wat daaruit komt
Gewijzigd op 01/01/1970 01:00:00 door Niels K
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
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
<?
function doSearch($hooiberg,$naald) {
if (!is_array($hooiberg)) {
// pass
}
if (strlen($naald) < 4) { # eventueel aantal karakters afvangen
// pass
}
$zoekresultaten = array();
$froms = array();
$wheres = array();
foreach ($hooiberg as $tabel => $velden) {
$froms[] = sprintf('%s',$tabel);
$tables[] = sprintf('%s.*',$tabel);
$where = array();
foreach ($velden as $veld) {
$where[] = $veld." like '%".$naald."%'";
}
$result = mysql_query(sprintf("select * from %s where (%s);",$tabel,join(' or ',$where)));
if (mysql_num_rows($result)) {
while ($zoekresultaat = mysql_fetch_object($result)) {
$zoekresultaat->table = $tabel;
# $zoekresultaat->doel = // hier een functie die met ee nswitch b.v. ?pagina=jaddiejaddie&id=bla teuggeeft
$zoekresultaten[$tabel][] = $zoekresultaat;
}
}
}
return $zoekresultaten;
}
?>
function doSearch($hooiberg,$naald) {
if (!is_array($hooiberg)) {
// pass
}
if (strlen($naald) < 4) { # eventueel aantal karakters afvangen
// pass
}
$zoekresultaten = array();
$froms = array();
$wheres = array();
foreach ($hooiberg as $tabel => $velden) {
$froms[] = sprintf('%s',$tabel);
$tables[] = sprintf('%s.*',$tabel);
$where = array();
foreach ($velden as $veld) {
$where[] = $veld." like '%".$naald."%'";
}
$result = mysql_query(sprintf("select * from %s where (%s);",$tabel,join(' or ',$where)));
if (mysql_num_rows($result)) {
while ($zoekresultaat = mysql_fetch_object($result)) {
$zoekresultaat->table = $tabel;
# $zoekresultaat->doel = // hier een functie die met ee nswitch b.v. ?pagina=jaddiejaddie&id=bla teuggeeft
$zoekresultaten[$tabel][] = $zoekresultaat;
}
}
}
return $zoekresultaten;
}
?>
vervolgens zoeken met;
Code (php)
suc6
ik heb de kleine aanpassingen gedaan,
maar hij werkt nog niet naar behoren...
ik krijg nu wel een error:
namelijk de volgende:
Code (php)
1
2
3
4
2
3
4
<?php
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 63
?>
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 63
?>
@niels,
ik denk dat jij twan bedoelde :P
want jaron heft al tijdje niet meer gereageerd hier xD
als ik dingen uitving krijg ik deze error:
Code (php)
1
2
3
4
5
2
3
4
5
Notice: Undefined variable: log in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 34
Notice: Undefined variable: log in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 41
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 63
Notice: Undefined variable: log in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 41
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 63
Gewijzigd op 01/01/1970 01:00:00 door Jaap V
Ja die bedoel ik jah:P (post aangepast)
Ok,
Maak er eens dit van of had je dat al?
maar zal nu even die van jou proberen...
nu krijg k een flinke error...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
Notice: Undefined variable: cat in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 34
Notice: Undefined variable: cat in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 41
Notice: Undefined variable: cat in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 47
Notice: Undefined variable: log in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 47
Notice: Undefined variable: tabellen in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 55
Notice: Undefined variable: where in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 56
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 65
Notice: Undefined variable: cat in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 41
Notice: Undefined variable: cat in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 47
Notice: Undefined variable: log in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 47
Notice: Undefined variable: tabellen in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 55
Notice: Undefined variable: where in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 56
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Klant\Bureaublad\Desktop\UsbWebserver\Root\website\categorie\zoeknaam.php on line 65
dit is de hele code
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
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
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
include('gegevens.php');
//ff kijken of er op verzenden gedrukt is...
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
//variable zoekterm aanmaken waarin de zoekterm staat + nog wat beveiliging
$zoekterm = mysql_real_escape_string(addslashes(trim($_POST['zoekterm'])));
//even checken of er wel genoeg karakters zijn ingevoerd. Zoniet, maar de variable error aan met een boodschap
if(strlen($zoekterm) < 1)
{
$error = '<p>Je moet wel een zoekterm invoeren.</p>';
//hier checken we dus of de variable error bestaat
if(isset($error))
{
//ja hij bestaat... echo'en met die hap
echo $error;
}
}
//wanneer er GEEN error is en er dus meerdere tekens zijn opggegeven
else
{
//de query uitvoeren
//de query maken
if(isset($_POST['categorie'])){$cat = true;}
if(isset($_POST['logboek'])){$log = true;}
// beide
if($cat AND $log)
{
$tabellen = "categorie AS c, logboek AS l";
$where = " c.Categorie LIKE %".mysql_real_escape_string($_POST['Omschrijving_cat'])."%
OR l.Omschrijving LIKE %".mysql_real_escape_string($_POST['Omschrijving_log'])."% ";
}
// alleen categorie
if($cat AND !$log)
{
$tabellen = "categorie AS c";
$where = "c.Categorie LIKE %".mysql_real_escape_string($_POST['Omschrijving_cat'])."% ";
}
// alleen logboek
if(!$cat AND $log)
{
$tabellen = "logboek AS l";
$where = "l.Omschrijving LIKE %".mysql_real_escape_string($_POST['Omschrijving_log'])."% ";
}
// samenvoegen
$sql = "SELECT l.*, c.*
FROM '". $tabellen."'
WHERE '". $where ."'
LIMIT 0, 3
ORDER BY l.id, c.id
";
$aantal = mysql_num_rows($sql) or die(mysql_error());
echo ($aantal == 1) ? $aantal.' resultaat gevonden <br><br>' : $aantal.' resultaten gevonden <br><br>';
echo "de opgegeven zoekterm was: <b> $zoekterm </b><br><br>";
//en de while loop wordt gestart om alles uit de database te laten zien
echo '<hr size="1" color="black">';
while($row = mysql_fetch_array($sql))
{
$sql1 = mysql_query("SELECT * FROM relatie WHERE id = '".$row['c_id']."'") or die(mysql_error());
$Categorie = $row['Categorie'];
$Date = $row['Date'];
$id = $row['id'];
$Omschrijving = substr($row['Omschrijving'], 0, 15);
while($row = mysql_fetch_array($sql1))
echo '<table border="1" width="300"><tr><th width="60">Naam: </th><td>'.$row['Naam'].'</td></tr><br>';
echo '<th>Datum: </th><td>'.$Date.'</td></tr><br>';
echo '<th>Categorie: </th><td><a href="res_categorie.php?id='.$id.'">'.$Categorie.'</a></td></tr><br>';
echo '<th>Omschrijving: </th><td>'.$Omschrijving.'</td></tr></table><br><hr size="1" color="black">';
}
}
}
//er is nog niet op verzenden gedrukt. Show het formulier maar!!
else
{ ?>
<form action="categorie.php" method="post">
<INPUT TYPE='checkbox' NAME="Categorie" checked>Categorie
<INPUT TYPE='checkbox' NAME="Omschrijving_cat" checked>Categorie omschrijving<BR>
<INPUT TYPE='checkbox' NAME="Logboek" checked>Logboek
<INPUT TYPE='checkbox' NAME="Omschrijving_log" checked>Logboek omschrijving<P>
<input type="text" name="zoekterm"><br>
<input type="submit" value="Zoeken">
</form>
<br><br>
<a href="javascript:history.go(-1);">« Ga terug</a>
<?php
}
?>
error_reporting(E_ALL);
ini_set('display_errors', 1);
include('gegevens.php');
//ff kijken of er op verzenden gedrukt is...
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
//variable zoekterm aanmaken waarin de zoekterm staat + nog wat beveiliging
$zoekterm = mysql_real_escape_string(addslashes(trim($_POST['zoekterm'])));
//even checken of er wel genoeg karakters zijn ingevoerd. Zoniet, maar de variable error aan met een boodschap
if(strlen($zoekterm) < 1)
{
$error = '<p>Je moet wel een zoekterm invoeren.</p>';
//hier checken we dus of de variable error bestaat
if(isset($error))
{
//ja hij bestaat... echo'en met die hap
echo $error;
}
}
//wanneer er GEEN error is en er dus meerdere tekens zijn opggegeven
else
{
//de query uitvoeren
//de query maken
if(isset($_POST['categorie'])){$cat = true;}
if(isset($_POST['logboek'])){$log = true;}
// beide
if($cat AND $log)
{
$tabellen = "categorie AS c, logboek AS l";
$where = " c.Categorie LIKE %".mysql_real_escape_string($_POST['Omschrijving_cat'])."%
OR l.Omschrijving LIKE %".mysql_real_escape_string($_POST['Omschrijving_log'])."% ";
}
// alleen categorie
if($cat AND !$log)
{
$tabellen = "categorie AS c";
$where = "c.Categorie LIKE %".mysql_real_escape_string($_POST['Omschrijving_cat'])."% ";
}
// alleen logboek
if(!$cat AND $log)
{
$tabellen = "logboek AS l";
$where = "l.Omschrijving LIKE %".mysql_real_escape_string($_POST['Omschrijving_log'])."% ";
}
// samenvoegen
$sql = "SELECT l.*, c.*
FROM '". $tabellen."'
WHERE '". $where ."'
LIMIT 0, 3
ORDER BY l.id, c.id
";
$aantal = mysql_num_rows($sql) or die(mysql_error());
echo ($aantal == 1) ? $aantal.' resultaat gevonden <br><br>' : $aantal.' resultaten gevonden <br><br>';
echo "de opgegeven zoekterm was: <b> $zoekterm </b><br><br>";
//en de while loop wordt gestart om alles uit de database te laten zien
echo '<hr size="1" color="black">';
while($row = mysql_fetch_array($sql))
{
$sql1 = mysql_query("SELECT * FROM relatie WHERE id = '".$row['c_id']."'") or die(mysql_error());
$Categorie = $row['Categorie'];
$Date = $row['Date'];
$id = $row['id'];
$Omschrijving = substr($row['Omschrijving'], 0, 15);
while($row = mysql_fetch_array($sql1))
echo '<table border="1" width="300"><tr><th width="60">Naam: </th><td>'.$row['Naam'].'</td></tr><br>';
echo '<th>Datum: </th><td>'.$Date.'</td></tr><br>';
echo '<th>Categorie: </th><td><a href="res_categorie.php?id='.$id.'">'.$Categorie.'</a></td></tr><br>';
echo '<th>Omschrijving: </th><td>'.$Omschrijving.'</td></tr></table><br><hr size="1" color="black">';
}
}
}
//er is nog niet op verzenden gedrukt. Show het formulier maar!!
else
{ ?>
<form action="categorie.php" method="post">
<INPUT TYPE='checkbox' NAME="Categorie" checked>Categorie
<INPUT TYPE='checkbox' NAME="Omschrijving_cat" checked>Categorie omschrijving<BR>
<INPUT TYPE='checkbox' NAME="Logboek" checked>Logboek
<INPUT TYPE='checkbox' NAME="Omschrijving_log" checked>Logboek omschrijving<P>
<input type="text" name="zoekterm"><br>
<input type="submit" value="Zoeken">
</form>
<br><br>
<a href="javascript:history.go(-1);">« Ga terug</a>
<?php
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Jaap V
De fout lijkt me meer dan duidelijk ...