zoeken in TEXT-field
ik wil in een TEXT-veld zoeken naar een trefwoord dat via een form kan worden ingegeven. Wat is hiervoor de SQL-opdracht? Stel het TEXT-veld heet 'omschrijving' en de tabel 'crypto'.
Met vr. gr.,
Frank
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$search = addslashes( $_POST[ 'input' ] );
$query = 'SELECT * FROM crypto WHERE omschrijving LIKE "%' . $search . '%"';
$sql = mysql_query( $query );
?>
$search = addslashes( $_POST[ 'input' ] );
$query = 'SELECT * FROM crypto WHERE omschrijving LIKE "%' . $search . '%"';
$sql = mysql_query( $query );
?>
Gewijzigd op 01/01/1970 01:00:00 door Peter Dorn
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?
$query = "
SELECT
omschrijving
FROM
crypto
WHERE
omschrijving LIKE '%".mysql_real_escape_string($_POST['zoek'])."%'
";
?>
$query = "
SELECT
omschrijving
FROM
crypto
WHERE
omschrijving LIKE '%".mysql_real_escape_string($_POST['zoek'])."%'
";
?>
En dan de query uitvoeren.
Uiteraard niet getest!
Edit: @Peter: addslashes() is flink achterhaald, gebruik die niet meer. Daarmee vervuil je jouw database.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Quote:
Edit: @Peter: addslashes() is flink achterhaald, gebruik die niet meer. Daarmee vervuil je jouw database.
Thanks voor de tip!
Notice: Undefined index: opl in c:\phpdev\www\crypto.php on line 76
Maar goed, dat zal wel een kleinigheidje zijn.
Bedankt!!!
je gebruikt waarschijnlijk $array[opl] in plaats van $array['opl'] ergens.
Goed dat het is gelukt. Voor die andere melding moeten we lijn 76 even zien.
De melding houd in dat je een array index probeert op te roepen die niet bestaat. Vaak is dit op te lossen door eerst te controleren of het bestaat, voordat je het gebruikt, voorbeeld:
FOUT:
$a = $Array[ 'opt' ];
GOED:
if ( isset( $Array[ 'opt' ] ) )
$a = $Array[ 'opt' ];
Alternatief:
$a = isset( $Array[ 'opt' ] ) ? $Array[ 'opt' ] : '';
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<!-- de formulieren voor het invoegen en opzoeken -->
<form method="post" action="" >
<p style="font-family:arial black;font-size:11;">Geef een crypto</p>
<input name="omschrijving" style="font-family:arial black;" type="text"></input>
<p style="font-family:arial black;font-size:11;">Geef de oplossing</p>
<input name="oplossing" style="font-family:arial black;" type="text"></input>
<input name="send" type="submit" value="naar database">
</form>
<form method="post" action="" >
<input name="zoekwoord" type="text">Zoekwoord</input>
<input name="omschr" type="checkbox">In de omschrijvingen</input>
<input name="opl" type="checkbox">In de oplossingen</input>
<input name="zoek" type="submit" value="zoek">
</form>
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
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
<?
error_reporting(E_ALL);
// de klasse om te verbinden en de query weer te geven
class connection
{
var $host;
var $user;
var $password;
var $db_name;
var $connection;
var $db_select;
var $query;
var $result;
var $zoek;
var $bgcolor;
function connect()
{
$connection=mysql_connect($this->host,$this->user,$this->password) or die("kan geen verbinding maken");
$db_select=mysql_select_db($this->db_name, $connection) or die("kan geen verbnding maken");
$result=mysql_query($this->query, $connection);
}
function show()
{
$result=mysql_query($this->query);
$bgcolor="white";
$color="black";
echo "<table style='width:700;font-family:arial;font-size:15px;border:1px solid black;'>";
while($row=mysql_fetch_array($result)){
if($bgcolor=="white")
{
$bgcolor="gray";
$color="white";
}
else
{
$bgcolor="white";
$color="black";
}
echo "<tr style='background-color:$bgcolor;color:$color;'><td>".$row["omschrijving"]."<td><b>".$row["oplossing"]."</tr>";
}
echo"</table>";
}
}
if($_SERVER["REQUEST_METHOD"]=="POST")
{
// wanneer er in de oplossing wordt gezocht
if(isset($_POST["zoek"]) && isset($_POST["opl"]))
{
$zoek=$_POST["zoekwoord"];
$connection_3=new connection;
$connection_3->host="localhost";
$connection_3->user="root";
$connection_3->password="";
$connection_3->db_name="crypto";
$connection_3->query="SELECT * FROM omschrijvingen WHERE oplossing LIKE '%".$zoek."%'";
$connection_3->connect();
$connection_3->show();
}
// wanneer er in de omschrijving wondt gezocht
elseif(isset($_POST["zoek"]) && isset($_POST["omschr"]))
{
$zoek=$_POST["zoekwoord"];
$connection_3=new connection;
$connection_3->host="localhost";
$connection_3->user="root";
$connection_3->password="";
$connection_3->db_name="crypto";
$connection_3->query="SELECT * FROM omschrijvingen WHERE omschrijving LIKE '%".$zoek."%'";
$connection_3->connect();
$connection_3->show();
}
//wanneer er een crypto wordt toegevoegd
elseif(isset($_POST["send"]))
{
$connection_1=new connection;
$connection_1->host="localhost";
$connection_1->user="root";
$connection_1->password="";
$connection_1->db_name="crypto";
$connection_1->query="SELECT * FROM omschrijvingen";
$connection_2=new connection;
$connection_2->host="localhost";
$connection_2->user="root";
$connection_2->password="";
$connection_2->db_name="crypto";
$connection_2->query="INSERT INTO omschrijvingen(omschrijving,oplossing) VALUES('".$_POST['omschrijving']."', '".$_POST['oplossing']."')";
$connection_2->connect();
$connection_1->connect();
$connection_1->show();
}}
?>
error_reporting(E_ALL);
// de klasse om te verbinden en de query weer te geven
class connection
{
var $host;
var $user;
var $password;
var $db_name;
var $connection;
var $db_select;
var $query;
var $result;
var $zoek;
var $bgcolor;
function connect()
{
$connection=mysql_connect($this->host,$this->user,$this->password) or die("kan geen verbinding maken");
$db_select=mysql_select_db($this->db_name, $connection) or die("kan geen verbnding maken");
$result=mysql_query($this->query, $connection);
}
function show()
{
$result=mysql_query($this->query);
$bgcolor="white";
$color="black";
echo "<table style='width:700;font-family:arial;font-size:15px;border:1px solid black;'>";
while($row=mysql_fetch_array($result)){
if($bgcolor=="white")
{
$bgcolor="gray";
$color="white";
}
else
{
$bgcolor="white";
$color="black";
}
echo "<tr style='background-color:$bgcolor;color:$color;'><td>".$row["omschrijving"]."<td><b>".$row["oplossing"]."</tr>";
}
echo"</table>";
}
}
if($_SERVER["REQUEST_METHOD"]=="POST")
{
// wanneer er in de oplossing wordt gezocht
if(isset($_POST["zoek"]) && isset($_POST["opl"]))
{
$zoek=$_POST["zoekwoord"];
$connection_3=new connection;
$connection_3->host="localhost";
$connection_3->user="root";
$connection_3->password="";
$connection_3->db_name="crypto";
$connection_3->query="SELECT * FROM omschrijvingen WHERE oplossing LIKE '%".$zoek."%'";
$connection_3->connect();
$connection_3->show();
}
// wanneer er in de omschrijving wondt gezocht
elseif(isset($_POST["zoek"]) && isset($_POST["omschr"]))
{
$zoek=$_POST["zoekwoord"];
$connection_3=new connection;
$connection_3->host="localhost";
$connection_3->user="root";
$connection_3->password="";
$connection_3->db_name="crypto";
$connection_3->query="SELECT * FROM omschrijvingen WHERE omschrijving LIKE '%".$zoek."%'";
$connection_3->connect();
$connection_3->show();
}
//wanneer er een crypto wordt toegevoegd
elseif(isset($_POST["send"]))
{
$connection_1=new connection;
$connection_1->host="localhost";
$connection_1->user="root";
$connection_1->password="";
$connection_1->db_name="crypto";
$connection_1->query="SELECT * FROM omschrijvingen";
$connection_2=new connection;
$connection_2->host="localhost";
$connection_2->user="root";
$connection_2->password="";
$connection_2->db_name="crypto";
$connection_2->query="INSERT INTO omschrijvingen(omschrijving,oplossing) VALUES('".$_POST['omschrijving']."', '".$_POST['oplossing']."')";
$connection_2->connect();
$connection_1->connect();
$connection_1->show();
}}
?>
</body>
</html>