No estoy diciendo que sean lo mismo lo que estoy diciendo es que en el query se esta haciendo una consulta que va a generar un resource en caso de que el usuario y contraseña sean iguales es decir si "pepito" y "123456" estan en la base de datos genera un resource exitoso en caso de que sea diferente o la contraseña o el usuario retorna falso es decir si "if (reg) {" se ejecuta es porque se encontro un resource en la consulta y vuelvo y lo repito la otra condicion $usuario[1]==$_REQUEST['clave']....... es algo que nunca va a dar diferente ya que siempre sera igual o muestrame un ejemplo donde de lo contrario
al decir "Rebundancia" yo supuse que quisiste decir Redundacia
que se define con algo como:
redundancia
1. f. Repetición inútil de un concepto:
la expresión "subir arriba" constituye una redundancia.
y ahora me dices que
"No estoy diciendo que sean lo mismo"
te repito...
if ($usuario[1]==$_REQUEST['clave'] && $usuario[1]==$_REQUEST['nombre'])
es como alternativa a mysql_num_rows para ver si se regreso un registro
Ejemplo:
Tabla (BD): usuarios
--------------------
[doHtml]
<table border='1'>
<tr><th>nombre</th><th>clave</th></tr>
<tr><td>pepito</td><td>123456</td></tr>
<tr><td>juanito</td><td>555</td></tr>
<tr><td>dianita</td><td>diana</td></tr>
</table>[/doHtml]
login.php
usuario: [doHtml]<input value='pepito'>[/doHtml]
clave: [doHtml]<input value='123'>[/doHtml]
procesar.php
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
<?php
$con=mysql_connect("localhost","USER","PASS");
mysql_select_db("prueba",$con);
$reg= mysql_query("select nombre,clave from usuarios where nombre='
pepito' and clave='
123'",$con);
if ($reg )
{
echo "Sus datos son correctos";
echo "<br />";
echo "En breve sera redirigido al guestbook";
}
else
{
echo "sus datos son incorrectos";
}
?>
</body>
</html>
<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
La consulta se proceso con exito, pues no existe error de sintaxis o cosas por el estilo por lo tanto $reg devuelve resource que en el if se 'traduce' como true (o sea no devolvio falso

)
Por lo tanto le mostrara
Sus datos son correctossin embargo no lo son pues la clave de pepito es 123456 no 123
Te invito que hagas pruebas y sigamos comentando
espero que le en cuentres sentido del porque no basarse en if ($reg ) como condicion de que encontro al usuario
es que si no quieres que muestre informacion que puede ser usada por intrusos puede colocar otro tipo de mensaje que no sea mysql_error()
claro, por eso el comentario "solo para Debug" para que el desarrollador pueda ver el mensaje del servidor de la base de datos se utiliza mysql_error() para encontrar el error, y por supuesto una vez que este corregido se comenta la linea (para ocasiones posteriores) y se coloca un mensaje para el usuario

Saludos