Foros del Web » Programando para Internet » PHP »

Problemas con array

Estas en el tema de Problemas con array en el foro de PHP en Foros del Web. buenas tardes necesito ayuda con esto urgente porfa si alguien tiene una idea se lo agradesco de ante mano. Resulta que estoy trabajando en el ...
  #1 (permalink)  
Antiguo 15/09/2011, 12:10
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 143
Antigüedad: 14 años, 4 meses
Puntos: 2
Problemas con array

buenas tardes necesito ayuda con esto urgente porfa si alguien tiene una idea se lo agradesco de ante mano. Resulta que estoy trabajando en el administrador de contenido de mi sitio y en el administrador de anuncios tengo un select multiple que el admin del sitio puede elegir varios clientes desde el campo selec para los cuales tengo que hacer un UPDATE de un anuncio de cada cliente seleccionado la idea es actualizar la fecha de publicacion del anuncio. los valores seleccionados por el admin me entregan los id de todos los clientes en un array = Array ( [0] => 827 [1] => 888 [2] => 232 [3] => 819 ) ; la idea es hacer el sigiente UPDATE por cada Cliente seleccionado =
Código SQL:
Ver original
  1. UPDATE  anuncios SET fhPublicacion = now() WHERE (idCliente = 'id_Cliente') ORDER BY RAND()  LIMIT 1
ojala se entienda el mensaje la idea hacer la actualizacion con los contenidos del array. de antemano gracias
  #2 (permalink)  
Antiguo 15/09/2011, 12:13
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Problemas con array

recorriendo el array con foreach()?
  #3 (permalink)  
Antiguo 15/09/2011, 12:41
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 143
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: Problemas con array

Gracias por responder prove con foreach
Código PHP:
Ver original
  1. <?php $Cliente = $_POST["segundo"];
  2. //valores seleccionados por el admin
  3.      print_r($Cliente);
  4.    
  5.         if(count($Cliente) > 0)
  6.  
  7.         {
  8.  
  9.             foreach($Cliente as $campo)
  10.  
  11.             {
  12.  
  13.                print_r($campo);
  14.  
  15.          
  16.  
  17.             }
  18.  
  19.         } ?>
me arroja todo el array agrupado= 827888232819 como los meto en el UPDATE ????
  #4 (permalink)  
Antiguo 15/09/2011, 12:45
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: Problemas con array

Dentro del foreach vas actualizando cada cliente, ya vas a tener el ID separado en la variable $campo
__________________
Genio es todo aquel que conoce sus cualidades
  #5 (permalink)  
Antiguo 15/09/2011, 13:25
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 143
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: Problemas con array

mira Xtimed no me sale solo ne actualiza el anuncio del ultimo cliente seleccionado aca dejo el codigo para que tengas una idea de como lo estoy haciendo y si puedes darme una mado para ver en que estoy fallando te lo agradeceria
Código PHP:
Ver original
  1. <?php  
  2.     require_once(DIR_WS_CLASSES.'Clientes.php');
  3.     include_once(DIR_WS_CLASSES."Anuncios.php");
  4.       $clAnuncio = new Anuncios();
  5.  
  6.     $clCliente  = new Clientes();
  7.  
  8.         if($_POST["Actualizar"]=="Actualizar")
  9.     {
  10.     //valor traido por el campo select
  11.     $Cliente = $_POST["segundo"];
  12.    //  print_r($Cliente);
  13.    
  14.         if(count($Cliente) > 0)
  15.  
  16.         {
  17.  
  18.             foreach($Cliente as $campo)
  19.  
  20.             {
  21.  
  22.              $resAnuncio = $clAnuncio->ActualizarAnuncioGold($campo);
  23.  
  24.          
  25.  
  26.             }
  27.  
  28.         }
  29.  
  30.     }
  31.     else {
  32.     echo "no se Actualizo";
  33.     }
  34.    
  35.            
  36.     ?>
