• Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.

Како да направам PHP Search Engine?

  • Ја почнал/а темата
  • #1

Ivica_M

Intern
3 октомври 2008
226
3
Сакам да направам Search да има на некој сајт.
Знам дека може со PHP и MySQL датабаза
имам пробувано да направам ама ништо
вели дека нема резултати.
Барав и на интернет ама ништо не ми помогна
дали некој знае како да направам едноставно
само со TextBox и едно Submit копче и ако има
резултати ќе бидат прикажани на истата страна.
Некои мислења и одговори чекам!!!
 

Blagojce

Gaining Experience
26 декември 2007
890
70
Прилеп
Blagojce's setup  
Processor & Cooler
Intel Core i5-3570 3.40GHz
Storage
2 TB
RAM
8 GB
Monitor
ASUS 24" LED Full HD
OS
Windows 10
Види дали ова ќе ти помогне: линк.
 

MetalGear

On your way to fame
14 април 2007
2,997
510
www.ibiz.mk
незнам зошто мислиш дека е тешко со база

едноставно може со да кажеме најпросто со 2 табели
keywords и линк

vo keywords ке ги ставиш сите клучни зборови или она што сакаш кога ке пребаруваат да се покаже за таа страна
а во link се знае линкот до таа страна

после само во пхп ке направиш да листа по зборовите кои се бараат и линковите да ги покаже или да отиде директно на некој

вака лесно звучи но мора да имаш пхп искуство да повржеш пхп со базата

друкше мислам дека може некако да се изведе со мета таговите али не го знам тоа
 

GigaC

Intern
23 април 2008
344
7
www.xeezi.com
Епа вака.. ако добро разбирах PHP можеш да направиш еден `аматерски` пребарувач.
1. Го зимаш текстот што го внесуваш во TextBox.
2. Ги поминуваш(проверуваш) сите записи во полињата од базата..
дали има прво нешто исто со тоа што си го напишал во TextBox.
дали има слично со тоа што си го напишал.
доколку записот од базата се содрзи од повеќе зборови, испитај го секое зборче... итн итн

не велам дека ова е крајно решение и единствено.
како што веќе реков, ова е за почетници.
а би им препорачал на тие што имат во план да ти помогнат да не ти дават линкови туку да го објаснат тоа. поздрав :)
 

vordan

Intern
7 јуни 2008
87
14
Дали на тој некој сајт користиш MySQL база?
Ако да, дали знаеш во кои табели и полиња се наоѓаат податоците кои сакаш да ги пребараш?
Дали на MySQL серверот има „вклучено“ full-text indexing?
Дали сајтот користи некој познат CMS? (Wordpress, Drupal, Joomla ...)
Дали знаеш SQL? (ова за да знам дали ти треба општа насока или конкретен програм).
 

Pepsi Man

Intern
1 март 2008
171
21
pepso.blog.com.mk
Еве ти нешто тука, па пробај

[FONT=Courier New, Courier, mono]<?php [/FONT]
[FONT=Courier New, Courier, mono]$hostname_logon = "localhost" ; [/FONT]
[FONT=Courier New, Courier, mono]$database_logon = "databaseName" ;
$username_logon = "databaseUser" ;
$password_logon = "databasePass" ;
//open database connection
$connections = mysql_connect($hostname_logon, $username_logon, $password_logon) or die ( "Грешка: неможете да се конектирате на дабазата" );
//select database
mysql_select_db($database_logon) or die ( "Грешка: неможете да изберете датабаза" );
[/FONT]
[FONT=Courier New, Courier, mono]//specify how many results to display per page[/FONT]

[FONT=Courier New, Courier, mono]$limit = 10;
[/FONT]
[FONT=Courier New, Courier, mono]// Get the search variable from URL
[/FONT]
[FONT=Courier New, Courier, mono] $var = @$_GET['q'] ;
[/FONT][FONT=Courier New, Courier, mono]//trim whitespace from the stored variable
$trimmed = trim($var);
//separate key-phrases into keywords
$trimmed_array = explode(" ",$trimmed); [/FONT] [FONT=Courier New, Courier, mono]// check for an empty string and display a message.
if ($trimmed == "") {
$resultmsg = "<p>Грешка!</p><p>Ве молиме напишете збор за барање...</p>" ;
}[/FONT]
[FONT=Courier New, Courier, mono]// check for a search parameter
if (!isset($var)){
$resultmsg = "<p>Грешка!</p><p>Нема пронајдено податоци. </p>" ;
}
// Build SQL Query for each keyword entered
foreach ($trimmed_array as $trimm){
// EDIT HERE and specify your table and field names for the SQL query
$query = "SELECT * FROM tablename WHERE field1 LIKE '%$trimm%' OR field2 like '%$trimm%' OR field3 like '%$trimm%' ORDER BY field1 DESC" ;
// Execute the query to get number of rows that contain search kewords
$numresults=mysql_query ($query);
$row_num_links_main =mysql_num_rows ($numresults);[/FONT]
[FONT=Courier New, Courier, mono] // next determine if 's' has been passed to script, if not use 0.
// 's' is a variable that gets set as we navigate the search result pages.
if (empty($s)) {
$s=0;
}[/FONT]
[FONT=Courier New, Courier, mono] // now let's get results.
$query .= " LIMIT $s,$limit" ;
$numresults = mysql_query ($query) or die ( "Couldn't execute query" );
$row= mysql_fetch_array ($numresults);

//store record id of every item that contains the keyword in the array we need to do this to avoid display of duplicate search result.
do{
$adid_array[] = $row[ 'fieldid' ];
}while( $row= mysql_fetch_array($numresults));
} //end foreach

