heb een zoekfunctie gemaakt en hij werkt bijna alleen zit ik nog met 1 probleem. Het aantal overeenkomende zoekresultaten moet ik per uitkomst tellen en dan sorteren op volgorde. Aangezien de uitkomsten in een while lus komen weet ik dus niet hoe ik daarin kan sorteren. Hier is mn code:
Het gaat met name dus hoe ik de var $n op nummer kan sorteren van hoog naar laag. Is het daarbij ook mogelijk om het hoogste aantal in een variabele vast te leggen?
Alvast bedankt.
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
| <? include("include/php/db.inc.php"); $zoek2 = strtolower($_REQUEST['search']); $zoek2 = explode(" ",$zoek2); $like = ""; $count = ""; foreach($zoek2 as $zoek3) { //dus hier gaan we eerst het like gedeelte compleet maken if ($like <> "") { $like = "$like OR content LIKE '%$zoek3%'"; } else { $like = "LIKE '%$zoek3%'"; } if ($count <> "") { $count = "$count, $zoek3"; } else { $count = "$zoek3"; } } echo "<TR><TD colspan=2>U heeft gezocht naar: " . $count . "</TD></TR>"; echo "<TR><TD> </TD><TD> </TD></TR>"; echo "<TR><TD>Artikel</TD><TD>score</TD></TR>"; echo "<TR><TD colspan=2><hr color=#FFFFFF size=1 align=center></TD></TR>"; if ($like <> "") { //kleine beveiliging voor als er niks is ingevult $qry = "SELECT name, content FROM artikel WHERE content $like"; $result = mysql_query($qry) or die("Verbinding mislukt."); while ($row = mysql_fetch_array($result)) { $name = strtolower($row["name"]); $content = strtolower($row["content"]); $count2 = explode (", ", $count); $n = ""; foreach($count2 as $count3) { if ($n <> "") { $n = $n + count(explode($count3,$content)) - 1; } else { $n = count(explode($count3,$content)) - 1; } } echo "<TR><TD>" . $name . "</TD><TD align=left>Score:" .$n . "</TD></TR>"; } } ?> |
Het gaat met name dus hoe ik de var $n op nummer kan sorteren van hoog naar laag. Is het daarbij ook mogelijk om het hoogste aantal in een variabele vast te leggen?
Alvast bedankt.