Foros del Web » Programando para Internet » PHP »

Problema con el Select

Estas en el tema de Problema con el Select en el foro de PHP en Foros del Web. Hola, recurro a ustedes porque son los únicos que siempre me han sabido dar una solución. Mi problema se presenta cuando quiero actualizar los datos ...
  #1 (permalink)  
Antiguo 03/08/2010, 15:37
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 6 meses
Puntos: 0
Problema con el Select

Hola, recurro a ustedes porque son los únicos que siempre me han sabido dar una solución. Mi problema se presenta cuando quiero actualizar los datos de una tabla, el objetivo es hacer un update de varios registros que cumplan con una misma condición.
Para ilustrarme mejor:
111 - 222 - 333 - 444 - 555 -
         XXX
XXX
                   XXX
                            XXX

Lo que busco hacer es cambiar las XXX por un valor común. He tratado de hacerlo a través de un update pero no me ha funcionado.
  #2 (permalink)  
Antiguo 03/08/2010, 15:40
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema con el Select

eso es con SQL: UPDATE table SET campo = value WHERE campo = 'xxx'; no tiene que ver directamente con PHP
  #3 (permalink)  
Antiguo 03/08/2010, 15:50
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Problema con el Select

El tema es que me pide el nombre del campo de la clausula where, pero en realidad es que lo modifique en todos los campos donde encuentre las XXX
  #4 (permalink)  
Antiguo 03/08/2010, 15:57
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema con el Select

pues tendrás que armar y ejecutar 1 sql por cada campo, usando mysql_num_fields y mysql_fetch_field, tal como en el ejeplo #1 del manual: http://www.php.net/manual/es/functio...etch-field.php con el objetivo de que obtengas esto:

UPDATE table SET campo1='valor' WHERE campo1='xxx';
UPDATE table SET campo2='valor' WHERE campo2='xxx';
etc.
  #5 (permalink)  
Antiguo 03/08/2010, 16:08
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Problema con el Select

Te transcribo lo que formule y no me funciona:

if ($_REQUEST['nuevopiloto'] != NULL ) {
mysql_query("update torngrid_pilotos set piloto='$_REQUEST[nuevopiloto]' where owner='$_REQUEST[owner]' ",$conexion) or die("Problemas en el select:".mysql_error());
mysql_query("update torngrid_carreras set primpuesto='$_REQUEST[nuevopiloto]' where primpuesto='$_REQUEST[viejopiloto]'",$conexion) or die("Problemas en el select:".mysql_error());
mysql_query("update torngrid_carreras set segpuesto='$_REQUEST[nuevopiloto]' where segpuesto='$_REQUEST[viejopiloto]'",$conexion) or die("Problemas en el select:".mysql_error());
mysql_query("update torngrid_carreras set terpuesto='$_REQUEST[nuevopiloto]' where terpuesto='$_REQUEST[viejopiloto]'",$conexion) or die("Problemas en el select:".mysql_error());
mysql_query("update torngrid_carreras set cuarpuesto='$_REQUEST[nuevopiloto]' where cuarpuesto='$_REQUEST[viejopiloto]'",$conexion) or die("Problemas en el select:".mysql_error());
mysql_query("update torngrid_carreras set quinpuesto='$_REQUEST[nuevopiloto]' where quinpuesto='$_REQUEST[viejopiloto]'",$conexion) or die("Problemas en el select:".mysql_error());
mysql_query("update torngrid_carreras set sexpuesto='$_REQUEST[nuevopiloto]' where sexpuesto='$_REQUEST[viejopiloto]'",$conexion) or die("Problemas en el select:".mysql_error());
...
...
...

El primer update funciona, pero los demas no.
  #6 (permalink)  
Antiguo 03/08/2010, 16:18
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema con el Select

$_REQUEST no se recomienda, usa $_POST o $_GET según el caso
  #7 (permalink)  
Antiguo 03/08/2010, 16:43
Avatar de bitbow  
Fecha de Ingreso: julio-2006
Ubicación: Distrito Federal
Mensajes: 635
Antigüedad: 17 años, 9 meses
Puntos: 34
Respuesta: Problema con el Select

Podrias intentar modificar tu consulta, algo como esto:


Código:
]mysql_query("update torngrid_pilotos set piloto='$_REQUEST[nuevopiloto]',
																   primpuesto='$_REQUEST[nuevopiloto]',
																   segpuesto='$_REQUEST[nuevopiloto]'
where owner='$_REQUEST[owner]' and primpuesto='$_REQUEST[viejopiloto]' and segpuesto='$_REQUEST[viejopiloto]'",$conexion) or die("Problemas en el select:".mysql_error());
__________________
El ego es el mayor enemigo de un hombre inteligente.
  #8 (permalink)  
Antiguo 03/08/2010, 16:59
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Problema con el Select

He intentado algo parecido y no funcionó.
Ante la duda probé desde el phpMyAdmin del servidor los códigos y andan, o sea que los updates están bien formulados pero a la hora de convertilo a php debo estar haciendo algo mal.
  #9 (permalink)  
Antiguo 03/08/2010, 17:16
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Problema con el Select

Ya suponía yo que había cometido algún error.
Maycolalvarez tu respuesta era acertada, el error lo había cometido yo en el formulario que mandaba los datos.
Bitbow gracias igualmente por tu ayuda.

Saludos.
  #10 (permalink)  
Antiguo 03/08/2010, 18:02
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Problema con el Select

Faltan comillas
Código PHP:
aca $_REQUEST[viejopiloto
sería asi
Código PHP:
 $_REQUEST['viejopiloto'
y faltan comillas y puntos aca :

Código PHP:
mysql_query("update torngrid_carreras set primpuesto='$_REQUEST[nuevopiloto]' where primpuesto='$_REQUEST[viejopiloto]'",$conexion) or die("Problemas en el select:".mysql_error()); 
sería asi:

Código PHP:
mysql_query("update torngrid_carreras set primpuesto='".$_REQUEST['nuevopiloto']."' where primpuesto='".$_REQUEST[viejopiloto]."'",$conexion) or die("Problemas en el select:".mysql_error()); 
__________________
la la la

Etiquetas: select
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:13.