Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/10/2004, 13:03
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
$result = mysql_query($query, $db_conn);
/* En la siguiente línea... ¿qué es más seguro poner? if ($result>0) ¿o es mejor evaluar la consulta de otra manera? */
if ((?????????) >0 )
para tu caso concreto .. deberías usar al menos:
Código PHP:
$total=mysql_num_rows($result);
if (
$total == 1){
// usuario autentificado correctamente.

Fijate dos cosas:
1) se cuenta el total de registros que arrojó tu consulta ..
2) al usar un par de condiciones (usuario/password) se supone que son únicos .. así que el resultado esperado es 1 o 0 pero no > 0 ..

Como vas a usar esos datos del registro si se encuentra .. te viene bien usar mysql_num_rows() para contrar los registros que arroja una consulta .. Pero, dependiendo de los casos .. a veces suele ser más óptimo contar los registros que arroja una consulta usando SQL:

$sql="SELECT COUNT(*) FROM tabla WHERE .. condiciones";

Eso te arrojará un sólo registro con ese total ..
Código PHP:
$result=mysql_query($sql);
$total=mysql_result($result,0); 
Este tipo de consultas son más optimas . .pues es Mysql el que devuelve el resultado y no es un proceso de "PHP" al entregar Mysql todos los registros que se encontrasen bajo esas condiciones para luego contarlos. Eso sí, .. si luego quieras obtener esos datos (campos) de ese registro(s) si se encuentran (>0) .. tendrías que aplicar otro mysql_query() con el mismo SQL (sin COUNT()). Por eso si quieres "contar" y en función del resultado obtener el total .. para esos casos tal vez sea algo más óptimo usar mysql_num_rows().


Por otro lado ... si vas a usar sesiones .. no uses:
$HTTP_SESSION_VARS['valid_user'] = $userid;

usa en su defecto los arrays supergloblales:
$_SESSION

Sobre todo si vas a usar PHP 4.1.0 en adelante

más info sobre sesiones en:
www.php.net/session

Un saludo,