Podrías tener esta función:
Código PHP:
function getNombre($sexo, $link) {
$sql = "SELECT * FROM `usuarios` WHERE `aprobacion` = 'si' AND `sexo` = '$sexo' ORDER BY RAND() LIMIT 1";
$r = mysql_query($sql, $link); //ATENCIÓN! Función deprecada ;)
$arr = mysql_fetch_array($r);
return $arr['nombre'];
}
Con esa función, llamándola en plan "$nombre = getNombre("mujer", $link);", te dará un nombre aleatorio de mujer... (o de lo q le pases!)... Me parece una forma más limpia q un include!
Ahora, para el problema q dices de la posicion...
Yo, personalmente, si tuviese q "arreglar" ese script... así, a lo facil, sin modificar mucho... añadiria los scores como %s para pasarselos por el printf.
Así podrías tener esto:
Código PHP:
$pregunta[0]['nombre'] = 'Nombre Correcto';
$pregunta[0]['score'] = 1;
$pregunta[1]['nombre'] = getNombre('man', $link);
$pregunta[1]['score'] = 0;
$pregunta[2]['nombre'] = getNombre('man', $link);
$pregunta[2]['score'] = 0;
$pregunta = shuffle($pregunta);
Y al printf le añades los argumentos para q concuerde... no sé si me he explicado! (Sólo quiero q lo entiendas, no hacer q puedas hacer un copy/paste)