Foros del Web » Programando para Internet » PHP »

Un array "curioso"

Estas en el tema de Un array "curioso" en el foro de PHP en Foros del Web. Hola a todos. Es mi primera intervención, así es que, unas birritas virtuales a mi cuenta..... Pues quería saber como extraer la info de un ...
  #1 (permalink)  
Antiguo 14/03/2009, 09:47
 
Fecha de Ingreso: enero-2009
Ubicación: Valencia (España)
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 1
Un array "curioso"

Hola a todos.

Es mi primera intervención, así es que, unas birritas virtuales a mi cuenta.....

Pues quería saber como extraer la info de un array, PERO NO SIRVE EL FOREACH ni el for.....

Cuando intento hacer el foreach, no imprime valores, ya que los valores no son constantes. Es decir, el array contiene dos elementos (por ejemplo), uno es 2010010 con valor 3 y el otro es 2110122 con valor 12, pero los valores van cambiando...... Es el contenido de un carrito de la compra. Puede ser un elemento o doce, y los valores igual......

El tema es que si hago un print_r(array), me saca todos los datos, pero si lo que quiero es extraer los datos, no lo consigo. Ni con echo $array[0], ni $array[$cantidad], ni nada..... solo puedo imprimir el contenido.

¿Alguien sabe como podría extraer el contenido del array?

La explicación del script es que cada vez que se añade algo al carrito, se almacena la referencia del producto y la cantidad de elementos, en el array $carro(), pero como son cantidades no corelativas, y cambiantes (el número de productos), no puedo hacer un foreach...

He de decir que no soy experto en php, pero he mirado mucho por la web, y no encuentro como sacar los valores.

Muchas gracias por vuestro tiempo.

Saludos
  #2 (permalink)  
Antiguo 14/03/2009, 09:57
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 14 años, 5 meses
Puntos: 18
Respuesta: Un array "curioso"

Si colocaras el código que estás utilizando para tratar de mostrar el contenido del array o al menos el código que genera el array, sería más fácil ayudarte, sin embargo, según lo que explicas, no veo por qué algo como esto no pudiera funcionar:
Código PHP:

foreach($carro as $k => $v) {
    echo 
"ID de producto: $k\n";
    echo 
"Cantidad: $v\n";

__________________
Usuario Reigistrado de linux #399288
  #3 (permalink)  
Antiguo 14/03/2009, 14:01
 
Fecha de Ingreso: enero-2009
Ubicación: Valencia (España)
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 1
Bueno.... pues aunque me da mucha verguenza reconocerlo , lo que dice ACRON, me HA FUNCIONADO .

No entiendo que pasó ayer, ya que probé varias formas de FOREACH, incluso una que está en otro scrit de la web, y que es casi igual, pero no hubo forma.....

Está claro que el "truco" es que no controlo bien aún el php, pero que rabia probar durante horas cosas muuy similares, y no acertar.......

Código PHP:
foreach ($cart as $isbn => $qty)
    {
      if($
$qty=="0")
       unset(
$cart[$isbn]);
     else
       
$cart[$isbn] = $$isbn; } 
Estas son la lineas que usé, cambiando el contenido del foreach a partir del "{"..... debí liarme, o yo que sé que pasó.....

UN MILLÓN DE GRACIAS ACRON. Lo sncillo que es, y que complicado se hace cuando uno no sabe.

Gracias de nuevo.

ACRON....

Si no es mucho pedir..... ahora consigo rextraer los datos del array, y los puedo ver en pantalla..... pero si los quiero almacenar en DB o enviar por email....

¿como tendría que hacer?

¿Sería poniendo la funcion de "guardar en la db" dentro del foreach, y que a cada loop guarde un dato?

He visto el uso de "serialize", y he probado a sacrlo por pantalla, y funciona bien. ¿es este el sistema recomendable para enviar o guardar los datos del array? Parece buen sistema, aunque la "presentación" de salida no sea la más "bonita", jejeje....

Gracias por tu ayuda. Espero tu respuesta.

Última edición por GatorV; 15/03/2009 a las 23:32
  #4 (permalink)  
Antiguo 14/03/2009, 15:01
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 14 años, 5 meses
Puntos: 18
Respuesta: Un array "curioso"

Cosas que pasan nada más, tampoco es necesario avergonzarse porque pasen ;)

Edito:

Realmente no hay una forma 'correcta' de hacer ese tipo de cosas, depende del gusto y conocimiento de cada quien.

