zoeken in TEXT-field

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frank

Frank

12/11/2007 23:25:00
Quote Anchor link
Beste SQL mensen, daar ik wel wat weet van mysql maar niet alles, even de volgende vraag:

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
 
PHP hulp

PHP hulp

17/11/2024 04:56:39
 
PHP erik

PHP erik

12/11/2007 23:30:00
Quote Anchor link
Welke database? Voor MySQL zie http://www.phphulp.nl/php/tutorials/3/546/
 
Peter Dorn

Peter Dorn

12/11/2007 23:31:00
Quote Anchor link
Waarschijnlijk zoek je zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$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
 
Frank -

Frank -

12/11/2007 23:31:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
$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 -
 
Peter Dorn

Peter Dorn

12/11/2007 23:33:00
Quote Anchor link
Quote:
Edit: @Peter: addslashes() is flink achterhaald, gebruik die niet meer. Daarmee vervuil je jouw database.


Thanks voor de tip!
 
Frank

Frank

12/11/2007 23:50:00
Quote Anchor link
Mensen, jullie zijn geweldig. Die procentjes werken!!!! Dat wist ik dus niet. Het werkt dus al krijg ik wel de melding:

Notice: Undefined index: opl in c:\phpdev\www\crypto.php on line 76

Maar goed, dat zal wel een kleinigheidje zijn.

Bedankt!!!
 
PHP erik

PHP erik

12/11/2007 23:52:00
Quote Anchor link
je gebruikt waarschijnlijk $array[opl] in plaats van $array['opl'] ergens.
 
Peter Dorn

Peter Dorn

12/11/2007 23:53:00
Quote Anchor link
Hallo Frank.

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' ] : '';
 
Frank

Frank

13/11/2007 01:26:00
Quote Anchor link
Wederom bedankt. Kun je die gematchte string ook laten arceren zodat in de tabel met resltaten de match bijv. geel is? Enfin, dit is de code:

<!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="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $php_self ?>
" >
<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="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $php_self ?>
" >
<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)
PHP script in nieuw venster Selecteer het PHP script
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
<?

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>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.