For-satser...

PHP

4 svar · 222 visningar · startad av SPiN

Medlem sedan mars 20007 896 inlägg
Trådstart#1

Hej!
Jag håller på att göra ett sökscript för min sajt, men det går inte som jag vill...

Jag försöker använda följande script:

<?
	$searchFile = "searchq.txt";
	$sFile = file($searchFile);
	$openSearch = fopen($searchFile, 'r');
	$counter = 0;
	$maxlines = count($sFile) - 1;
	
	For($counter=1; $counter<$maxlines; $counter++)
	{
		$lineCount = $counter - 1;
		$myLine = $sFile[$lineCount];
		$arrLines = split(", ", $myLine);
		$theSize = sizeof($arrLines) - 1;
		$description = $arrLines[$theSize];
		$results = 0;
		
		For($countLine; $countLine<$theSize; $countLine++)
		{
			If($arrLines[$countLine] == $searchq)
			{
				$results = $results++;
				echo "<a href=\"$arrLines[0]\">$arrLines[0]</a> - $description<br>";
			}
			Else
			{
				$results = $results;
			}
		}
	}
	
	fclose($openSearch);
?>

Men scriptet söker inte igenom hela min textfil, utan skriver bara ut första raden om man har ett sökord som matchar ett ord för just den sidan!
Annars lämnar den sidan helt blank...

Beror det på att man inte kan ha en FOR-sats i en annan? :q

Tacksam för svar!

Medlem sedan feb. 20001 050 inlägg
#2

Nej det beror inte på att du har en For i en annan :)

Tror att felet är på din
For($counter=1; $counter<$maxlines; $counter++)
rad.
Prova med
For($counter=1; $counter<=$maxlines+1; $counter++)
så kanske det fungerar bättre?!

/nicclas - http://www.nyhetsrubriker.com

Medlem sedan mars 20007 896 inlägg
#3

Nope... ger ingenting.

Det verkar som att scriptet bara läser den översta raden i .txt-filen, och sen struntar i resten av scriptet.

Jobbit :l

[redigerat]Åhhhhh vad simpelt det va! Fyfan :)
Min andra For-sats såg ut så här:
For($countLine; $countLine<$theSize; $countLine++)
när den ska se ut så här, med $countLine=0; :
For($countLine=0; $countLine<$theSize; $countLine++)
Simpelt :e
[/redigerat]

Medlem sedan mars 20007 896 inlägg
#4

Nytt problem!

Varför vill inte variabeln $results ökas med ett för varje träff?
Min kod ser nu ut så här:

<?
	$searchFile = "searchq.txt";
	$sFile = file($searchFile);
	$openSearch = fopen($searchFile, 'r');
	$maxlines = count($sFile);
	$results = 0;
	
	For($counter=0; $counter<$maxlines+1; $counter++)
	{
		$lineCount = $counter;
		$myLine = $sFile[$lineCount];
		$arrLines = split(", ", $myLine);
		$theSize = sizeof($arrLines) - 1;
		$description = $arrLines[$theSize];
		
		For($countLine=0; $countLine<$theSize; $countLine++)
		{
			If($arrLines[$countLine] == $searchq)
			{
				$results = $results++;
				echo "<a href=\"$arrLines[0]\" target=\"blank\">$arrLines[0]</a> - $description<br>";
			}
		}
	}
	If($results == 0) { echo "Din sökning gav inga träffar."; }
	fclose($openSearch);
?>

Hoppas nån vet hur jag ska lösa det... blir snart tokig :)

Medlem sedan feb. 20001 050 inlägg
#5

Ändra raden till bara $result++; eller till $result=++$result; så blir det nog bra.

/nicclas

[Redigerat av nicclas den 26 okt 2000]

252 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)