Foros del Web » Programando para Internet » PHP »

Ingresar usuarios (uid)

Estas en el tema de Ingresar usuarios (uid) en el foro de PHP en Foros del Web. Tengo una página donde los usuarios pueden registrarse. En la siguiente tabla de una BD almaceno los datos de ellos: id del usuario (autoincrementa), nick, ...
  #1 (permalink)  
Antiguo 12/08/2007, 22:09
 
Fecha de Ingreso: julio-2006
Mensajes: 50
Antigüedad: 17 años, 9 meses
Puntos: 0
Ingresar usuarios (uid)

Tengo una página donde los usuarios pueden registrarse. En la siguiente tabla de una BD almaceno los datos de ellos:

id del usuario (autoincrementa), nick, contraseña (en md5), ciudad y pais.

Para tomar los datos de todos los usuarios, por ejemplo, para mostrar una lista de todos ellos con sus nombres, tengo la siguiente función:


Código PHP:
$sql="SELECT * FROM usuarios";
$result=mysql_query($sql,$conexion);
for(
$i=1;$row mysql_fetch_array($result);$i++) {
    
$usr[$i]=$row;
}
return 
$usr
Y devuelve un vector con todos los usuarios y sus datos. Entonces para mostrar a todos en una lista hago un for:

Código PHP:
for($i=1;$usr[$i];$i++) {
    echo 
"se llama ".$usr[$i]["nombre"]."<br>";


Me gustaría poder eliminar a los usuarios de la BD. Pero me doy cuenta que con este diseño no puedo, porque no coincidirían el índice i con el ID del usuario.

No es solución cargar los datos como:
Código PHP:
$usr[$row["uid"]]=$row
Porque así habrían espacios entre los ID de los usuarios y el for para mostrarlos se cortaría.

Estoy diseñando mal esto? Qué podría cambiar?

Muchas gracias por la paciencia.
  #2 (permalink)  
Antiguo 12/08/2007, 23:34
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Ingresar usuarios (uid)

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 13/08/2007, 00:27
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Ingresar usuarios (uid)

Mmh.. podrias guardar los datos de los usuarios de la siguiente forma:

Código PHP:
$sql="SELECT * FROM usuarios";
$result=mysql_query($sql,$conexion);
$usr = array();
while(
$row mysql_fetch_assoc($result)) $usr[] = $row
Luego, para mostrarlos seria algo como:
Código PHP:
$tusr count($usr);
for(
$i 0$i $tusr$i++) {
 echo 
"El nick del usuario es ".$usr[$i]['nombre']."<br />";

De esta forma, aunque elimines usuarios, en $usr seguirias teniendo los datos correctos de todos los usuarios y con el ciclo for los seguirias mostrando correctamente.

Espero te sea de ayuda, saludos =)
__________________
Sin Ideas
  #4 (permalink)  
Antiguo 13/08/2007, 11:34
 
Fecha de Ingreso: julio-2006
Mensajes: 50
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Ingresar usuarios (uid)

Gracias, de esta manera no tengo el problema de borrar los registros.
Pero se pierde la comodidad de tener al índice igual al ID del usuario; por ejemplo, si quiero modificar o mostrar al usuario con ID = 3, no puedo poner

Código PHP:
$usr[3]['nombre']. 
Si no que tendría que buscar el índice del usuario de ID=3.

O es mucho pedir y así se hace normalmente?
  #5 (permalink)  
Antiguo 13/08/2007, 12:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Ingresar usuarios (uid)

Puedes hacer tal y cual lo haces, pero para mostrarlos en lugar de usar un for, usas un foreach:
Código PHP:
foreach( $usr as $idUsuario => $usuario ) {
      echo 
$usuario['nombre'];
      echo 
"ID Usuario: " $idUsuario;

y asi guardas como clave el id del usuario:
Código PHP:
$usr[$row["uid"]]=$row
Saludos.
  #6 (permalink)  
Antiguo 13/08/2007, 22:20
 
Fecha de Ingreso: julio-2006
Mensajes: 50
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Ingresar usuarios (uid)

Ahora va todo bien, gracias a todos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:47.