Foros del Web » Programando para Internet » PHP »

enumerar un atributo de la tabla de mysql

Estas en el tema de enumerar un atributo de la tabla de mysql en el foro de PHP en Foros del Web. Hola amigos. Les cuento. Por un x motivo necesito enumerar una atributo (no primario) llamado "Cant" en mi base de datos mysql. Este atributo no ...
  #1 (permalink)  
Antiguo 20/09/2011, 14:05
 
Fecha de Ingreso: septiembre-2006
Mensajes: 10
Antigüedad: 18 años, 2 meses
Puntos: 0
enumerar un atributo de la tabla de mysql

Hola amigos.
Les cuento. Por un x motivo necesito enumerar una atributo (no primario) llamado "Cant" en mi base de datos mysql.
Este atributo no tiene que ingresarlo el usuario... la idea es que el atributo se llene con 1 2 3 4 5 6 ...

he tratado de hacerlo con un UPDATE pero me actualiza toda la tabla.

Aca esta el codigo que he ocupado que solo me guarda el total de registros en todas las filas de "Cant"

Código PHP:
 $tabla=mysql_query("Select * from remuneracion",$conexion);
 
$i=1;
  while (
$fila mysql_fetch_assoc($tabla)) {
     
mysql_query ("UPDATE remuneracion SET Cant=$i limit 1");
      
$i=$i+1;
  } 
y tambien este:
Código PHP:
 $tabla=mysql_query("Select * from remuneracion",$conexion);
 
$i=1;
  while (
$fila mysql_fetch_assoc($tabla)) {
     
$fila['Cant']=$i;
      
$i=$i+1;
  } 
Pero no hay caso, no puedo copiar una variable (en este caso $cant) fila por fila de una columna.

Gracias por su ayuda.. muy buena pagina
  #2 (permalink)  
Antiguo 20/09/2011, 14:17
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 14 años
Puntos: 51
Respuesta: enumerar un atributo de la tabla de mysql

No estás pasandole la conexión al mysql query, sería así:

Código PHP:
Ver original
  1. $tabla=mysql_query("Select * from remuneracion",$conexion);
  2.  $i=1;
  3.   while ($fila = mysql_fetch_assoc($tabla)) {
  4.      mysql_query ("UPDATE remuneracion SET Cant=$i limit 1", $conexion);
  5.       $i=$i+1;
  6.   }

Otra cosa, estas poniendo LIMIT 1, o sea que se va a limitar a hacer el UPDATE en el primer registro que encuentra ( y solo ese ). Si querés que se haga en todos, elimina el 'limit 1'.
  #3 (permalink)  
Antiguo 20/09/2011, 14:31
Avatar de Physlet  
Fecha de Ingreso: octubre-2010
Ubicación: Panamá
Mensajes: 48
Antigüedad: 14 años, 1 mes
Puntos: 9
Respuesta: enumerar un atributo de la tabla de mysql

Con el ciclo while() estás recorriendo cada fila de la tabla y la variable $fila está almacenando un arreglo con los campos de la fila actual. Cada registro debe tener una clave primaria autonumérica, ¿verdad? De ser así, si la has llamado 'id', puedes usar WHERE en tu consulta UPDATE de la siguiente forma:

mysql_query("UPDATE remuneracion SET Cant = ".$i." WHERE id = ".$fila['id']);

Lo que hace es actualizar cant con el número del contador al ID especificado por $fila['id'].

--

Cita:
Iniciado por walterdevel Ver Mensaje
No estás pasandole la conexión al mysql query, sería así:

Código PHP:
Ver original
  1. $tabla=mysql_query("Select * from remuneracion",$conexion);
  2.  $i=1;
  3.   while ($fila = mysql_fetch_assoc($tabla)) {
  4.      mysql_query ("UPDATE remuneracion SET Cant=$i limit 1", $conexion);
  5.       $i=$i+1;
  6.   }

Otra cosa, estas poniendo LIMIT 1, o sea que se va a limitar a hacer el UPDATE en el primer registro que encuentra ( y solo ese ). Si querés que se haga en todos, elimina el 'limit 1'.
No es necesario pasar el parámetro de la conexión, ya que esas funciones interpretan la última conexión activa.
  #4 (permalink)  
Antiguo 20/09/2011, 19:36
 
Fecha de Ingreso: septiembre-2006
Mensajes: 10
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: enumerar un atributo de la tabla de mysql

Primero gracias a walterdevel y Physlet.
Lo de Physlet me funciono perfecto, muchas gracias...

el código final quedo así:

Código PHP:
Ver original
  1. $tabla=mysql_query("Select * from remuneracion",$conexion);
  2.  $i=1;
  3.   while ($fila = mysql_fetch_assoc($tabla)) {
  4.      mysql_query ("UPDATE remuneracion SET Cant=$i WHERE Rut=".$fila['Rut']."");
  5.     $i=$i+1;
  6.   }

No sabia como dejar la condición WHERE, lo pensé pero no se me ocurrió, ahora tratare de entender mas lógicamente la respuesta

Etiquetas: enumerar, mysql, registro, tabla, atributos, variables, usuarios
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 01:48.