Zoekfunctie in DB mbv MATCH
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
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
<?php
if(!empty($_POST)){
$search = $_POST['search'];
$sql = "SELECT * FROM recrea_verkoop WHERE MATCH (adres,plaats) AGAINST ('$search') ORDER BY id DESC";
$res = mysql_query($sql);
if (mysql_num_rows($res) >= 1) {
while ($row = mysql_fetch_array($res)) {
echo "$row[plaats] irreele informatie";
}
} else {
echo "niets in bestand";
}
}
?>
if(!empty($_POST)){
$search = $_POST['search'];
$sql = "SELECT * FROM recrea_verkoop WHERE MATCH (adres,plaats) AGAINST ('$search') ORDER BY id DESC";
$res = mysql_query($sql);
if (mysql_num_rows($res) >= 1) {
while ($row = mysql_fetch_array($res)) {
echo "$row[plaats] irreele informatie";
}
} else {
echo "niets in bestand";
}
}
?>
Bij de echo staat niet alles wat ik normaal heb, daar zit t probleem niet in.
Ik krijg constant deze foutmelding:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /opt/guide/www.lopw.nl/HTML2/overzicht.php on line 484
niets in bestand
Wat doe ik verkeerd!?
Groetjes!
De syntax is goed, heb je de kolommen die je hier wil gebruiken wel ingesteld op fulltext?
Dat moet wel, heb werkelijk alles geprobeerd.
Hoe doe ik dit?
Gewijzigd op 01/01/1970 01:00:00 door Niels
Na MATCH en AGAINST mag je geen spatie hebben van MySQL.
Ik denk dat het probleem zit in mysql, dat de kolom niet FULL TEXT is.
Maar, hoe kan ik dit aanpassen in phpmyadmin?
ADD FULLTEXT naam_van_de_index
(
veldnaam1,
veldnaam2
)
wat is 'naam_van_de_index'?
Elke naam die je er aan wilt geven, dat mag je zelf invullen.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
require "connect.php";
if(!empty($_POST)){
$search = $_POST['search'];
$srch="%".$search."%";
$sql = "SELECT * FROM recrea_verkoop WHERE MATCH(adres,plaats)AGAINST('$search') ORDER BY id DESC";
$res = mysql_query($sql);
if (mysql_num_rows($res)) {
while ($row = mysql_fetch_array($res)) {
echo "blablabla...;
}
} else {
echo "niets in bestand";
}
}
?>
require "connect.php";
if(!empty($_POST)){
$search = $_POST['search'];
$srch="%".$search."%";
$sql = "SELECT * FROM recrea_verkoop WHERE MATCH(adres,plaats)AGAINST('$search') ORDER BY id DESC";
$res = mysql_query($sql);
if (mysql_num_rows($res)) {
while ($row = mysql_fetch_array($res)) {
echo "blablabla...;
}
} else {
echo "niets in bestand";
}
}
?>
Met in phpmyadmin:
Dank!
Ik heb deze methode ook gebruikt, echter zoekt het script nu niet op losse woorden maar op de gehele inhoud van de tabel. Weet iemand hier een oplossing voor?