webForumDet fria alternativet

For-satser...

PHP

4 svar · 217 visningar · startad av SPiN

Medlem sedan mars 20007 896 inlägg
Frågan#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

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]

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

[Redigerat av SPiN den 25 okt 2000]

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 :)

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

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]

277 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
148 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)