Autor Tema: php, mysql ingreso  (Leído 4172 veces)

jegggf

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
php, mysql ingreso
« en: 18 de Junio 2014, 23:20 »
hola, tengo el siguiente problema, tengo que ingresar un valore de forma que sea secuencial en en una columna mysql, la misma no es ni PK ni AI, por lo cual estoy tratando de hacerlo con algun bucle for o while sin resultado, hacer autoincrement en una columna que no lo es.

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:php, mysql ingreso
« Respuesta #1 en: 19 de Junio 2014, 18:07 »
Puedes hacer una consulta para extraer el valor más grande en esa columna (que será el último) y seguidamente insertar el valor obtenido más uno, de esa forma te funcionaría como incremental.

Obtener el máximo en la columna sería:

select id, max(nombreColumna)
from nombreTabla
group by id

Aquí tienes ejemplos de max

http://dev.mysql.com/doc/refman/5.0/es/example-maximum-row.html

Saludos

jegggf

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Re:php, mysql ingreso
« Respuesta #2 en: 19 de Junio 2014, 18:24 »
gracias por tu respuesta, el valor que voy a insertar ya lo tengo. El minmo es mayor que todo los que ya estan en la columna, a partir de este valor tengo que generar una secuencia y al final de esta el valor ingresado sera el menor de la columna.


fila 1
fila 2
fila 3
fila 4

valor a ingresar 5
 quedaria asi

fila 5
fila 6
fila 7
fila 8

jegggf

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Re:php, mysql ingreso
« Respuesta #3 en: 19 de Junio 2014, 18:41 »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:php, mysql ingreso
« Respuesta #4 en: 20 de Junio 2014, 08:43 »
Por lo que te he entendido entonces debes hacerlo con un bucle y usando UPDATE para reemplazar el valor que tienes por el nuevo.

Suponiendo que lo que tienes en la columna son valores numéricos y con datos de ejemplo:


$minimoActual sería el valor que tienes mínimo actualmente en la tabla, por ejemplo 1

$maximoActual sería el valor que tienes máximo actualmente en la tabla, por ejemplo 4

$minimoNuevo sería el valor que tiene que reemplazar al mínimo actual, por ejemplo 5

El incremento para todos los índices es $incremento = $minimoNuevo - $minimoActual, en este ejemplo 5 - 1 = 4

Todos los valores tienes entonces que incrementarlos en 4



$link = mysql_connect("sql203.byethost7.com", "b7_10356956", "*****");
mysql_select_db("b7_10356956_mibasededatos", $link);


for ($numero = minimoActual; $numero <= maximoActual; $numero++){

mysql_query("UPDATE `nombreTabla` SET `nombreColumna`= ($numero+$incremento) WHERE `valorColumna`= $numero", $link);

}

mysql_close($link); // Cerramos la conexion con la base de datos


La sintaxis no es exactamente así, habría que probarla.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".