Foros del Web » Programando para Internet » PHP »

Extraer los datos de un array y colocarlos en diferentes variables

Estas en el tema de Extraer los datos de un array y colocarlos en diferentes variables en el foro de PHP en Foros del Web. Hola a todos/as Estoy con un problemilla, se que es facil pero ando expeso, os cuento. Tengo un array que me devuelve una consulta lleno ...
  #1 (permalink)  
Antiguo 26/12/2007, 09:29
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 16 años, 11 meses
Puntos: 0
Extraer los datos de un array y colocarlos en diferentes variables

Hola a todos/as

Estoy con un problemilla, se que es facil pero ando expeso, os cuento.

Tengo un array que me devuelve una consulta lleno de datos la consulta es la siguiente:

$consulta_precios = mysql_query("SELECT id_producto, nombre, precio FROM productos");
Ejecuto este while

while ($escribe_precios = mysql_fetch_array($consulta_precios))

{

echo $escribe_precios['id_producto']." ".$escribe_precios['nombre']." ".$escribe_precios['precio']."<br>";

}
y me devuelve esto:

1 Tubo Flexible Gas Butano con Abrazaderas 12.19
2 Tubo Flexibe Gas Natural 16.19
3 Regulador Gas Butano 24.11
4 Regulador Gas Propano 33.79
5 Regulador de Pared Propano 90.80
6 Regulador Gas Natural 105.53
7 Limpieza de Inyectores 49.05
8 Regulación de Máximos y Mínimos 34.80
9 Analisis PDCs 30.00
10 Arreglo Fuga (según dificultad) 0.00
11 Lira Blindada 40 cm 15.93
12 Lira Blindada 70 cm 18.25
13 Valvula Antirretorno 20.91
14 Valvula Exceso de Caudal 23.86
15 Llave de Corte Media ó 20/150 38.61
16 Llave de Corte 3/4 38.61
17 Revisión Periódica de GLP Envasado Cert. Oficial 39.59
18 Revisión Preventiva de Gas Canalizado 24.60
19 Contrato de Mantenimiento Integral Anual 41.43

ejecutando un while me devuelve todo lo que tiene esa tabla como es normal ahora bien, pues no se como ingeniarmelas para que cada dato se almacene en una variable diferente. por ejemplo el "1" se almacene en la variable $id_producto1 el texto "Tubo Flexible Gas Butano con Abrazaderas " $producto1 y el precio "12.19" se alamcene en la variable $precio1.

Lo necesito asi puesto que luego se lo paso a un script de java script para que realize un calculo.

Haber si algun me hecha una manita, por que estoy atrancadisimo, se que puede hacer seguro con alguna estructura de control pero no doy con la formula adecuada de ella y me tiene loco.

Un saludo a todos/as

Mil gracias.
  #2 (permalink)  
Antiguo 26/12/2007, 09:38
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 22 años
Puntos: 17
Re: Extraer los datos de un array y colocarlos en diferentes variables

Ehm..... ya lo tienes en variables.....

$escribe_precios['id_producto']
$escribe_precios['nombre']
$escribe_precios['precio']

en cada iteración del bucle tienes ahí el valor que quieres... si lo que necesitas es almacenarlo en variables para después, metelos en un array:

$id_producto[$i] = $escribe_precios['id_producto'];
$nombre[$i] = $escribe_precios['nombre'];
$precio[$i] = $escribe_precios['precio'];

donde $i es una variable que tienes que incrementar en cada iteración del bucle.

No sé si hay una manera de meter directamente la consulta en un array sin hacer el while, echale un vistazo al manual de PHP, la sección de funciones de mysql...
  #3 (permalink)  
Antiguo 26/12/2007, 09:57
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Extraer los datos de un array y colocarlos en diferentes variables

Cita:
Iniciado por Keysher Ver Mensaje
Ehm..... ya lo tienes en variables.....

$escribe_precios['id_producto']
$escribe_precios['nombre']
$escribe_precios['precio']

en cada iteración del bucle tienes ahí el valor que quieres... si lo que necesitas es almacenarlo en variables para después, metelos en un array:

$id_producto[$i] = $escribe_precios['id_producto'];
$nombre[$i] = $escribe_precios['nombre'];
$precio[$i] = $escribe_precios['precio'];

donde $i es una variable que tienes que incrementar en cada iteración del bucle.

No sé si hay una manera de meter directamente la consulta en un array sin hacer el while, echale un vistazo al manual de PHP, la sección de funciones de mysql...

