Foros del Web » Programando para Internet » PHP »

Por que esta vacio el array?

Estas en el tema de Por que esta vacio el array? en el foro de PHP en Foros del Web. Hola amigos, que tal estan Vereis tengo este select con esta consulta: Código PHP: echo  $consulta_pagos_lineas  =  'Select e.id, e.id_empresas, e.id_listas, e.activo, l.id id_listas_articulos, l.id_cantidad_articulos, l.descripcion nombre_lista, l.id_tipos_lista, l.activo, c.id, c.descripcion, c.numero, c.precio, t.id id_tipos, t.descripcion descripcion_tipos FROM empresas_listas e INNER JOIN listas l ON e.id_listas = l.id LEFT JOIN cantidad_articulos c ON c.id = l.id_cantidad_articulos LEFT JOIN tipos_listas t On t.id = l.id_tipos_lista WHERE l.activo = 0 and l.id = 223 and e.id_empresas = 130024' ;              $resultado_pagos_lineas  =  mysql_query ( $consulta_pagos_lineas ...
  #1 (permalink)  
Antiguo 24/06/2013, 03:03
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Por que esta vacio el array?

Hola amigos, que tal estan

Vereis tengo este select con esta consulta:

Código PHP:
echo $consulta_pagos_lineas 'Select e.id, e.id_empresas, e.id_listas, e.activo, l.id id_listas_articulos, l.id_cantidad_articulos, l.descripcion nombre_lista, l.id_tipos_lista, l.activo, c.id, c.descripcion, c.numero, c.precio, t.id id_tipos, t.descripcion descripcion_tipos FROM empresas_listas e INNER JOIN listas l ON e.id_listas = l.id LEFT JOIN cantidad_articulos c ON c.id = l.id_cantidad_articulos LEFT JOIN tipos_listas t On t.id = l.id_tipos_lista WHERE l.activo = 0 and l.id = 223 and e.id_empresas = 130024';

            
$resultado_pagos_lineas mysql_query($consulta_pagos_lineas,$conexion);
            
            
$array_pagos_lineas mysql_fetch_array($resultado_pagos_lineas);            

            echo 
$consulta_pagos_lineas_insertar 'Insert pagos_lineas (id, id_pagos, descripcion, total, id_empresas_listas) VALUES ("'.$ultimo_registro_lineas[0].'", "'.$ultimo_registro[0].'", "'.$array_pagos_lineas['numero'].' '.$array_pagos_lineas['descripcion_tipos'].' - '.utf8_decode($array_pagos_lineas['nombre_lista']).'", "'.$array_pagos_lineas['precio'].'", "'.$array_pagos_lineas['id_listas'].'")';        
                
            
mysql_query($consulta_pagos_lineas_insertar$conexion); 
la cosa es que si comento las lineas :

Código PHP:
            $array_pagos_lineas mysql_fetch_array($resultado_pagos_lineas);

y

            mysql_query
($consulta_pagos_lineas_insertar$conexion); 
Cuando va a insertar en pagos_lineas y aparece informacion en $array_pagos_lineas['numero'].' '.$array_pagos_lineas['descripcion_tipos']

pero si no las comento aparece vacio y no se por que puede ser, alguien ve algo raro?

Un saludo
  #2 (permalink)  
Antiguo 24/06/2013, 03:07
Avatar de kikerrobles  
Fecha de Ingreso: mayo-2013
Ubicación: Oviedo
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 2
Respuesta: Por que esta vacio el array?

¿Dónde defines $ultimo_registro_lineas?
  #3 (permalink)  
Antiguo 24/06/2013, 03:16
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Por que esta vacio el array?

Hola kikerrobles que tal,

Código PHP:
Ver original
  1. $consulta_ultimo_registro_lineas = 'Select MAX(id) FROM pagos_lineas';                       
  2.          
  3.             $resultado_ultimo_registro_lineas = mysql_query($consulta_ultimo_registro_lineas);  
  4.             $ultimo_registro_lineas = mysql_fetch_array($resultado_ultimo_registro_lineas);
  5.  
  6.             $ultimo_registro_lineas[0] = $ultimo_registro_lineas[0]+1;

Esta un poco mas arriba y este y el id_pagos son los unicos que si me lo muestra con valor

Un saludo
  #4 (permalink)  
Antiguo 24/06/2013, 04:26
Avatar de kikerrobles  
Fecha de Ingreso: mayo-2013
Ubicación: Oviedo
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 2
Respuesta: Por que esta vacio el array?

Yo no construiría expresiones tan complejas a la hora de manejar comillas porque te puedes volver loco para ver la que falla.

De momento ten en cuenta que
Código PHP:
echo '$variable'
, utilizado con comillas simples no expande las variables, por lo que para que expanda las varibles necesitas usarlo con dobles:
Código PHP:
echo "$variable"
Cuando quieras sacar valores de variables entrecomilladas dentro de una cadena de este tipo lo mejor es usar: '{$variable}'

Y si vas a realizar alguna concatenación compleja, es mejor realizarla fuera, por realizar una cadena más sencialla, corta y legible:
Código PHP:
$a=utf8_decode($array_pagos_lineas['nombre_lista']); 
Pero aun mejor:
Código PHP:
$a=$array_pagos_lineas['numero']." ".utf8_decode($array_pagos_lineas['nombre_lista'])."-".$array_pagos_lineas['nombre_lista']; 
Y llamas a: '{$a}' en la expresión.

Aun así la construcción sería:
Código PHP:
echo $consulta_pagos_lineas_insertar "Insert pagos_lineas (id, id_pagos, descripcion, total, id_empresas_listas) 
    VALUES ('{$ultimo_registro_lineas[0]}', '{$ultimo_registro[0]}', '{$array_pagos_lineas['numero']}
        {$array_pagos_lineas['descripcion_tipos']}- {$array_pagos_lineas['nombre_lista']}', 
            '{$array_pagos_lineas['precio']}', '{$array_pagos_lineas['id_listas']}')"

Inicialmente tu cadena no me funcionó, y pensé que era por las comillas, pero al tener la cadena asignada a una variable que es sobre la que haces el "echo" si te funcionaría así. El problema viene, casi siempre, cuando los valores insertados o consultados no son válidos.

No entiendo muy bien:
Cita:
Cuando va a insertar en pagos_lineas y aparece informacion en $array_pagos_lineas['numero'].' '.$array_pagos_lineas['descripcion_tipos']

pero si no las comento aparece vacio y no se por que puede ser, alguien ve algo raro?
Si al comentarlas te aparecen datos, es que el SELECT está mal, y no te devuelve los valores, prueba el select ese en phpmyadmin a ver si te los devuelve o te da un error.
Así todo ¿por qué tiene valores el array $array_pagos_lineas si comentas la línea donde le asignas el valor?

Última edición por kikerrobles; 24/06/2013 a las 04:50 Razón: Error al comprobar

Etiquetas: mysql, registro, select, vacio
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 07:08.