Din sql-fråga måste gruppera dina villkor korrekt
$query=mysql_query("select * from persons where status like 'found' and (firstname like '%$searchtext%' or lastname like '%$searchtext%') order by date desc LIMIT $start,$per_page ");
Det du gjorde motsvarar något sånt här i koden:
if (status == 'found' && firstname like 'a')
{
return row;
}
else if (lastname like 'a')
{
return row;
}
Om du ser detta kan det vara lite tydligare om det första villkoret misslyckas (det enda som kontrollerar om status == 'found'
då hoppar den till nästa villkor (efter OR-satsen) och kontrollerar bara om lastname
matcher.
Du måste gruppera ditt urvalsutdrag så att det kontrollerar det korrekt:
...where status like 'found' and (firstname like '%$searchtext%' or lastname like '%$searchtext%') order by...
I det här fallet grupperar vi båda firstname
och lastname
villkor tillsammans (inom parentes) så att hela ELLER-villkoret resulterar i ett enda sant/falskt svar, det svaret tillämpas sedan på status
kolla efter.