Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Haku

juha127 [11.01.2006 21:56:05]

#

Elikkä olen tehnyt tälläisen haku scriptin sivujeni jäsen osioon:

<?php
//tätä ennen pitäisi olla koodia
$nimi2 = strtolower($nimi);
	$etsi = $_POST['etsi'];
	$etsi = strtolower($etsi);
	$etsi = strnatcasecmp($etsi, $nimi2);

	if ($etsi >= 0 && ! (empty($etsi))) {
		$korostus = "<font color=#00FFFF>";
		$sulku = "</font>";
		}
	else {
		$korostus = " ";
		$sulku = " ";
		}
	echo $korostus . '<u>' . $nimi . '</u>' . $sulku . ' combat <font color=#FF00FF>' . $lvl . '</font><br>';

//tämän jälkeen kuuluisi olla koodia

?>

Koko koodi ei näy tuossa koska tuossa on oleellinen. Ja asiaan, tuo koodi kyllä löytää hakusanan "tavallaan" tuon pitäisi värjätä hakua vastaava jäsenen nimi eri värillä, mutta tuo värjääkin nyt kaikki ennen hakua vastaavaa nimeä olevat jäsenet.
Pitäisikö tuohon väsätä hieman monimutkaisempi ratkasisu vai onko if:ssä vikaa?
Asiaa on mietitty ainaski tunti.

ajv [11.01.2006 22:23:42]

#

Tuo vaikuttaa aika viritelmältä. Tota ilmeisesti käydään loopissa läpi? Tuossa kannattaisi minusta käyttää simppeliä regexpiä:

<?php
$etsi = $_POST['etsi'];
while($nimi = tiedostosta luettu tieto){

   if(preg_match("/({$etsi})/i", $nimi)
      echo '<font color=#00FFFF><u>' . $nimi . '</u></font> combat <font color=#FF00FF>' . $lvl . '</font><br>';
   else
      echo '<u>' . $nimi . '</u> combat <font color=#FF00FF>' . $lvl . '</font><br>';

}
?>

juha127 [12.01.2006 16:19:30]

#

Tuohon kun vielä lisäsin, että jos haku on tyhjä ei tehdä mitään, niin toimi tarpeeksi hyvin tuossa.
Täytyy varmaan seuraavaksi hieman opiskella paremmin noita preg_*** laisekkeita

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta