Salve ragazzi, so facendo un sistema di tag nel mio sito, simile a twitter diciamo, funziona anteponendo # al nome e cognome scritto tutto minuscolo e senza spazi. Ora il mio problema è questo, con il metodo in basso riesco a ciclare praticamente tutti i tag nei post, solo che non funziona bene se io taggo persone in ordine diverso da quello del db, nel senso, se io taggo una persona che ha id 2 nel db users non me la riconosce, mentre se metto quella che si trova nella posizione 1, poi 2 ecc allora funziona, come posso correggere? Grazie!

Codice PHP:
public function GetTag ($text) { 
$matches = array(); 
$replacements = array(); 
preg_match_all('/#([^\s]+)/'$text$matches); 
$this->DBConnect(); 
$sql mysql_query("SELECT * FROM users"); 
$e 0
while (
$rows mysql_fetch_array($sql)) { 
    for (
$j 0$c count($matches[1]); $j $c$j++) { 
        
$just_str false
        
$str strtolower(str_replace(' '''$this->GetNameSurname($rows['id']))); 
        if (
$str == $matches[1][$j]) { 
            
$replacements[$j][$e] = "[url='profile.php?user=".$rows[']".$this->GetNameSurname($rows['id'])."[/url]";
        } else { 
            $replacements[$j][$e] = "<span>".$matches[1][$j]."</span>"; 
        } 
     } 
     $e++; 

for ($j = 0, $c = count($matches[1]), $e=0; $j < $c; $j++, $e++)
    $text = str_replace($matches[1][$j], $replacements[$j][$e], $text); 
return $text;