Un query es la sentencia SQL que utilizas.
La U significa el subnombre que le usuarios para no estar repitiendo usuarios.nombre, usuarios.apellidos etc...
Sino que en el primer query
$consulta22 = "SELECT nombre, apellidos, ciudad, pais FROM usuarios WHERE nombre='$nombrebusqueda'";
te bota nombre y apellido , ciudad y pais
$dostres = "SELECT * FROM directorio";
este te bota la foto.......
pero quien te da la certeza que el primer query que haces con esa busqueda sea exactamente los resultados de la otra(hablando del orden).
Me explico:
$consulta22 = "SELECT nombre, apellidos, ciudad, pais FROM usuarios WHERE nombre='$nombrebusqueda'";
Arroja
Juanito Perez
Juanito García
y cuando haces
$dostres = "SELECT * FROM directorio";
con foto = 3
con foto = 2
....
No necesariamente te lo arroja en el mismo orden.
Código PHP:
<?
$nombrebusqueda=$_POST['nombre'];
$seleccion22 = mysql_select_db('base');
if (!$seleccion22) echo 'No se ha podido seleccionar la BBDD';
$consulta22 = "SELECT U.nombre, U.apellidos, U.ciudad, U.pais, D.id FROM usuarios U , directorio D WHERE U.nombre='$nombrebusqueda' and D.nombre=$nombrebusqueda''";
$resultado22 = mysql_query($consulta22) or die('La consulta falló: ' . mysql_error());
$linea22 = mysql_fetch_array($resultado22);
$ruta=''.$linea22['D.id '].'/imagenes_perfil/01';
do {
?>
</div>
<p> </p>
<table width="487" border="0">
<tr>
<td width="83" rowspan="3" align="center" valign="middle"><img src="<? echo $ruta; ?>" alt="" name="fotoperfil" width="78" height="64"></td>
<td width="394"><?php print ("" .$linea22['U.nombre']. "" ); ?> <?php print ( "" .$linea22['U.apellidos']. ""); ?></td>
</tr>
<tr>
<td><?php print ("" .$linea22['U.pais']. "" ); ?> , <?php print ( "" .$linea22['U.ciudad']. ""); ?></td>
</tr>
<tr>
<td>enviar mensaje y solicitud amigo</td>
</tr>
</table>
<?php
} while ($linea22 = mysql_fetch_array($resultado22)
?>