1 problem:
Da li mozete da mi objasnite sta je najbolje da se stavi na sajtu za pretragu artikla: Live search (koji ce automatski da izlista artikle) ili obican search kada se klikne dugme search pokaze rezultat pretrage.
Ne znam da li (mysql baza) na serveru sa live search, moze da pretrazi vise od 100 000 artikala veoma brzo.
Sta vi preporucujete da se uradi.
2 problem:
Nasao sam jednu skriptu za Live search malo je modifikovao samo imam jedan problem.
U tabeli Article imam kolonu Active
Ne znam kako da uradim kada se vrsi pretraga da proveri kolonu Active i ako je tamo primer: True (ili ne bitno broj 1). Onda da prikaze u pretragu taj artikal koji je aktivan.
A u slucaju da u koloni Active stoji primer: False (ili broj 0). Onda da neprikaze u rezultat pretrage taj artikal posto nije aktivan.
Kako to da uradim. Izpod teksta postavio sam kod kako izgleda Live search.
Hvala vam puno na pomoci.
Code:
<?php
error_reporting( 0 );
include 'core/init.php';
echo "<div class=\"searchText\">Search</div><hr />";
//PAGE NUMBER, RESULTS PER PAGE, AND OFFSET OF THE SEARCH RESULTS
if($_GET["page"]) {
$pagenum = $_GET["page"];
} else {
$pagenum = 1;
}
$rowsperpage = 2;
$offset = ($pagenum - 1) * $rowsperpage;
//SEPARATES THE ENTIRE SEARCH TERM INTO KEYWORDS
$t = trim(eregi_replace(" +", " ", $_GET["q"]));
$x = explode(" ", $t);
foreach($x as $z) {
$w++;
if($w==1) {
$u .= "keywords LIKE '%$z%'";
} else {
$u .= "AND keywords LIKE '%$z%'";
}
}
$q = mysql_query("SELECT * FROM article WHERE $u ORDER BY id DESC LIMIT $offset, $rowsperpage");
$page_nums = mysql_num_rows($q); //NUMBER OF RESULTS FOR THE PAGE
//QUERY FOR ALL RESULTS OF THE SEARCH
$total_q = mysql_query("SELECT * FROM article WHERE $u");
$total_nums = mysql_num_rows($total_q); //TOTAL NUMBER OF RESULTS
echo "$total_nums results found !<p>";
$total_pages = ceil($total_nums/$rowsperpage); //NUMBER OF PAGES
//IF THERE ARE RESULTS
if($total_nums) {
if($pagenum<1||$pagenum>$total_pages) {
header("Location: results.php?q=$t");
}
while($r= mysql_fetch_assoc($q)) {
$name = $r['name_article'];
$info = $r['info_article'];
$datum = $r['datum'];
echo "<div class='wellcatalog'>
<div class='width: 400px;'>
<div class='title'><a href=''><b>$name</b></a></div>
<div class='url'>$info</div>
<div class='desc'>$datum</div>
</div>
</div>
";
}
echo '
<div class="pagination">
<ul>';
$range = 7; if($pagenum>1) {
$page = $pagenum - 1;
$first = '<li class="previous"><a class="page" id="1">First <img src="images/tile/previous.png" height="20" width="20"></a> </li> ';
}
//IF NOT ON THE LAST PAGE OF RESULTS
if($pagenum<$total_pages) {
$page = $pagenum + 1;
$next = '<li class="next"><a class="page" id="'.$page.'"><img src="images/tile/next.png" height="20" width="20"> last</a></li> ';
}
for($page=($pagenum-$range); $page<=($pagenum+$range); $page++) {
if($page>=1&&$page<=$total_pages) {
if($total_pages>1) {
if($page==$pagenum) {
$nav .= '<li class="active"><span class="pagenum">'.$page.'</span> </li>';
} else {
$nav .= '<li><a class="page" id="'.$page.'">'.$page.'</a> </li>';
}
}
}
}
echo $first . $nav . $next; // . $prev . $last
echo '
</ul>
</div>';
} else {
echo "Sorry, there are no matching result for <b>$t</b>.</br></br>1.
Try more general words.</br>2. Try different words with similar
meaning</br>3. Please check your spelling";
}
?>
<?php
error_reporting( 0 );
include 'core/init.php';
echo "<div class=\"searchText\">Search</div><hr />";
//PAGE NUMBER, RESULTS PER PAGE, AND OFFSET OF THE SEARCH RESULTS
if($_GET["page"]) {
$pagenum = $_GET["page"];
} else {
$pagenum = 1;
}
$rowsperpage = 2;
$offset = ($pagenum - 1) * $rowsperpage;
//SEPARATES THE ENTIRE SEARCH TERM INTO KEYWORDS
$t = trim(eregi_replace(" +", " ", $_GET["q"]));
$x = explode(" ", $t);
foreach($x as $z) {
$w++;
if($w==1) {
$u .= "keywords LIKE '%$z%'";
} else {
$u .= "AND keywords LIKE '%$z%'";
}
}
$q = mysql_query("SELECT * FROM article WHERE $u ORDER BY id DESC LIMIT $offset, $rowsperpage");
$page_nums = mysql_num_rows($q); //NUMBER OF RESULTS FOR THE PAGE
//QUERY FOR ALL RESULTS OF THE SEARCH
$total_q = mysql_query("SELECT * FROM article WHERE $u");
$total_nums = mysql_num_rows($total_q); //TOTAL NUMBER OF RESULTS
echo "$total_nums results found !<p>";
$total_pages = ceil($total_nums/$rowsperpage); //NUMBER OF PAGES
//IF THERE ARE RESULTS
if($total_nums) {
if($pagenum<1||$pagenum>$total_pages) {
header("Location: results.php?q=$t");
}
while($r= mysql_fetch_assoc($q)) {
$name = $r['name_article'];
$info = $r['info_article'];
$datum = $r['datum'];
echo "<div class='wellcatalog'>
<div class='width: 400px;'>
<div class='title'><a href=''><b>$name</b></a></div>
<div class='url'>$info</div>
<div class='desc'>$datum</div>
</div>
</div>
";
}
echo '
<div class="pagination">
<ul>';
$range = 7; if($pagenum>1) {
$page = $pagenum - 1;
$first = '<li class="previous"><a class="page" id="1">First <img src="images/tile/previous.png" height="20" width="20"></a> </li> ';
}
//IF NOT ON THE LAST PAGE OF RESULTS
if($pagenum<$total_pages) {
$page = $pagenum + 1;
$next = '<li class="next"><a class="page" id="'.$page.'"><img src="images/tile/next.png" height="20" width="20"> last</a></li> ';
}
for($page=($pagenum-$range); $page<=($pagenum+$range); $page++) {
if($page>=1&&$page<=$total_pages) {
if($total_pages>1) {
if($page==$pagenum) {
$nav .= '<li class="active"><span class="pagenum">'.$page.'</span> </li>';
} else {
$nav .= '<li><a class="page" id="'.$page.'">'.$page.'</a> </li>';
}
}
}
}
echo $first . $nav . $next; // . $prev . $last
echo '
</ul>
</div>';
} else {
echo "Sorry, there are no matching result for <b>$t</b>.</br></br>1.
Try more general words.</br>2. Try different words with similar
meaning</br>3. Please check your spelling";
}
?>