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
Waarschijnlijk zoek je zoiets:


<?php
$search = addslashes( $_POST[ 'input' ] );
$query = 'SELECT * FROM crypto WHERE omschrijving LIKE "%' . $search . '%"';
$sql = mysql_query( $query );
?>
<?
$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.
Edit: @Peter: addslashes() is flink achterhaald, gebruik die niet meer. Daarmee vervuil je jouw database.


Thanks voor de tip!
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!!!
je gebruikt waarschijnlijk $array[opl] in plaats van $array['opl'] ergens.
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' ] : '';
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="<? 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="<? 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>




<?

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>

Reageren