Hola

Creo que me he explicado mal, necesito tener en variables diferenciadas cada valor osease el
$id__producto1="1"
y el
$id_producto_2="2"

y asi sucesivamente.

Como se podria hacer?

Un saludo.
  #4 (permalink)  
Antiguo 26/12/2007, 10:02
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 22 años
Puntos: 17
Re: Extraer los datos de un array y colocarlos en diferentes variables

¿Y por qué no en un array?

Lo que quieres lo podrías hacer con:

$id_producto_$$i= $escribe_precios['id_producto']
(o algo similar) Donde $i volvería a ser una variable que se incremente en cada iteración del while e inicializándola a 1

Pero no le veo mucho sentido a tenerlo así y no en un array........
  #5 (permalink)  
Antiguo 26/12/2007, 10:05
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Extraer los datos de un array y colocarlos en diferentes variables

Cita:
Iniciado por Keysher Ver Mensaje
¿Y por qué no en un array?

Lo que quieres lo podrías hacer con:

$id_producto_$$i= $escribe_precios['id_producto']
(o algo similar) Donde $i volvería a ser una variable que se incremente en cada iteración del while e inicializándola a 1

Pero no le veo mucho sentido a tenerlo así y no en un array........
Hola te explico esto es para luego pasarselo a un javascript el cual utiliza dato a dato por ejemplo los precios uno a uno para poder calcular la factura.

Si le paso el array no se como le voy a decir que el valor por ejemplo del producto 1 es tal .

Como se te ocurre a ti hacerlo con una array, es que yo ando aki muy perdido, la verdad.

Saludos
  #6 (permalink)  
Antiguo 26/12/2007, 10:16
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 22 años
Puntos: 17
Re: Extraer los datos de un array y colocarlos en diferentes variables

No sé cómo quieres mandarle los datos, peor yo haría lo siguiente:

Metería los datos en un array de éste estilo:

$registro[$i]['id'] = $escribe_precios['id_producto']
$registro[$i]['nombre'] = $escribe_precios['nombre']
$registro[$i]['precio'] = $escribe_precios['precio']

Donde $i sería una variable de control del bucle, que empezaría en 1 y ser iría incrementando en cada vuelta.

Y una vez que tienes los datos ahí almacenados los puedes pasar a JavaScript, no sé para qué los necesitas, pero JS también tiene arrays, los puedes almacenar allí, o darles un valor concreto a una variable:

(dentro de un script de JS)
echo('variable_js = '.$registro[23]['id'].';');

Pero vamos, que no sé para qué quieres utilizar esos datos, pero sea lo que sea, lo más correcto es tenerlo en un array (o varios).
  #7 (permalink)  
Antiguo 26/12/2007, 10:18
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Extraer los datos de un array y colocarlos en diferentes variables

Cita:
Iniciado por Keysher Ver Mensaje
No sé cómo quieres mandarle los datos, peor yo haría lo siguiente:

Metería los datos en un array de éste estilo:

$registro[$i]['id'] = $escribe_precios['id_producto']
$registro[$i]['nombre'] = $escribe_precios['nombre']
$registro[$i]['precio'] = $escribe_precios['precio']

Donde $i sería una variable de control del bucle, que empezaría en 1 y ser iría incrementando en cada vuelta.

Y una vez que tienes los datos ahí almacenados los puedes pasar a JavaScript, no sé para qué los necesitas, pero JS también tiene arrays, los puedes almacenar allí, o darles un valor concreto a una variable:

(dentro de un script de JS)
echo('variable_js = '.$registro[23]['id'].';');

Pero vamos, que no sé para qué quieres utilizar esos datos, pero sea lo que sea, lo más correcto es tenerlo en un array (o varios).
Ok perfecto voy a hacer pruebas y te digo algo, creo que esta solucion que me das me facilita mucho mas el trabajo de lo que me esperaba.



Te voy diciendo como va la historia.

Saludos
  #8 (permalink)  
Antiguo 26/12/2007, 12:12
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Extraer los datos de un array y colocarlos en diferentes variables

Cita:
Iniciado por marco_sa Ver Mensaje
Ok perfecto voy a hacer pruebas y te digo algo, creo que esta solucion que me das me facilita mucho mas el trabajo de lo que me esperaba.



Te voy diciendo como va la historia.

Saludos
Hola Keysher

No me funciona de esta manera no puedo acceder a los valores, se me pierde mira lo estoy haciendo asi:

