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.
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>'; } ?>
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.