source: Search.php

Last change on this file was 1, checked in by george, 15 years ago
  • Import souborů projektu.
File size: 5.8 KB
Line 
1<?php
2 //hlavièka
3 include 'includes/Global.php';
4
5 /* tabulky v kterých se má hledat:
6 articles- Name, Description, TextWithoutTags
7 news- Name, Description, Text, User
8 downloaddir- Name, Description
9 downloadfile- Name, Description, FileName
10 links- Name, Description, Address
11 picturealbums- Name, Description
12 pictures- FileName
13 section- Name, Description
14 */
15
16 //TODO: mozila plugin
17
18 if (array_key_exists('Search', $_GET)){
19 $SearchOrig = $_GET['Search'];
20 } else {
21 $SearchOrig = '';
22 }
23?>
24<Table>
25 <tr><td>
26 <form action="Search.php" method="get">
27 <table border="0">
28 <tr><td>Hledané heslo:</td></tr>
29 <tr><td><input type="text" name="Search" value="<?php echo $SearchOrig; ?>"></td></tr>
30 <tr><td><input type="submit" value="Vyhledat"></td></tr>
31 </table>
32 </form>
33 </td><td>
34
35Legenda: <br>
36<b>%</b> - Procento nahrazuje libovolný poèet znakù. Pøíklad: 'Ko%'<br>
37<b>_</b> - Podtržítko nahrazuje jeden jediný znak. Pøíklad: 'Ko_ina'<br>
38<b>[ ]</b> - Znaky zahrnuté do hranatých závorek, znamenají, že se v hledaném textu má vyskytovat buï ten nebo onen znak. Pøíklad: 'Ko[sz]ina'<br>
39<b>[-]</b> - Pomocí pomlèky v hranatých závorkách zvolíme rozsah písmen, které se mohou vyskytovat v hledaném textu. Pøíklad: '[K-N]osina'<br>
40<b>[^]</b> - Støíška (^) znamená negaci. Uvedené znaky za ní se ve výrazu nemají vyskytovat. Mùžeme dané znaky vypsat [^abcde] anebo použít rozsah [^a-e]. Pøíklad: 'Ko[^sz]ina'<br>
41 </td></tr>
42</table>
43<?php
44
45if ($SearchOrig <> '') { //pøihlášení / odhlášení
46 $Search = strtr($SearchOrig, ' ', '%');
47
48 Echo '<H3>Výsledek hledání:</h3>';
49
50 //TODO: zjišovat poèet slov, vybrané tabulky, a zobrazování
51
52 $FoundAll = False;
53
54 //èlánky
55 $sql = "SELECT * FROM articles WHERE TextWithoutTags LIKE '%$Search%' or Description LIKE '%$Search%' or Name LIKE '%$Search%'";
56
57 $IDdb = $db->SQLCommand($sql);
58 $TestLine = mysql_fetch_array($IDdb);
59
60 if (!$TestLine) {
61 $Found = False;
62 } else {
63 $Found = True;
64 $FoundAll = True;
65 }
66
67 if ($Found) {
68 echo '<h4>Èlánky:</h4>';
69 }
70
71 $IDdb = $db->SQLCommand($sql);
72 while ($Line = mysql_fetch_array($IDdb)) {
73 if (strlen($Line['TextWithoutTags']) > 400) {
74 $position = strpos($Line['TextWithoutTags'],$Search);
75 $start = $position - 70;
76 if ($start < 0)
77 $start = 0;
78
79 $length = strlen($Search)+140;
80 $Text = '..'.substr($Line['TextWithoutTags'],$start,$length).'..';
81 } else {
82 $Text = $Line['TextWithoutTags'];
83 }
84 //TODO: zvírazòovat všechny slova
85 $Text = ereg_replace($SearchOrig, '<b>'.$SearchOrig.'</b>', $Text);
86
87 echo '<a href="Section.php?Article='.$Line['ID'].'">Zobrazit celý èlánek</a>
88 <div class="ArticlesItem"><span class="ArticlesName">'.$Line['Name'].'</span> - <span class="ArticlesDescription">'.$Line['Description'].'</span> - <span class="Date">'.$Line['Date'].'</span>';
89
90 if ($AdminLevel > 1) // level 2
91 echo '<a href="/Administrace/AddArticles.php?Mode=FormEdit&amp;ID='.$Line['ID'].'"> '.$Icons['Edit'].'</a>';
92 if ($AdminLevel > 3) // level 4
93 echo '<a href="/Administrace/AddArticles.php?Mode=DelArticle&amp;Section='.$Line['ID'].'" '.JavaQuestionDel().'> '.$Icons['Del'].'</a>';
94
95 echo '<br />'.$Text.'</div>';
96 }
97
98 //aktuality
99 $sql = "SELECT * FROM news WHERE Text LIKE '%$Search%' or Description LIKE '%$Search%' or Name LIKE '%$Search%' or User LIKE '%$Search%'";
100 $IDdb = $db->SQLCommand($sql);
101 $TestLine = mysql_fetch_array($IDdb);
102
103 if (!$TestLine) {
104 $Found = False;
105 } else {
106 $Found = True;
107 $FoundAll = True;
108 }
109
110 if ($Found) {
111 echo '<h4>Aktuality:</h4>';
112 }
113
114 $IDdb = $db->SQLCommand($sql);
115 while ($Line = mysql_fetch_array($IDdb)) {
116 if (strlen($Line['Text']) > 400) {
117 $position = strpos($Line['Text'],$Search);
118 $start = $position - 70;
119 if ($start < 0)
120 $start = 0;
121
122 $length = strlen($Search)+140;
123 $Text = '..'.substr($Line['Text'],$start,$length).'..';
124 } else {
125 $Text = $Line['Text'];
126 }
127 //TODO: zvírazòovat všechny slova
128 $Text = ereg_replace($SearchOrig, '<b>'.$SearchOrig.'</b>', $Text);
129 echo '<a href="index.php?AllNews">Zobrazit celou aktualitu</a>
130 <div class="NewsItem" title="'.$Line['Description'].'"><span class="Date">'.$Line['Date'].'</span> - <span class="NewsName">'.$Line['Name'].'</span> (<span class="NewsUser">'.$Line['User'].'</span>)';
131
132 if ($AdminLevel > 0) // level 1
133 echo '<a href="/Administrace/AddNews.php?Mode=EditNewsForm&amp;ID='.$Line['ID'].'"> '.$Icons['Edit'].'</a>';
134 if ($AdminLevel > 3) // level 4
135 echo '<a href="/Administrace/AddNews.php?Mode=Del&amp;ID='.$Line['ID'].'" '.JavaQuestionDel().'> '.$Icons['Del'].'</a>';
136
137 echo '<br><span class="NewsText">'.$Text.'</span></div>';
138 }
139
140
141 if ($FoundAll == False) {
142 echo 'Nepodaøilo nalézt!';
143 }
144}
145
146
147// složitý sql z php my admin : SELECT * FROM `maron`.`downloaddir` WHERE (`ID` LIKE '%maron%' OR `Name` LIKE CONVERT(_utf8 '%maron%' USING latin2) COLLATE latin2_czech_cs OR `Description` LIKE CONVERT(_utf8 '%maron%' USING latin2) COLLATE latin2_czech_cs OR `Date` LIKE '%maron%' OR `PreviousDir` LIKE '%maron%') OR (`ID` LIKE '%super%' OR `Name` LIKE CONVERT(_utf8 '%super%' USING latin2) COLLATE latin2_czech_cs OR `Description` LIKE CONVERT(_utf8 '%super%' USING latin2) COLLATE latin2_czech_cs OR `Date` LIKE '%super%' OR `PreviousDir` LIKE '%super%') OR (`ID` LIKE '%test%' OR `Name` LIKE CONVERT(_utf8 '%test%' USING latin2) COLLATE latin2_czech_cs OR `Description` LIKE CONVERT(_utf8 '%test%' USING latin2) COLLATE latin2_czech_cs OR `Date` LIKE '%test%' OR `PreviousDir` LIKE '%test%')
148
149
150 //botièka (konec)
151 ShowFooter();
152?>
Note: See TracBrowser for help on using the repository browser.