Cita:
Iniciado por nicolaspar
Por que no haces directamente un if sobre la asignación de $row?; No digo que sea el problema, pero es lo mejor:
Código PHP:
if( $row = mysql_fetch_array($resultado) ){
....
}
Y en cuanto a tu problema...
El el código original: Estas asignado, iterando y no se que más siempre sobre el mismo resource...Si vas a mover el puntero (o esperas eso) usá mysql_data_seek().
En el segundo código: no veo donde haces un simple echo, solo estas asignando valores a dos sessions. Hace lo mismo, si es uno un if sobre la asignación, si son varios un while directamente.
aqui los dos codigos:
el primero de inicio de secion con un formulario simple:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<form name="formulario" method="post" action="final.php">
<div align="left"><strong><font size="3" face="Arial, Helvetica, sans-serif">Nombre
Usuario:</font></strong></div>
<input name="nombre" type="text" id="nombre" />
<div align="left"><font size="3" face="Arial, Helvetica, sans-serif"><strong>Contraseña:</strong></font></div>
<input name="clave" type="password" id="clave">
<div align="right">
<label for="entrar"></label>
<div align="left"></div>
<div align="left">
<input type="submit" name="entrar" id="entrar" value="entrar" onClick="validar()" />
</div></div>
</form>
</body>
</html>
el segundo con la hoja que toma el nombre de usuario y contraseña de la pagina anterior, incluye el if que me dijiste y las modificacioes que me han sugerido
Código PHP:
<?php
ob_start();
session_start();
//recojo el valor del formulario mediante $_POST
echo $nombre = $_POST['nombre'];
echo $clave = $_POST['clave'];
$i=0;
//conexion con mysql
$dp_di="localhost";
$db_usuario="root";
$db_clave="admin";
$conectar=mysql_connect ($dp_di,$db_usuario,$db_clave);
if ($conectar==NULL)
{
printf ("Error");
}
//conectamos con la base de datos prueba
$db='estudio';
mysql_select_db($db, $conectar);
//hago la consulta a la tabla usuarios
$consulta= "SELECT * FROM principal WHERE rut_proveedor='$nombre' and codigo_bip=SHA1('$clave')";
$resultado=mysql_query($consulta,$conectar);
//checas si devuelve un resultado la consulta
while(mysql_num_rows($resultado) == 1) {
// Asignas la fila a una variable
if( $row = mysql_fetch_array($resultado) );
$_SESSION['user'] = $row['nombre']; //recojo en una sesion el nombre del usuario
$_SESSION['password'] = $row['clave']; //recojo en una sesion la contraseña del usuario para identificarse
if ( $row = mysql_fetch_array($resultado) );
//$_SESSION['estudio']=$row[$i]; //recogo en una sesion el nombre de la bd que puede utilizar el usuario
echo "<tr><td width=113>Nombre: ".$row ['nombre_proveedor']."</td>";
echo "<td width=113>Rut: ".$row ['rut_proveedor']."</td>";
echo "<td width=113>Codigo: ".$row ['codigo_bip']."</td>";
echo "<td width=113>Neto: ".$row ['neto']."</td></tr>";
//y todos los demas campos que deseas mostrar.
}if ($resultado == FALSE)
{
//si llegas aqui es por que no se encontro el usuario o no coincidio con el password..
//hacemos lo que quieras..
echo "El usuario no existe";
}
?>
nota:si tengo echo, fijate bien en el codigo a lo mejor soy yo el que no entiende pero tiene echo
gracias a todos por estar ayudandome de verdad gracias