y la consulta
Código PHP:
Ver original
  1. <?php function ActualizarAnuncioGold($campoS)
  2.     {
  3.        $this->InciarConexion();
  4.        $Consulta  = " UPDATE  anuncios ";
  5.        $Consulta .= " SET fhPublicacion = now() ";
  6.        $Consulta .= " WHERE (idCliente = '$campoS') ";  
  7.        $Consulta .= " ORDER BY RAND() ";
  8.        $Consulta .= " LIMIT 1 ";
  9.        echo $Consulta;
  10.        exit;
  11.        if($this->EstadoDelaConexion())
  12.         {
  13.           $ResConsulta = $this->insertarConId($Consulta);
  14.           $this->cerrar_conexion ();
  15.           return $ResConsulta;
  16.         }
  17.        
  18.     }?>
lo que me arroja como resultado es = UPDATE anuncios SET fhPublicacion = now() WHERE (idCliente = '141') ORDER BY RAND() LIMIT 1
  #6 (permalink)  
Antiguo 15/09/2011, 13:57
Avatar de luckystrikede11  
Fecha de Ingreso: octubre-2009
Ubicación: Concepcion, Chile
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: Problemas con array

una pregunta, todos lo clientes se actualizan con la misma informacion???

saludos
__________________
www.jcabezas.net
  #7 (permalink)  
Antiguo 15/09/2011, 13:57
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: Problemas con array

Creo que tu query esta mal, tienes UPDATE anuncios SET fhPublicacion = now() WHERE (idCliente = '141') ORDER BY RAND() LIMIT 1

No creo que ocupes el ORDER BY por que estas actualizando y no te va a traer datos, solamente si se realizó o no tu sentencia, quedaría de la siguiente manera:
Código PHP:
function ActualizarAnuncioGold($campoS)
    {
       
$this->InciarConexion();
       
$Consulta  " UPDATE  anuncios ";
       
$Consulta .= " SET fhPublicacion = now() ";
       
$Consulta .= " WHERE idCliente = '$campoS' ";  

if(
$this->EstadoDelaConexion())
        {
          
$ResConsulta $this->insertarConId($Consulta);
          
$this->cerrar_conexion ();
          return 
$ResConsulta;
        } 
else
        {
            return 
"Error de conección";
        } 
Creo que eso debería de ir, si me equivoco o no te funciona hazmelo saber
__________________
Genio es todo aquel que conoce sus cualidades
  #8 (permalink)  
Antiguo 15/09/2011, 14:14
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 143
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: Problemas con array

Gracias xtimed me funciono bien pero me surge otro problema lo que yo estaba tratando de hacer con el ORDER BY RAND() LIMIT 1 era que solo me actualizara 1 anuncio por cliente y que el anuncio fuece escogido al azar ya que hay clientes que tienen 1 como hay otros que tienen mas de 100 y solo necesito actualizar 1 por cliente seleccionado
  #9 (permalink)  
Antiguo 15/09/2011, 15:10
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 143
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: Problemas con array

Ya lo solucione gracias a todos los que colaboraron en especial a xtimed aca dejo la sentencia SQL para alguien que le sirva
Código PHP:
Ver original
  1. <?php
  2. function ActualizarAnuncioGold($campoS)
  3.     {
  4.        $this->InciarConexion();
  5.        
  6.        
  7.        $Consulta  = " UPDATE anuncios ";
  8.        $Consulta .= " SET fhPublicacion= now() ";
  9.        $Consulta .= " WHERE ";
  10.        $Consulta .= " idAnuncio=( ";
  11.        $Consulta .= " SELECT ";
  12.        $Consulta .= " idAnuncio ";
  13.        $Consulta .= " FROM anuncios ";
  14.        $Consulta .= " WHERE ";
  15.        $Consulta .= " idCliente = $campoS ORDER BY RAND() LIMIT 1) ";
  16.          //echo $Consulta;
  17.      // exit;
  18.         if($this->EstadoDelaConexion())
  19.         {
  20.           $ResConsulta = $this->insertarConId($Consulta);
  21.           $this->cerrar_conexion ();
  22.           return $ResConsulta;
  23.         }
  24.         else
  25.         {
  26.             return "Error de conección";
  27.         }  
  28.         }
  29. ?>

Etiquetas: Ninguno
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 18:32.