webForumDet fria alternativet

For-satser...

4 svar · 217 visningar · startad av SPiN

SPiNMedlem sedan mars 20005 832 inlägg
#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!

------------------
SPiN, bjorne.w@telia.com

nicclasMedlem sedan feb. 20001 061 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

SPiNMedlem sedan mars 20005 832 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]

------------------
SPiN, bjorne.w@telia.com

[Redigerat av SPiN den 25 okt 2000]

SPiNMedlem sedan mars 20005 832 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 :)

------------------
SPiN, bjorne.w@telia.com

nicclasMedlem sedan feb. 20001 061 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]

Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb