Zoeken op alles
Ik weet dat ik iets ergens tussen 37 en 40 iets moet toevoegen. Alleen begrijp ik niet wat en of dat zomaar mag...ik dacht aan dit:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
if($k == 0) {
$like .= "`trefwoord` LIKE '%".$v."%' ";
$like .= "`omschrijving` LIKE '%".$v."%' ";
} else {
$like .= "AND `trefwoord` LIKE '%".$v."%' ";
$like .= "AND `omschrijving` LIKE '%".$v."%' ";
}
}
$like .= "`trefwoord` LIKE '%".$v."%' ";
$like .= "`omschrijving` LIKE '%".$v."%' ";
} else {
$like .= "AND `trefwoord` LIKE '%".$v."%' ";
$like .= "AND `omschrijving` LIKE '%".$v."%' ";
}
}
Maar ik weet zeker dat dat niet werkt en dat doet het dus ook niet....
Alvast bedankt voor suggesties...
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
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
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>
<?php require_once("databaseconnectionuploaden.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zoeken</title>
</head>
<body>
<form form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
Zoek op:<br>
<select name="zoekenop">
<option value="omschrijving">Omschrijving</option>
<option value="trefwoord">Trefwoord</option>
<option value="alles" selected="selected">alles</option>
</select><p>
<input name="zoeken" type="text" id="zoeken" size="30"><p>
<input type="submit" value="zoeken">
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$zoekenop = mysql_real_escape_string($_POST['zoekenop']);
$zoeken = mysql_real_escape_string($_POST['zoeken']);
// je query dan:
if ($zoekenop == 'alles'){
$zoekexploded = explode(' ', $zoeken);
$like = "";
foreach($zoekexploded as $k=>$v) {
if($k == 0) {
$like .= "`trefwoord` LIKE '%".$v."%' ";
} else {
$like .= "AND `trefwoord` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT thumbnail, trefwoord, omschrijving
FROM afbeelding
WHERE ".$like." OR
".$like."
";
} else {
$zoekexploded = explode(' ', $zoeken);
$like = "";
foreach($zoekexploded as $k=>$v) {
if($k == 0) {
$like .= "`$zoekenop` LIKE '%".$v."%' ";
} else {
$like .= "AND `$zoekenop` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT thumbnail, trefwoord, omschrijving
FROM afbeelding
WHERE ".$like."
";
}
$res = mysql_query($sql);
if(!$res)
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo '<img src="'.$row['thumbnail'].'" alt="thumbnail" /></p>';
}
echo "<a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
else
{
echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[zoeken]</b></p>";
echo "<p><a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
}
}
}
?>
</body>
</html>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>
<?php require_once("databaseconnectionuploaden.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zoeken</title>
</head>
<body>
<form form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
Zoek op:<br>
<select name="zoekenop">
<option value="omschrijving">Omschrijving</option>
<option value="trefwoord">Trefwoord</option>
<option value="alles" selected="selected">alles</option>
</select><p>
<input name="zoeken" type="text" id="zoeken" size="30"><p>
<input type="submit" value="zoeken">
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$zoekenop = mysql_real_escape_string($_POST['zoekenop']);
$zoeken = mysql_real_escape_string($_POST['zoeken']);
// je query dan:
if ($zoekenop == 'alles'){
$zoekexploded = explode(' ', $zoeken);
$like = "";
foreach($zoekexploded as $k=>$v) {
if($k == 0) {
$like .= "`trefwoord` LIKE '%".$v."%' ";
} else {
$like .= "AND `trefwoord` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT thumbnail, trefwoord, omschrijving
FROM afbeelding
WHERE ".$like." OR
".$like."
";
} else {
$zoekexploded = explode(' ', $zoeken);
$like = "";
foreach($zoekexploded as $k=>$v) {
if($k == 0) {
$like .= "`$zoekenop` LIKE '%".$v."%' ";
} else {
$like .= "AND `$zoekenop` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT thumbnail, trefwoord, omschrijving
FROM afbeelding
WHERE ".$like."
";
}
$res = mysql_query($sql);
if(!$res)
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo '<img src="'.$row['thumbnail'].'" alt="thumbnail" /></p>';
}
echo "<a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
else
{
echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[zoeken]</b></p>";
echo "<p><a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
}
}
}
?>
</body>
</html>
Verder, wat betreft dat op 'alles' zoeken. Dat zou je zo kunnen doen:
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
if($_POST['zoekenop'] == 'alles')
{
$zoekstring = mysql_real_escape_string($_POST['zoeken']);
$sql = "
SELECT thumbnail, trefwoord, omschrijving
FROM afbeelding
WHERE trefwoord LIKE '%".$zoekstring."%'
OR omschrijving LIKE '%".$zoekstring."%'
";
}
?>
if($_POST['zoekenop'] == 'alles')
{
$zoekstring = mysql_real_escape_string($_POST['zoeken']);
$sql = "
SELECT thumbnail, trefwoord, omschrijving
FROM afbeelding
WHERE trefwoord LIKE '%".$zoekstring."%'
OR omschrijving LIKE '%".$zoekstring."%'
";
}
?>
Tenslotte zou ik je willen aanraden om netjes te gaan scripten. Je script is nu zo onoverzichtelijk als maar kan zijn, en dat zal alleen maar fouten op gaan leveren.
Dan wordt in jou query deze index niet gebruikt.
Met deze query wel:
Wat is die $zoekstring overigens? Begrijp niet wat die doet.
Ik snap ook niet waarom in die zoeken op alles code van jouw niet explode....Ik wil dus wel met exploden zoeken zonder complex te gaan doen met full text search. Dat wat jij me gaf begreep ik ook al (alleen dat met die $_post is idd handiger all komt het min of meer op hetzelfde uit met wat ik had.
Met netjes scripten bedoel je waarschijnlijk de openening...Ik doe mijn best ik hoop dat je het er nu wel goed uit vind zien dan....zeg me of het er goed uit ziet. En help mij aub een oplossing te vinden met die explode.
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
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
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
require_once("databaseconnectionuploaden.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zoeken</title>
</head>
<body>
<form form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
Zoek op:<br>
<select name="zoekenop">
<option value="omschrijving">Omschrijving</option>
<option value="trefwoord">Trefwoord</option>
<option value="alles" selected="selected">alles</option>
</select><p>
<input name="zoeken" type="text" id="zoeken" size="30"><p>
<input type="submit" value="zoeken">
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$zoekenop = mysql_real_escape_string($_POST['zoekenop']);
$zoeken = mysql_real_escape_string($_POST['zoeken']);
if ($zoekenop == 'alles')
{
$zoekexploded = explode(' ', $zoeken);
$like = "";
foreach($zoekexploded as $k=>$v)
{
if($k == 0)
{
$like .= "`trefwoord` LIKE '%".$v."%' ";
}
else
{
$like .= "AND `trefwoord` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT thumbnail, trefwoord, omschrijving
FROM afbeelding
WHERE ".$like." OR
".$like."
";
}
else
{
$zoekexploded = explode(' ', $zoeken);
$like = "";
foreach($zoekexploded as $k=>$v)
{
if($k == 0)
{
$like .= "`$zoekenop` LIKE '%".$v."%' ";
}
else
{
$like .= "AND `$zoekenop` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT thumbnail, trefwoord, omschrijving
FROM afbeelding
WHERE ".$like."
";
}
$res = mysql_query($sql);
if(!$res)
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo '<img src="'.$row['thumbnail'].'" alt="thumbnail" /></p>';
echo "<a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
}
else
{
echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[zoeken]</b></p>";
echo "<p><a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
}
}
}
?>
</body>
</html>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
require_once("databaseconnectionuploaden.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zoeken</title>
</head>
<body>
<form form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
Zoek op:<br>
<select name="zoekenop">
<option value="omschrijving">Omschrijving</option>
<option value="trefwoord">Trefwoord</option>
<option value="alles" selected="selected">alles</option>
</select><p>
<input name="zoeken" type="text" id="zoeken" size="30"><p>
<input type="submit" value="zoeken">
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$zoekenop = mysql_real_escape_string($_POST['zoekenop']);
$zoeken = mysql_real_escape_string($_POST['zoeken']);
if ($zoekenop == 'alles')
{
$zoekexploded = explode(' ', $zoeken);
$like = "";
foreach($zoekexploded as $k=>$v)
{
if($k == 0)
{
$like .= "`trefwoord` LIKE '%".$v."%' ";
}
else
{
$like .= "AND `trefwoord` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT thumbnail, trefwoord, omschrijving
FROM afbeelding
WHERE ".$like." OR
".$like."
";
}
else
{
$zoekexploded = explode(' ', $zoeken);
$like = "";
foreach($zoekexploded as $k=>$v)
{
if($k == 0)
{
$like .= "`$zoekenop` LIKE '%".$v."%' ";
}
else
{
$like .= "AND `$zoekenop` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT thumbnail, trefwoord, omschrijving
FROM afbeelding
WHERE ".$like."
";
}
$res = mysql_query($sql);
if(!$res)
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo '<img src="'.$row['thumbnail'].'" alt="thumbnail" /></p>';
echo "<a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
}
else
{
echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[zoeken]</b></p>";
echo "<p><a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
}
}
}
?>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Carel
Die $zoekstring komt uit $_POST['zoeken'] waar mysql_real_escape_string() overheen gehaald is om de input te beveiligen.
Tja en dat exploden op de spatie, ik zou het gewoon niet doen. Maar dit is een voorbeeldje voor 1 kolom:
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
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
<?php
if($_POST['zoekenop'] == 'trefwoord' || $_POST['zoekenop'] == 'omschrijving')
{
$sql = "
SELECT
trefwoord,
omschrijving,
thumbnail
FROM
afbeelding
";
$and = false;
foreach(explode(' ', $_POST['zoeken']) as $zoekwoord)
{
if(!$and)
{
$sql .= " WHERE "
$and = true;
}
else
{
$sql .= " AND "
}
$sql .= $_POST['zoekenop']." LIKE '%".mysql_real_escape_string($zoekwoord)."%'";
}
}
?>
if($_POST['zoekenop'] == 'trefwoord' || $_POST['zoekenop'] == 'omschrijving')
{
$sql = "
SELECT
trefwoord,
omschrijving,
thumbnail
FROM
afbeelding
";
$and = false;
foreach(explode(' ', $_POST['zoeken']) as $zoekwoord)
{
if(!$and)
{
$sql .= " WHERE "
$and = true;
}
else
{
$sql .= " AND "
}
$sql .= $_POST['zoekenop']." LIKE '%".mysql_real_escape_string($zoekwoord)."%'";
}
}
?>
Zoals je ziet, een hele omslachtige benadering. Maar het zal wel werken.
ps. Niet getest overigens, dus er kunnen foutjes in staan...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
http://aycu39.webshots.com/image/40798/2005854193985186024_rs.jpg ) De tekst zoek opnieuw wordt op verschillende locaties geplaatst. Ik zag trouwens dat ik nog 2 foutjes had in opmaak: Is die van mij onveilig met mijn
$zoekenop = mysql_real_escape_string($_POST['zoekenop']); ???
of moet ik die methode van jouw toepassen? Puur om te weten wat ik heb gedaan goed is of niet. Ongetwijfeld dat die van jouw beter is en werkt. Ik probeer het ook te leren ;) En het ziet idd beter uit en makkelijker om te lezen.
Ik heb dit gemaakt het werkt...alleen de weergave van de resultaten is raar. ( $zoekenop = mysql_real_escape_string($_POST['zoekenop']); ???
of moet ik die methode van jouw toepassen? Puur om te weten wat ik heb gedaan goed is of niet. Ongetwijfeld dat die van jouw beter is en werkt. Ik probeer het ook te leren ;) En het ziet idd beter uit en makkelijker om te lezen.
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
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
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
require_once("databaseconnectionuploaden.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zoeken</title>
</head>
<body>
<form form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
Zoek op:<br>
<select name="zoekenop">
<option value="omschrijving">Omschrijving</option>
<option value="trefwoord">Trefwoord</option>
<option value="alles" selected="selected">alles</option>
</select><p>
<input name="zoeken" type="text" id="zoeken" size="30"><p>
<input type="submit" value="zoeken">
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$zoekenop = mysql_real_escape_string($_POST['zoekenop']);
$zoeken = mysql_real_escape_string($_POST['zoeken']);
if ($zoekenop == 'alles')
{
$zoekexploded = explode(' ', $zoeken);
$like = "";
$like2 = "";
foreach($zoekexploded as $k=>$v)
{
if($k == 0)
{
$like .= "`trefwoord` LIKE '%".$v."%' ";
$like2 .= "`omschrijving` LIKE '%".$v."%' ";
}
else
{
$like .= "AND `trefwoord` LIKE '%".$v."%' ";
$like2 .= "AND `omschrijving` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT
thumbnail,
trefwoord,
omschrijving
FROM
afbeelding
WHERE
".$like." OR
".$like2."
";
}
else
{
$zoekexploded = explode(' ', $zoeken);
$like = "";
foreach($zoekexploded as $k=>$v)
{
if($k == 0)
{
$like .= "`$zoekenop` LIKE '%".$v."%' ";
}
else
{
$like .= "AND `$zoekenop` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT
thumbnail,
trefwoord,
omschrijving
FROM
afbeelding
WHERE
".$like."
";
}
$res = mysql_query($sql);
if(!$res)
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo '<img src="'.$row['thumbnail'].'" alt="thumbnail" /></p>';
echo "<a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
}
else
{
echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[zoeken]</b></p>";
echo "<p><a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
}
}
}
?>
</body>
</html>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
require_once("databaseconnectionuploaden.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zoeken</title>
</head>
<body>
<form form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
Zoek op:<br>
<select name="zoekenop">
<option value="omschrijving">Omschrijving</option>
<option value="trefwoord">Trefwoord</option>
<option value="alles" selected="selected">alles</option>
</select><p>
<input name="zoeken" type="text" id="zoeken" size="30"><p>
<input type="submit" value="zoeken">
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$zoekenop = mysql_real_escape_string($_POST['zoekenop']);
$zoeken = mysql_real_escape_string($_POST['zoeken']);
if ($zoekenop == 'alles')
{
$zoekexploded = explode(' ', $zoeken);
$like = "";
$like2 = "";
foreach($zoekexploded as $k=>$v)
{
if($k == 0)
{
$like .= "`trefwoord` LIKE '%".$v."%' ";
$like2 .= "`omschrijving` LIKE '%".$v."%' ";
}
else
{
$like .= "AND `trefwoord` LIKE '%".$v."%' ";
$like2 .= "AND `omschrijving` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT
thumbnail,
trefwoord,
omschrijving
FROM
afbeelding
WHERE
".$like." OR
".$like2."
";
}
else
{
$zoekexploded = explode(' ', $zoeken);
$like = "";
foreach($zoekexploded as $k=>$v)
{
if($k == 0)
{
$like .= "`$zoekenop` LIKE '%".$v."%' ";
}
else
{
$like .= "AND `$zoekenop` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT
thumbnail,
trefwoord,
omschrijving
FROM
afbeelding
WHERE
".$like."
";
}
$res = mysql_query($sql);
if(!$res)
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo '<img src="'.$row['thumbnail'].'" alt="thumbnail" /></p>';
echo "<a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
}
else
{
echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[zoeken]</b></p>";
echo "<p><a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
}
}
}
?>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Carel
Wat betreft die $zoekenop, de volgorde is niet logisch en bovendien zou je ook andere kolommen dan trefwoord of omschrijving in die variabele kunnen krijgen...
Controleer dus altijd of de inhoud van $zoekenop gelijk is aan 'alles' dan wel aan 'trefwoord' of 'omschrijving'. Die mysql_real_escape_string() op deze variabele is niet logisch, aangezien er in principe geen speciale tekens in voor zullen komen. En als dat wel het geval is, dan komen ze dus niet door de controle of ze gelijk zijn aan de waarden die ik noemde.
Begrijp niet wat er verkeerd is aan de volgorde en ook niet dat het mogelijk is dat ik ook andere kolommen dan trefwoord kan krijgen, want dat is ook de bedoeling.... Het moet ook mogelijk zijn dat in die $zoekenop ALLEEN trefwoord of omschrijving komt. Er zijn in mijn ogen maar drie mogelijke waarden die in de $zoekenop kunnen komen namleijk:
1. Omschrijving
2. Trefwoord
3. Alles
Die ik heb aangegeven in de top down menu.
In mijn code na de eerste op alles zoeken dus na die else zie je ook staan
$like .= "`$zoekenop` LIKE '%".$v."%' ";
Wat betreft die mysql_real_escape_string() heb je helemaal gelijk omdat ik immers aangegeven heb welke waarden dat zijn.
Ik begrijp eigenlijk dus min of meer alles alleen die controleren of de inhoud gelijk is aan 'alles' dan wel aan 'trefwoord' of 'omschrijving' niet. Het is toch onmogelijk dat er een andere waarde in komt dan die drie?
Bedankt voor je hulp en uitleg. Ik leer hier veel van.
Quote:
Via jouw formulier wel inderdaad. Maar ik zou ook zelf een formuliertje kunnen maken met precies dezelfde veldnamen en de action vervolgens naar jouw script laten verwijzen.Het is toch onmogelijk dat er een andere waarde in komt dan die drie?
Op die manier zou ik ook andere waarden voor $_POST['zoekenop'] in jouw script kunnen stoppen dan in jouw formulier staan. Dat wil je niet, dus controleer altijd of die variabele wel gelijk is aan een van de 3 mogelijkheden.
Dus door dit:
if ($zoekenop == 'alles')
NAAR dit
if($_POST['zoekenop'] == 'alles')
te veranderen...is het veiliger
Ik heb het aangepast is deze code nu WEL veilig????
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
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
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
require_once("databaseconnectionuploaden.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zoeken</title>
</head>
<body>
<form form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
Zoek op:<br>
<select name="zoekenop">
<option value="omschrijving">Omschrijving</option>
<option value="trefwoord">Trefwoord</option>
<option value="alles" selected="selected">alles</option>
</select><p>
<input name="zoeken" type="text" id="zoeken" size="30"><p>
<input type="submit" value="zoeken">
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$zoeken = mysql_real_escape_string($_POST['zoeken']);
if($_POST['zoekenop'] == 'alles')
{
$zoekexploded = explode(' ', $zoeken);
$like = "";
$like2 = "";
foreach($zoekexploded as $k=>$v)
{
if($k == 0)
{
$like .= "`trefwoord` LIKE '%".$v."%' ";
$like2 .= "`omschrijving` LIKE '%".$v."%' ";
}
else
{
$like .= "AND `trefwoord` LIKE '%".$v."%' ";
$like2 .= "AND `omschrijving` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT
thumbnail,
trefwoord,
omschrijving
FROM
afbeelding
WHERE
".$like." OR
".$like2."
";
}
elseif $_POST['zoekenop'] == 'trefwoord' || $_POST['zoekenop'] == 'omschrijving';
{
$zoekexploded = explode(' ', $zoeken);
$like = "";
foreach($zoekexploded as $k=>$v)
{
if($k == 0)
{
$like .= "`$_POST['zoekenop']` LIKE '%".$v."%' ";
}
else
{
$like .= "AND `$_POST['zoekenop']` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT
thumbnail,
trefwoord,
omschrijving
FROM
afbeelding
WHERE
".$like."
";
}
$res = mysql_query($sql);
if(!$res)
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo '<img src="'.$row['thumbnail'].'" alt="thumbnail" /></p>';
}
echo "<a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
else
{
echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[zoeken]</b></p>";
echo "<p><a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
}
}
?>
</body>
</html>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
require_once("databaseconnectionuploaden.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zoeken</title>
</head>
<body>
<form form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
Zoek op:<br>
<select name="zoekenop">
<option value="omschrijving">Omschrijving</option>
<option value="trefwoord">Trefwoord</option>
<option value="alles" selected="selected">alles</option>
</select><p>
<input name="zoeken" type="text" id="zoeken" size="30"><p>
<input type="submit" value="zoeken">
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$zoeken = mysql_real_escape_string($_POST['zoeken']);
if($_POST['zoekenop'] == 'alles')
{
$zoekexploded = explode(' ', $zoeken);
$like = "";
$like2 = "";
foreach($zoekexploded as $k=>$v)
{
if($k == 0)
{
$like .= "`trefwoord` LIKE '%".$v."%' ";
$like2 .= "`omschrijving` LIKE '%".$v."%' ";
}
else
{
$like .= "AND `trefwoord` LIKE '%".$v."%' ";
$like2 .= "AND `omschrijving` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT
thumbnail,
trefwoord,
omschrijving
FROM
afbeelding
WHERE
".$like." OR
".$like2."
";
}
elseif $_POST['zoekenop'] == 'trefwoord' || $_POST['zoekenop'] == 'omschrijving';
{
$zoekexploded = explode(' ', $zoeken);
$like = "";
foreach($zoekexploded as $k=>$v)
{
if($k == 0)
{
$like .= "`$_POST['zoekenop']` LIKE '%".$v."%' ";
}
else
{
$like .= "AND `$_POST['zoekenop']` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT
thumbnail,
trefwoord,
omschrijving
FROM
afbeelding
WHERE
".$like."
";
}
$res = mysql_query($sql);
if(!$res)
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo '<img src="'.$row['thumbnail'].'" alt="thumbnail" /></p>';
}
echo "<a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
else
{
echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[zoeken]</b></p>";
echo "<p><a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
}
}
?>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Carel