Foros del Web » Programando para Internet » PHP »

introducir datos en una bd mysql solo en los campos libres

Estas en el tema de introducir datos en una bd mysql solo en los campos libres en el foro de PHP en Foros del Web. buenos dias a todos, quisiera saber si hay alguna forma de hacer un insert en una bd pero una cantidad de veces determinada y en ...
  #1 (permalink)  
Antiguo 27/04/2011, 07:10
 
Fecha de Ingreso: enero-2011
Ubicación: Colombia
Mensajes: 61
Antigüedad: 13 años, 3 meses
Puntos: 1
introducir datos en una bd mysql solo en los campos libres

buenos dias a todos, quisiera saber si hay alguna forma de hacer un insert en una bd pero una cantidad de veces determinada y en los campos libres

por ejemplo, estoy haciendo un sitio para manejar la asignacion de unas placas, el usuario entra la primera placa libre y la cantidad de placas a asignar, las placas ya estan cargadas en la bd, pero como puede haber placas asignadas entre el rango, entonces que saltee ese registro y que inserte datos en el proximo registro libre

mas o menos esta situacion

numero placa nombre estado
1 A0 0 <- esta esta libre
2 A1 PEPITO 1 <- Esta esta ocupada
3 A2 JOSE 1 <-ocupada
4 A3 0<- libre
5 A4 0
6 A5 RAMIRO 1
7 A6 0
hay alguna forma de que si el usuario ingresa que va a comenzar de la placa A0 y quiere asignar 4 placas, el insert se haga en el numero 1, en el 4, en el 5 y en el 7, mejor dicho, en los primeros 4 registros que tengan el campo estado=0
  #2 (permalink)  
Antiguo 27/04/2011, 07:16
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 19
Respuesta: introducir datos en una bd mysql solo en los campos libres

Mira, asi a primera vista lo que se me ocurre es tener una tabla adicional en la que tengas los campos libres y que esa tabla vallas eliminando los registro segun se van insertando.

¿Se entiende?



Espero haber sido de utilidad.

Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #3 (permalink)  
Antiguo 27/04/2011, 07:40
Avatar de Pablo Ayala  
Fecha de Ingreso: septiembre-2005
Ubicación: Cancún, México
Mensajes: 231
Antigüedad: 18 años, 7 meses
Puntos: 28
Respuesta: introducir datos en una bd mysql solo en los campos libres

Creo que una consulta con IF, no?

primero... busco donde placa = 0, si es igual a cero entonces inserto dato 1, etc... etc...

saludos
__________________
Atentamente,

Pablo Ayala.
Si vas a responder algo en el foro que sea con amabilidad.
  #4 (permalink)  
Antiguo 27/04/2011, 07:53
 
Fecha de Ingreso: enero-2011
Ubicación: Colombia
Mensajes: 61
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: introducir datos en una bd mysql solo en los campos libres

Cita:
Iniciado por ArkangelGammar Ver Mensaje
Mira, asi a primera vista lo que se me ocurre es tener una tabla adicional en la que tengas los campos libres y que esa tabla vallas eliminando los registro segun se van insertando.

¿Se entiende?



Espero haber sido de utilidad.

Saludos
me podrias explicar un poco mas, no te entiendo, gracias
  #5 (permalink)  
Antiguo 27/04/2011, 08:05
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: introducir datos en una bd mysql solo en los campos libres

No te compliques tanto, mysql tiene su método para lograr eso.

Código MySQL:
Ver original
  1. UPDATE mi_tabla SET estado=1 WHERE estado=0 LIMIT 4

si quieres que sea en un orden especifico agrega antes de "LIMIT" un orden, por ejemplo: ORDER BY numero
  #6 (permalink)  
Antiguo 27/04/2011, 08:09
 
Fecha de Ingreso: enero-2011
Ubicación: Colombia
Mensajes: 61
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: introducir datos en una bd mysql solo en los campos libres

Cita:
Iniciado por stramin Ver Mensaje
No te compliques tanto, mysql tiene su método para lograr eso.

