PHP - Obtener un valor específico de un Array

 
Vista:
sin imagen de perfil

Obtener un valor específico de un Array

Publicado por Guillermo (3 intervenciones) el 24/01/2014 23:54:02
Hola a todos, les comento mi problema a ver si pueden darme una mano:
Estoy implementando un carrito de compras. Guardo todas mis compras en la clase, pero cuando quiero guardar en la base de datos no me toma los valores correctos.
Parte del código es:
1
2
3
4
5
6
7
8
9
10
for ($i=0;$i<$oCarrito->compra_producto;$i++)
{
    if($oCarrito->array_id_prod[$i]!=0)
    {
    $insertCompra="insert into compras(codigo, nomProd, cantidad, idOrdenDeCompra) values ( $oCarrito->array_id_prod[$i], $oCarrito->array_nombre_prod[$i], $oCarrito->array_cantidad_prod[$i], $ultimoIdOrden)";
    echo $insertCompra;
    mysql_query($insertCompra, $conexion)
    or die("Problemas en el select".mysql_error());
    }
}

Cuando muestro qué pasa la consulta me dice: insert into compras(codigo, nomProd, cantidad, idOrdenDeCompra) values ( Array[0], Array[0], Array[0], 53)
O sea los 3 primeros valores me los agarra mal, tendría que ser por ejemplo values (5, ‘Camisa’, 1, 53) pero no logro agarrar los valores bien de la clase.
(En la clase carrito, tengo los atributos así):
1
2
3
public $compra_producto;
public $array_id_prod;
public $array_cantidad_prod;
Espero puedan ayudarme ya que es muy importante!
Gracias
Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Obtener un valor específico de un Array

Publicado por victorgspx (3 intervenciones) el 25/01/2014 07:50:04
Hola,

Cuando utilizas cadenas de caracteres con doble comilla, el intérprete busca variables contenidas en la cadena y muestra el contenido. Esto funciona con variables como $ultimoIdOrden, pero no con objetos o matrices. Lo que se puede hacer es copiar los valores de las matrices a variables, después incluir las variables en la cadena:

1
2
3
4
5
6
7
$ultimoIdOrden = 10;
$vId_prod = $oCarrito->array_id_prod[$i];
$vNombre_prod = $oCarrito->array_nombre_prod[$i];
$vCantidad_prod = $oCarrito->array_cantidad_prod[$i];
 
$insertCompra = "insert into compras(codigo, nomProd, cantidad, idOrdenDeCompra) values (
    $vId_prod, $vNombre_prod, $vCantidad_prod, $ultimoIdOrden)";

otra forma sería concatenar el contenido de la cadena que quieres formar con los valores de los elementos de la matriz:

1
2
3
4
5
$insertCompra = 'insert into compras(codigo, nomProd, cantidad, idOrdenDeCompra) values ('
		.$oCarrito->array_id_prod[$i]
		. ',' . $oCarrito->array_nombre_prod[$i]
		. ',' . $oCarrito->array_cantidad_prod[$i]
		. ',' . $ultimoIdOrden.')';

En lo particular prefiero esta última. Como nota no utilicé dobles comillas. Al utilizar comillas simples el intérprete no busca variables que convertir en el contenido, lo cual puede mejorar el desempeño del código, sobre todo si se emplean muchas cadenas con comillas dobles en el código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Obtener un valor específico de un Array

Publicado por Guillermo (3 intervenciones) el 26/01/2014 04:01:59
Víctor, UN MILLÓN DE GRACIAS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Realmente me ayudaste muchísimo, gracias!!!!!!!!!!!!!!!!!!!!!
Saludos :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar