Hej alle sammen
Jeg har arbejdet på en søge funktion til en side, og jeg er nået så langt, at man nu kan søge på flere ord.
Det er bare ikke altid at det virker 100%.
Siden er her:
http://spirit55555.dk/caEn søgning på
20 blå giver 8 resultater, mens en søgning på
blå 20 kun giver 7
Det skulle gerne give 8 hver gang.
Her er min kode:
<?php
if (isset($_POST ['tekst']) && $_POST ['tekst'] != null) {
$tekst = dk_convert($_POST ['tekst']);
$tekst = explode(' ', $tekst);
$tekst_count = count($tekst);
foreach ($tekst as $value) {
$varegrupper = mysql_query('SELECT varegruppe FROM ca_varer WHERE navn LIKE "%'. $value .'%" OR kategori LIKE "%'. $value .'%" ORDER BY varegruppe') or die (mysql_error());
$grupper = array();
while ($varegruppe = mysql_fetch_assoc($varegrupper)) {
if (!in_array($varegruppe ['varegruppe'], $grupper, true))
$grupper [] = $varegruppe ['varegruppe'];
}
}
if (!empty($grupper)) {
foreach ($grupper as $gruppe) {
echo '<p style="margin-top: 20px; font-size: 120%; font-weight: bold;">' . ucwords($gruppe) . '</p>';
$resultat = array();
foreach ($tekst as $value) {
$resultater = mysql_query('SELECT * FROM ca_varer WHERE varegruppe = "' . $gruppe . '" AND (navn LIKE "%'. $value .'%" OR kategori LIKE "%'. $value .'%" OR varegruppe LIKE "%'. $value .'%") ORDER BY navn') or die (mysql_error());
while ($row = mysql_fetch_assoc($resultater)) {
if (!in_array($row, $resultat))
$resultat [] = $row;
}
}
foreach ($resultat as $value => $key) {
echo '<ul>';
echo '<li><a href="?side=' . $gruppe . '#' . $key ['urlnavn'] . '">' . $key ['navn'] . '</a></li>';
echo '</ul>';
}
}
}
else
echo '<p class="fejl">Din søgning passede ikke på nogle varer. Prøv venligst igen med en anden søgning.</p>';
}
else
echo '<p class="fejl">Du har ikke søgt på noget. Prøv venligst igen.</p>';
?>
Håber i kan hjælpe mig med det...