Търсене в текстова база данни.

skatebord

Registered
Може ли да стане така, че това:
Код:
<?php

$search=$HTTP_POST_VARS['search'];

$search=str_replace(" ","",$search);
if ($search=='')
{exit;}
$file= file("db/albums.inc");
$n=count($file);

for ($i=0; $i<$n;$i++)
{
$file1=$file[$i];
$file1=str_replace(" ","",$file1);
$file1=str_replace("&","",$file1);
$file1=str_replace("\n","",$file1);

if (eregi($search,$file1))
{
$line = explode ("()",$file[$i] );

echo " Име: $line[0]<br/>
Автор: $line[1]<br/>
Дата: $line[2]<br/>";

}
}

?>

Да търси само в $line[0] и $line[1], а да изкарва цялата информация?
 
Еми логично нали трябва да си изкараш цялата информация какви са тези двойки $i < 2 да да. Еми лек за втори $line отваряш втори for



Код:
<?php

$search = $_POST['search'];

$search = str_replace(" ","",$search);
if($search=='')
{exit;}

$file = file("db/albums.inc");
$n = count($file);

for ($i=0; $i<$n;$i++)
{
     $file1=$file[$i];
     $file1= str_replace(" ","",$file1);
     $file1= str_replace("&","",$file1);
     $file1= str_replace("\n","",$file1);
     for($j = 0; $j < $n; $j++)
     {
            $file2 = $file[$j];
            $file2 = str_replace(" ","",$file2);
            $file2 = str_replace("&","",$file2);
            $file2 = str_replace("\n","",$file2);
      
             if (eregi($search,$file1))
            {
                   $line = explode("()",$file1);
                   $line = explode("()", $file2);

                   echo " Име: $line[0]<br/>
                   Автор: $line[1]<br/>
                   Дата: $line[2]<br/>";

           }
      }
}

?>


И междудругото аз не можах да разбера как така да търи само в $line[0]/[1] като ти си ги изкарваш тези данни и я кажи в файла как ти са наредени данните
 
Това е търсачка, която искам да отваря файла но да търси съвпадения в $line[0]/[1]. Даннитие са ми подредени така:

Код:
Babini kompoti()Administrator()1.1.2008г
Кристални кълба за по леф()Administrator()1.12.2008г
Памперси()Administrator()12.1.2008г
Футболни гащи()Administrator()16.1.2008г
И така нататък :wink: Сега ще пробвам товоя код :)
 
Тоя код, който използваш не знам от къде си го копирал, но е отвратителен и е много далече от качественото програмиране.
Все пак ето ти един вариант на база на горния код. Тествах го:
Код:
<?php
$search = $_POST['search'];

$search = str_replace(" ","",$search);
if($search=='')
{exit;}

$file = file("db/albums.inc");
$n = count($file);

for ($i=0; $i<$n;$i++)
{
	list($artikul,$avtor,$data)=preg_split('/\(\)/',$file[$i]);
	if(preg_match('/'.$search.'/',$artikul) || preg_match('/'.$search.'/',$avtor)){
	echo "Artikul: $artikul<br>
	Avtor: $avtor<br>
	data: $data<br>
	";
	}
}
?>
 

Back
Горе