Foros del Web » Programando para Internet » PHP »

Cambiar la celda de destino de una baase de datos dependiendo de lo que tiene la ante

Estas en el tema de Cambiar la celda de destino de una baase de datos dependiendo de lo que tiene la ante en el foro de PHP en Foros del Web. Lo que sucede es que me dejaron un problema algo dificil (o por lo menos desde mi punto de vista) que consiste en que si ...
  #1 (permalink)  
Antiguo 30/01/2012, 22:27
Avatar de androide_2999  
Fecha de Ingreso: enero-2012
Ubicación: en todos lados
Mensajes: 12
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta Cambiar la celda de destino de una baase de datos dependiendo de lo que tiene la ante

Lo que sucede es que me dejaron un problema algo dificil (o por lo menos desde mi punto de vista) que consiste en que si yo meto en el campo1 algun valor, no me deje escribir o meter nada nuevo en ese campo y que lo nuevo se ponga en el campo2 y que si campo2 tiene algo escrito se vaya al campo3
  #2 (permalink)  
Antiguo 30/01/2012, 23:26
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Cambiar la celda de destino de una baase de datos dependiendo de lo que ti

Es lógica no tiene nada bueno en absoluto, ya que no existen tablas en db con campos infinitos, ahora, suponiendo que tienes una tabla con muchisimos campos, que logica vas a emplear para mostrar los datos?

Ahora, si aun así quieres implementar algo así lo que tienes que hacer es hacer la consulta sobre el registro e ir verificando campo por campo si esta vacío o no, de no estarlo haces un update al registro y agregas los datos en el campo vacío...

Código PHP:
Ver original
  1. //enlistas los campos que hay en la tabla
  2. $campos = array('campo1','campo2','campo3');
  3. $numCampos = count($campos);
  4. $campo = null;
  5.  
  6. $query = mysql_query('select * from mitabla',$conexion) or die(mysql_error());
  7. while($row = mysql_fetch_asoc($query)) {
  8.       if (empty($campo)) {
  9.             for($i=0; $i<$numCampos; $i++) {
  10.                   $valor = $row[$campos[$i]];
  11.                   if (empty($valor)) {
  12.                         $campo = $campos[$i];
  13.                   }
  14.             }
  15.       }else {
  16.             break;
  17.       }
  18. }
  19.  
  20. if (!empty($campo)) {
  21.       $sql = 'update mitabla set '.$campo.' = '.$nuevoValor.' where id = '.$id;
  22.       mysql_query($sql,$conexion) or die(mysql_error());
  23. }

Es un ejemplo, puedes obtener los campos directamente de mysql con "SHOW COLUMNS mitabla" pero eso requiere otra petición a mysql
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 31/01/2012, 21:41
Avatar de androide_2999  
Fecha de Ingreso: enero-2012
Ubicación: en todos lados
Mensajes: 12
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Cambiar la celda de destino de una baase de datos dependiendo de lo que ti

Muchas gracias, me acabas de salvar

Etiquetas: php+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 20:39.