Foros del Web » Programando para Internet » PHP »

Actualizar Registros Mysql tomando como parametros los valores de un array

Estas en el tema de Actualizar Registros Mysql tomando como parametros los valores de un array en el foro de PHP en Foros del Web. hola tengo una consulta, intento primero hacer una consulta al mysql, me muestra los resultados que quiero, y luego a esos resultados, o sea tomando ...
  #1 (permalink)  
Antiguo 31/12/2009, 09:11
 
Fecha de Ingreso: noviembre-2009
Mensajes: 113
Antigüedad: 14 años, 5 meses
Puntos: 0
Actualizar Registros Mysql tomando como parametros los valores de un array

hola tengo una consulta, intento primero hacer una consulta al mysql, me muestra los resultados que quiero, y luego a esos resultados, o sea tomando los id de los resultados actualizar todos juntos el campo Estado.
En modo ejemplo seria consulto la fecha de hoy, me arroja resultados, que no estan impresos, pulsar el boton cambiar estado, y este cambie a Impreso,
no se si me explico.?
Gracias.
  #2 (permalink)  
Antiguo 31/12/2009, 09:19
 
Fecha de Ingreso: diciembre-2009
Mensajes: 72
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Actualizar Registros Mysql tomando como parametros los valores de un array

Cita:
Iniciado por Leogl Ver Mensaje
hola tengo una consulta, intento primero hacer una consulta al mysql, me muestra los resultados que quiero, y luego a esos resultados, o sea tomando los id de los resultados actualizar todos juntos el campo Estado.
En modo ejemplo seria consulto la fecha de hoy, me arroja resultados, que no estan impresos, pulsar el boton cambiar estado, y este cambie a Impreso,
no se si me explico.?
Gracias.
segun lo que entiendo...lo que quieres es que guardar los resultados de una consulta para usarlos al hacer un UPDATE ?
  #3 (permalink)  
Antiguo 31/12/2009, 10:02
Avatar de elcapi05  
Fecha de Ingreso: diciembre-2009
Mensajes: 20
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Actualizar Registros Mysql tomando como parametros los valores de un array

Hola Leogl, tu problema no es muy claro..

pero si lo que quieres es actualizar todos los resultados que consultastes, simplemente cambia el query que usas por un update...

por ejemplo consultas todos los empleados solteros.

SELECT IDEMPLEADO,ESTADOCIVIL FROM EMPLOYEE WHERE ESTDOCIVIL="SOLTERO"

para cambiarles el estado con un boton, simplemente haces lo sgte:

UPDATE EMPLOYEE SET ESTADOCIVIL="CASADO" WHERE IDEMPLEADO IN (SELECT IDEMPLEADO FROM EMPLOYEE WHERE ESTDOCIVIL="SOLTERO")

No sé si es lo que buscas, pero espero y te sea de ayuda!!
  #4 (permalink)  
Antiguo 31/12/2009, 12:35
 
Fecha de Ingreso: noviembre-2009
Mensajes: 113
Antigüedad: 14 años, 5 meses
Puntos: 0
Lo que busco es actualizar solo los resultados de la consulta, que puede ser uno o varios, para actualizar uno hago la consulta,
$sSQL="Update infractores Set apellido='".$_POST['apellido']."' Where id='".$_POST['id']."'";
mssql_query($sSQL);

pero si la consulta arroja muchos resultados, voy a tener varios ID como hago para procesar todos esos. de una sola vez,

setear un parametro apra toda la tabla no me sirve porque solo tiene que modificar lo de la consulta.

Cita:
Iniciado por kreativodesigns Ver Mensaje
segun lo que entiendo...lo que quieres es que guardar los resultados de una consulta para usarlos al hacer un UPDATE ?



Lo que busco es actualizar solo los resultados de la consulta, que puede ser uno o varios, para actualizar uno hago la consulta,
$sSQL="Update infractores Set apellido='".$_POST['apellido']."' Where id='".$_POST['id']."'";
mssql_query($sSQL);

pero si la consulta arroja muchos resultados, voy a tener varios ID como hago para procesar todos esos. de una sola vez,

setear un parametro apra toda la tabla no me sirve porque solo tiene que modificar lo de la consulta.

Última edición por GatorV; 31/12/2009 a las 15:46
  #5 (permalink)  
Antiguo 31/12/2009, 13:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Actualizar Registros Mysql tomando como parametros los valores de un array

puedes usar IN()
Cita:
... WHERE id IN(1,3,5,7,9) ...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 31/12/2009, 13:13
 
Fecha de Ingreso: noviembre-2009
Mensajes: 113
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Actualizar Registros Mysql tomando como parametros los valores de un array

Cita:
Iniciado por pateketrueke Ver Mensaje
puedes usar IN()
claro es la idea, pero como hago para que los valores del in, sean los id de la consulta de busqueda, ? otra sub consulta como mencionaron antes?
  #7 (permalink)  
Antiguo 31/12/2009, 13:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Actualizar Registros Mysql tomando como parametros los valores de un array

pues tu has dicho, que tienes una consulta que arroja varios resultados...

es de ahí de donde debes obtener los ID's no?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 31/12/2009, 13:17
 
Fecha de Ingreso: noviembre-2009
Mensajes: 113
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Actualizar Registros Mysql tomando como parametros los valores de un array

