Azzolina....

Allora sbagli la stampa... come gia' ti e' stato detto dovresti fare cosi':
codice:
SELECT * FROM $nome_tabella_rec LIMIT $primo, $per_page"; 
$result2 = @mysql_query($sql2, $connessione); 

$i = 0; // <- inizializza il contatore

while($riga = @mysql_fetch_array($result2)) { 

// le tue cose buffe.....

if($i % 2 == 0 ) {

$elencorisultati .= " 
dove i santissimi mettono prima l'immagine e poi la stringa

} else {

$elencorisultati .= " 
dove i santissimi mettono prima la stringa e poi l'immagine

}  // fine dell'else

$i++;  //<- incrementa il contatore

}  //   fine del while
Come e' la mimica del giochino... All'inizio del while il contatore e' = zero. Il resto della divisione e' zero. quindi esegue l'if.

Arriva al fondo e incrementa il contatore ... ok? ora il contatore segna 1. Inizia un'altro ciclo while. Il resto della divisione sara' 1 ( 1 diviso 2 = 0 con resto di 1) quindi l'if dice che e' falso che il resto e' zero ed esegue l'else.... E tu da furbacchione matricolato come certamente sei ... nella stampa di else hai invertito le posizioni di stampa tra immagine e stringa.

Arriva al fondo , si incrementa il contatore che segna ora 2.
2 diviso 2 uguale a 1 con il resto di zero. l'if e' vera... e riparte la giostrina....

Ma non farmi leggere quella roba in html altrimenti cado fulminato dal sonno...