Código PHP:
for($i=$i<=$num_rows $i++) 
   { 
  
//    echo "El valor de i es ", $i,"<br>"; 
//echo $escribe_precios['id_producto'];
//echo $escribe_precios['nombre'];
$registro[$i]['id'] = $escribe_precios['id_producto'];
$registro[$i]['nombre'] = $escribe_precios['nombre'];
$registro[$i]['precio'] = $escribe_precios['precio'];

echo 
$registro[1]['id'];

Y me devuelve todos los datos que estan dentro de la la matriz $escribe_precios['id_producto'], pero multiplicado por 19, que es la variable $num_rows, contiene el total de filas devueltas en la consulta, que en este caso son 19.

yo lo que quiero es poder acceder a cada elemento del array por separado,m ahi es donde estoy perdido, y si lo meto en un bucle me lanza todos, por eso quiero cargar cada uno de los elementos de cada matriz en un variable diferente para poder tratarlos aparte.

Saludos.
  #9 (permalink)  
Antiguo 26/12/2007, 12:28
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 22 años
Puntos: 17
Re: Extraer los datos de un array y colocarlos en diferentes variables

En este caso no sería así, supongo que arriba tendrás la consulta SQL. Tienes que ir volcando los datos a una variable, como en el while:

Código PHP:

 $consulta_precios 
mysql_query("SELECT id_producto, nombre, precio FROM productos"); 

for(
$i=$i<=$num_rows $i++)  
   { 
$escribe_precios mysql_fetch_array($consulta_precios);

$registro[$i]['id'] = $escribe_precios['id_producto']; 
$registro[$i]['nombre'] = $escribe_precios['nombre']; 
$registro[$i]['precio'] = $escribe_precios['precio']; 
 
echo 
$registro[1]['id']; 

  #10 (permalink)  
Antiguo 26/12/2007, 12:43
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Extraer los datos de un array y colocarlos en diferentes variables

Cita:
Iniciado por Keysher Ver Mensaje
En este caso no sería así, supongo que arriba tendrás la consulta SQL. Tienes que ir volcando los datos a una variable, como en el while:

Código PHP:

 $consulta_precios 
mysql_query("SELECT id_producto, nombre, precio FROM productos"); 

for(
$i=$i<=$num_rows $i++)  
   { 
$escribe_precios mysql_fetch_array($consulta_precios);

$registro[$i]['id'] = $escribe_precios['id_producto']; 
$registro[$i]['nombre'] = $escribe_precios['nombre']; 
$registro[$i]['precio'] = $escribe_precios['precio']; 
 
echo 
$registro[1]['id']; 


Hola de nuevo Keysher

La logica veo que en este cacho de código no funciona, jejejejej
ahora me imrpime lo siguiente :

2222222222222222222

deberia imrpimir un solo 2 y no veo la forma de hacer que funcione por que si en el for le pongo empezar en 1 y hasta uno solo imprime 1 y no el 2 , pues no lo carga.

Que podra ser es algo del bucle.

Saludos
  #11 (permalink)  
Antiguo 26/12/2007, 12:53
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 22 años
Puntos: 17
Re: Extraer los datos de un array y colocarlos en diferentes variables

En realidad está funcionando bien.
El 2 es el valor del primer id, no? Pues se muestra tantas veces que iteraciones del bucle
Código PHP:
echo $registro[1]['id']; 
Con eso le dices que muestre el id del primer elemento (ese 1), así que llega hasta ahí y lo muestra. Luego vuelve a dar otra vuelta el bucle, llega al mismo punto y vuelve a mostrar el valor, por lo que ya tenemos "22", y así hasta que termina.
  #12 (permalink)  
Antiguo 26/12/2007, 12:58
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Extraer los datos de un array y colocarlos en diferentes variables

Cita:
Iniciado por Keysher Ver Mensaje
En realidad está funcionando bien.
El 2 es el valor del primer id, no? Pues se muestra tantas veces que iteraciones del bucle
Código PHP:
echo $registro[1]['id']; 
Con eso le dices que muestre el id del primer elemento (ese 1), así que llega hasta ahí y lo muestra. Luego vuelve a dar otra vuelta el bucle, llega al mismo punto y vuelve a mostrar el valor, por lo que ya tenemos "22", y así hasta que termina.
Hola

Muchisimas gracias es verdad funciona, me habia encerrado y no veia ni lo que estaba haciendo, cuando pasa esto lo mejor es irse de cañas, jejejeje

Un saludo Keysher y muchasss gracias.
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:39.