$sSQL = "UPDATE infraccion SET estado='CASADO' WHERE id IN (SELECT id FROM infraccion WHERE fechainfraccion='".$_POST['id1']."')";
mysql_query($sSQL);

seria algo asi?
  #9 (permalink)  
Antiguo 31/12/2009, 13:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Actualizar Registros Mysql tomando como parametros los valores de un array

no creo...

el punto, es que necesitas los IDs de alguna manera... pero una sub-consulta no te devuelve el formato como crees (o eso creo yo)

lo que tienes que hacer es, una ves tienes tu consulta con IDs agregarlos a un array() y pegarlos con join() usando comas... así, ya cumples con el formato para IN()
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 31/12/2009, 13:24
 
Fecha de Ingreso: noviembre-2009
Mensajes: 113
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Actualizar Registros Mysql tomando como parametros los valores de un array

ise esa consulta pero no me funciona.!!!
ahi pongo las dos consultas x separado para ver que tengo mal porue no logro verlo!!! este 31 no logro ver bien no se porque se sera jaja.!

seria la consulta
Código PHP:
Ver original
  1. $queEmp = "SELECT * FROM infraccion where fechainfraccion='".$_POST['id1']."'";

con esto modificaria.

Código PHP:
Ver original
  1. $sSQL = "UPDATE infraccion SET estado='Impreso' WHERE id IN (SELECT id FROM infraccion WHERE fechainfraccion='".$_POST['id1']."')";
  2. mysql_query($sSQL);
  #11 (permalink)  
Antiguo 31/12/2009, 13:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Actualizar Registros Mysql tomando como parametros los valores de un array

bien, ¿si lees lo que te digo??

Código PHP:
// haces tu consulta para obtener los IDs
$sql "SELECT id FROM tabla WHERE algo = 'x'";
$result mysql_query($sql);
$ids = array();

// creamos la lista de los IDs a comparar
while ($row mysql_fetch_assoc($result)) $ids []= $row['id'];

// los usamos finalmente con el operador IN()
$sql "UPDATE tabla SET columna = 'valor' WHERE id IN(" join(', '$ids) . ")"
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 31/12/2009, 13:35
 
Fecha de Ingreso: noviembre-2009
Mensajes: 113
Antigüedad: 14 años, 5 meses
Puntos: 0
Cita:
Iniciado por pateketrueke Ver Mensaje
bien, ¿si lees lo que te digo??

Código PHP:
// haces tu consulta para obtener los IDs
$sql "SELECT id FROM tabla WHERE algo = 'x'";
$result mysql_query($sql);
$ids = array();

// creamos la lista de los IDs a comparar
while ($row mysql_fetch_assoc($result)) $ids []= $row['id'];

// los usamos finalmente con el operador IN()
$sql "UPDATE tabla SET columna = 'valor' WHERE id IN(" join(', '$ids) . ")"

ahora pruebo lo que tu dices, y respondo, si funciono

sabes que probe y no me actualiza tampoco me tira error.
Código PHP:
Ver original
  1. // haces tu consulta para obtener los IDs
  2. $sql = "SELECT id FROM infraccion WHERE fechainfraccion = '12/12/09'";
  3. $result = mysql_query($sql);
  4. $ids = array();
  5.  
  6. // creamos la lista de los IDs a comparar
  7. while ($row = mysql_fetch_assoc($result)) $ids []= $row['id'];
  8.  
  9. // los usamos finalmente con el operador IN()
  10. $sql = "UPDATE infraccion SET estado = 'impreso' WHERE id IN(" . join(', ', $ids) . ")";

Última edición por GatorV; 31/12/2009 a las 15:46
  #13 (permalink)  
Antiguo 31/12/2009, 14:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Actualizar Registros Mysql tomando como parametros los valores de un array

no lo olvides: decir "me da error" no sirve, así no podemos ayudar... por favor, también coloca el mensaje de error completo...

por favor...

además, no olvides depurar (copiar y pegar código no basta, es mal habito)
Código PHP:
$result mysql_query($sql) or die(mysql_error()); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 31/12/2009, 14:10
 
Fecha de Ingreso: noviembre-2009
Mensajes: 113
Antigüedad: 14 años, 5 meses
Puntos: 0
hola la consulta esta perfecta solo que me falto correr la conexion. o sea realizar el query.
GRACIAS A TODOS. especialmente a pakete!!!

Código PHP:
Ver original
  1. <?php
  2. error_reporting(E_ERROR);
  3. include("conectar.php");
  4. $state = false;
  5. $conexion = $conectar;
  6. mysql_select_db("Juzgadophp", $conexion);
  7.  
  8.  
  9. // haces tu consulta para obtener los IDs
  10. $sql = "SELECT id FROM infraccion WHERE fechainfraccion = '14/12/09'";
  11. $result = mysql_query($sql);
  12. $ids = array();
  13.  
  14. // creamos la lista de los IDs a comparar
  15. while ($row = mysql_fetch_assoc($result)) $ids []= $row['id'];
  16.  
  17. // los usamos finalmente con el operador IN()
  18. $sql = "UPDATE infraccion SET estado = 'impreso' WHERE id IN(" . join(', ', $ids) . ")";  
  19. ?

Ahi quedo el ejemplo funcionando. Gracias,

Última edición por GatorV; 31/12/2009 a las 15:47
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 22:48.