Código MySQL:
Ver original
  1. UPDATE mi_tabla SET estado=1 WHERE estado=0 LIMIT 4

si quieres que sea en un orden especifico agrega antes de "LIMIT" un orden, por ejemplo: ORDER BY numero
te pregunto, ese limit vendria siendo un contador? por ejemplo si el usuario pide 4 placas, en el limit pongo 4, y asi me modificaria unicamente los 4 proximos registros que tengan el estado=0, sin importar que no esten consecutivos?
  #7 (permalink)  
Antiguo 27/04/2011, 08:30
 
Fecha de Ingreso: enero-2011
Ubicación: Colombia
Mensajes: 61
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: introducir datos en una bd mysql solo en los campos libres

Cita:
Iniciado por stramin Ver Mensaje
No te compliques tanto, mysql tiene su método para lograr eso.

Código MySQL:
Ver original
  1. UPDATE mi_tabla SET estado=1 WHERE estado=0 LIMIT 4

si quieres que sea en un orden especifico agrega antes de "LIMIT" un orden, por ejemplo: ORDER BY numero

ya probe esa solucion y funciona de maravilla, ya me estaba yo ahogando en un vaso de agua...muchas gracias me arreglaste el dia
  #8 (permalink)  
Antiguo 27/04/2011, 08:43
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: introducir datos en una bd mysql solo en los campos libres

perdona no haberte respondido antes, si, el limit indica cuantos registros vas a modificar, que bueno que te haya servido :)
  #9 (permalink)  
Antiguo 27/04/2011, 08:46
 
Fecha de Ingreso: enero-2011
Ubicación: Colombia
Mensajes: 61
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: introducir datos en una bd mysql solo en los campos libres

Cita:
Iniciado por stramin Ver Mensaje
perdona no haberte respondido antes, si, el limit indica cuantos registros vas a modificar, que bueno que te haya servido :)
hola, que pena molestarte, no se porque en el phpmyadmin la consulta me funciona, pero cuando la ingreso en el codigo php con las variables q necesito me bota error,

mira aca esta el codigo de la consulta

$result = mysql_query("UPDATE autos SET concesionario= '".$concesionario."',nombre= '".$nombre."', estado=1, matricula=0 WHERE numero >= '".$val['numero']."' AND estado=0 LIMIT '".$rango."'",$link) or die ( mysql_error() );

sera q en php no se puede usar el limit?

me sale este error

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''5'' at line 1

Última edición por nzick; 27/04/2011 a las 08:47 Razón: falto parte
  #10 (permalink)  
Antiguo 27/04/2011, 08:59
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: introducir datos en una bd mysql solo en los campos libres

quita las comillas a los numeros:

$result = mysql_query("UPDATE autos SET concesionario= '".$concesionario."',nombre= '".$nombre."', estado=1, matricula=0 WHERE numero >= '".$val['numero']."' AND estado=0 LIMIT '".$rango."'",$link) or die ( mysql_error() );

creo que eso debería solucionar el problema
  #11 (permalink)  
Antiguo 27/04/2011, 09:00
 
Fecha de Ingreso: enero-2011
Ubicación: Colombia
Mensajes: 61
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: introducir datos en una bd mysql solo en los campos libres

el problema esta es en el limit, si en el limit pongo un numero, por decir 4, funciona bien, pero si lo pongo con la variable rango me bota ese error, sera q el limit no se puede manejar con variables?
  #12 (permalink)  
Antiguo 27/04/2011, 09:38
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
Respuesta: introducir datos en una bd mysql solo en los campos libres

Cita:
Iniciado por nzick Ver Mensaje
el problema esta es en el limit, si en el limit pongo un numero, por decir 4, funciona bien, pero si lo pongo con la variable rango me bota ese error, sera q el limit no se puede manejar con variables?
esq 4 <> '4'
prueba a quitar las comillas como te dijeron, ya que limit solo acepta numeros y si lo encomillas ya no es un numero

Etiquetas: bd, campos, introducir, libres, mysql
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 06:37.