if($row_num_links_main == 0 && $row_set_num == 0){
$resultmsg = "<p>Резултати од: ". $trimmed."</p><p>Се извинуваме, нема пронајдено резултати.</p>" ;
}
[/FONT][FONT=Courier New, Courier, mono] //delete duplicate record id's from the array. To do this we will use array_unique function
$tmparr = array_unique($adid_array);
$i=0;
foreach ($tmparr as $v) {
$newarr[$i] = $v;
$i++;
} [/FONT]
[FONT=Courier New, Courier, mono]// now you can display the results returned. But first we will display the search form on the top of the page
?>[/FONT]

[FONT=Courier New, Courier, mono]<form action="search.php" method="get" name="search">
<div align="center">
<input name="q" type="text" value=" <?php echo $q; ?> " size="15">
<input name="search" type="submit" value="Барај">[/FONT]
[FONT=Courier New, Courier, mono] </div>
</form>

<?php
// display what the person searched for.[/FONT]
[FONT=Courier New, Courier, mono] if( isset ($resultmsg)){
echo [/FONT][FONT=Courier New, Courier, mono]$resultmsg;
[/FONT][FONT=Courier New, Courier, mono]exit();
}else{
echo "Добиени резултати од: " . $var;
}

foreach($newarr as $value){
// EDIT HERE and specify your table and field names for the SQL query
$query_value = "SELECT * FROM tablename WHERE fieldid = '$value'";
$num_value=mysql_query ($query_value);
$row_linkcat= mysql_fetch_array ($num_value);
$row_num_links= mysql_num_rows ($num_value);

[/FONT][FONT=Courier New, Courier, mono]//now let's make the keywods bold. To do that we will use preg_replace function.
//Replace field
[/FONT]
[FONT=Courier New, Courier, mono]$titlehigh = preg_replace ( "'($var)'si" , "<b> //1</b>" , $row_linkcat[ 'field1' ] );
$linkhigh = preg_replace ( "'($var)'si" , "<b> //1</b>" , $row_linkcat[ 'field2' ] );
$linkdesc = preg_replace ( "'($var)'si" , "<b> //1</b>" , $row_linkcat[ 'field3' ] );[/FONT]
[FONT=Courier New, Courier, mono]foreach($trimmed_array as $trimm){
if($trimm != 'b' ){
$titlehigh = preg_replace( "'($trimm)'si" , "<b> //1</b>" , $titlehigh);
$linkhigh = preg_replace( "'($trimm)'si" , "<b> //1</b>" , $linkhigh);
$linkdesc = preg_replace( "'($trimm)'si" , "<b> //1</b>" , $linkdesc);
}
//end highlight[/FONT]
[FONT=Courier New, Courier, mono]?>
<p>
<?php echo $titlehigh; ?><br>
<?php echo $linkhigh; ?><br>
<?php echo $linkhigh; [/FONT][FONT=Courier New, Courier, mono]?>
</p>

[/FONT][FONT=Courier New, Courier, mono]<?php
} //end foreach $trimmed_array
if($row_num_links_main > $limit){
[/FONT][FONT=Courier New, Courier, mono]// next we need to do the links to other search result pages
if ($s>=1) { [/FONT][FONT=Courier New, Courier, mono]// do not display previous link if 's' is '0'
$prevs=($s-$limit);
echo "<div align='left'><a href='$PHP_SELF?s=$prevs&q=$var&catid=$catid'><<< Претходно " .$limit. "</a></div>";
}
// check to see if last page
$slimit =$s+$limit;
if (!($slimit >= $row_num_links_main) && $row_num_links_main!=1) {
// not last page so display next link
$n=$s+$limit;
echo "<div align='right'><a href='$PHP_SELF?s=$n&q=$var&catid=$catid'>Следно >>> " .$limit. "</a></div>";
}
}
} //end foreach $newarr
?>
[/FONT]
 

MetalGear

On your way to fame
14 април 2007
2,997
510
www.ibiz.mk
@пепси наведи од каде ти е кодот ако не е(а не е твој)
вака ги кршиш авторските права на истиот
 

Pepsi Man

Intern
1 март 2008
171
21
pepso.blog.com.mk
Што ќе наведам кога незнам од кого е. Не пишува на кодот кој е кодерот... на компјутерот ги имам преку 500 php скрипти.
 

AMD_fan

Gaining Experience
10 ноември 2007
3,646
139

Pepsi Man

Intern
1 март 2008
171
21
pepso.blog.com.mk

Buzleski

Intern
12 септември 2008
86
1
Еј Pepsi Man велиш дека имаш преку 500 PHP скрипти, како можи и дали можи да ги споделиш со нас.:)
 

Buzleski

Intern
12 септември 2008
86
1
Pepsi Man што направи со скриптите, дали ги Upload-ира, а ако тоа е направено пушти го ликот.
 

Нови мислења

Последни Теми

Статистика

Теми
43,566
Мислења
823,493
Членови
28,073
Најнов член
Death Markk
На врв Дно