Si deberás guardar o enviar cada dato del array (por ejemplo el array contiene 10 códigos de productos cada uno con diferentes cantidades), entonces sip, necesitarías repetir el código que uses para almacenar en la base de datos o enviar el mail dentro del foreach.
__________________
Usuario Reigistrado de linux #399288

Última edición por Acron_0248; 14/03/2009 a las 15:08
  #5 (permalink)  
Antiguo 14/03/2009, 17:20
 
Fecha de Ingreso: enero-2009
Ubicación: Valencia (España)
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Un array "curioso"

De momento, he montado el tema con esto

Código PHP:
 $Q serialize($carro);
  
$cart=EREG_REPLACE("i"," ",$Q); 
Así me pasa los valores del array a "texto", que guardo en la DB, quitando antes las "i", que lian un poco a la hora de leer.......

Cuando funcione todo, veré como depurar el conjunto.

Gracias por tu ayuda.

P.D. A ver si puedo montar una duda que me lleva de cabeza un par de semanas, y que es lo único que me queda para que la web funcione de pleno, y no estás muy lejos para echarle un vistazo.......
  #6 (permalink)  
Antiguo 14/03/2009, 18:33
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 14 años, 5 meses
Puntos: 18
Respuesta: Un array "curioso"

Realmente estoy teniendo dificultad para entender lo que buscas hacer, aunque desconozco los detalles de tu proyecto, si vas a guardar datos en una base de datos, no necesitas serialize, puedes usarlo, pero no es requerido.

Yo por momentos imaginé que simplemente guardarías datos en una base de datos relacionando un producto adquirido y la cantidad que se ha comprado de dicho producto lo que, aunque puede hacerse de varias formas, serialize no es que sea la forma más común, o al menos no lo he visto tan seguido como otros métodos.

En cualquier caso, sigue con lo que estás haciendo y si luego tienes dudas pues preguntas nuevamente :)
__________________
Usuario Reigistrado de linux #399288
  #7 (permalink)  
Antiguo 15/03/2009, 15:46
 
Fecha de Ingreso: enero-2009
Ubicación: Valencia (España)
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Un array "curioso"

Hola de nuevo.

Por eso te pregunté qué te parecía.... como no me dijiste nada en especial, tomé este camino.....

Lo que quiero hacer es, que al hacer un pedido, los detalles del pedido, que se van almacenando en el array $carro(), queden en el mismo campo de la DB, al margen de enviarmelos por email, por si el email se "pierde", que estén en la DB.

Como no encontraba forma de guardar esos datos (estoy aprendiendo por el camino), y descubrí el "serialize", opté por esa opción. La veo sencilla para mis conocimientos, y aunque más adelante busque nuevas formas, en estos momentos necesito subir la web esta semana....

Si tienes cualquier consejo al respecto, otra forma de hacerlo, SOY TODO OIDOS.

Ahora voy a pelearme con lo único que me queda: la "modificación" de los elementos del carrito, que me parece que no voy a conseguir..... Con la base que estoy tomando de tienda online, no me funciona, aunque en el formato original sí lo hacía........ tengo que estudiar cual es la causa. A ver si con lo que estoy aprendiendo estos días de los array lo consigo, ya que creo que se basa en la modificación del array $carro, pero no se muy bien como....

Saludos, y gracias por el interés.
  #8 (permalink)  
Antiguo 15/03/2009, 16:40
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 24
Respuesta: Un array "curioso"

Hola parriman,

serialize() es una buena opción para guardar un array en la base de datos y unserialize() es para recuperarla, si no te "parecen bonitas"

Luago para modificarla podrias mirar las funciones que hay para el manejo de arrays

Saludos.
  #9 (permalink)  
Antiguo 15/03/2009, 20:06
 
Fecha de Ingreso: enero-2009
Ubicación: Valencia (España)
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Un array "curioso"

Gracias Lisandro.

De momento funciona a la perfección, aunque quede "feo". Ya miraré cuando termine mi "actual problema" el enlace que me has puesto.

Saludos
  #10 (permalink)  
Antiguo 16/03/2009, 21:45
 
Fecha de Ingreso: enero-2009
Ubicación: Valencia (España)
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Un array "curioso"

Acron.....

He puesto este tema sobre el problemilla que tenía con la web:

No me deja poner enlace...... el tema abierto tiene por titulo: Algun-guru-de-php-que-de-con-la-solucion???

SI te aburres ;) podías echarle un vistazo....

Mañana de todas fromas, voy a ver si me hago con algún programador bueno de la zona, y a ver si aunque me cueste unos euros, puedo solucionarlo rápido, que mi mujer me quiere matar ya, después de tantas horas en el ordenador.......

Bueno, gracias y un saludo
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:28.