Foros del Web » Programando para Internet » PHP »

No logro guardar una consulta select a una tabla, en un array

Estas en el tema de No logro guardar una consulta select a una tabla, en un array en el foro de PHP en Foros del Web. tengo la consulta guardada en una variable: $consulta5 = "select cod_prod,denom from PRODUCTOS order by cod_prod ASC"; ejecuto la consulta: $result6=mysql_query($consulta5); guardo en un array ...
  #1 (permalink)  
Antiguo 08/06/2012, 09:25
 
Fecha de Ingreso: febrero-2012
Ubicación: Madrid
Mensajes: 48
Antigüedad: 12 años, 9 meses
Puntos: 1
No logro guardar una consulta select a una tabla, en un array

tengo la consulta guardada en una variable:

$consulta5 = "select cod_prod,denom from PRODUCTOS order by cod_prod ASC";

ejecuto la consulta:

$result6=mysql_query($consulta5);

guardo en un array dicha consulta o eso creía:

$array=mysql_fetch_array($result6);


pero si hago:

echo $array[0].' '.$array[1];
echo $array[1].' '.$array[1];
echo $array[2].' '.$array[1];
echo $array[3].' '.$array[1];
echo $array[4].' '.$array[1];


me muestra siempre el mismo valor, cuando deberían ser diferentes. sólo tiene esa tabla por ejemplo 2 campos, un valor Id y una descripción.

tengo que hacer un while para cargar el array? cómo sería?? gracias
  #2 (permalink)  
Antiguo 08/06/2012, 09:38
 
Fecha de Ingreso: agosto-2008
Ubicación: Miami, FL
Mensajes: 210
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: No logro guardar una consulta select a una tabla, en un array

hola oskuro, mira por lo que me han enseñado aqui esto es lo que hago yo y te deberia funcionar:

Código PHP:
Ver original
  1. $quoted_sql = mysql_query("SELECT cod_prod,denom from PRODUCTOS order by cod_prod ASC);
  2. if (!$quoted_sql) {
  3. die("Fallo en la selección de los datos: " . mysql_error());
  4. }
  5. while ($fila = mysql_fetch_array($quoted_sql))
  6. {
  7. echo " '.$fila['cod_prod'].' '.$fila['denom'].' ";
  8. }
  9. mysql_close($conexion);

creo que seria así y así me funciona a mi, pero yo no soy un genio en esto y puedo estar equivocado, asi que solo queda probarlo.
el echo no se debe repetir, ya que te arrojara todos uno debajo del otro, lo que deberias hacer es una tabla para colocar mejor los resultados.

Saludos
__________________
Se invierte mas dinero en cirugía de pechos y viagra que en la cura del Alzheimer. En unos años tendremos viejas con grandes tetas y viejos con erecciones pero que no recordarán para que sirven..
  #3 (permalink)  
Antiguo 08/06/2012, 09:42
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 12 años, 5 meses
Puntos: 32
Respuesta: No logro guardar una consulta select a una tabla, en un array

El problema es que :
Código PHP:
Ver original
  1. $array=mysql_fetch_array($result6);

No devuelve 1 array con todas las filas, devuelve 1 sola fila con un array asociativo. Esto quiere decir que el array esta indexado por el nombre del campo. Si vos queres mostrar todas las filas que devuelve, tenes que hacer algo similar a esto.

Hace esto:
Código PHP:
Ver original
  1. while($prod =mysql_fetch_array($result6)
  2. {
  3.     echo $prod['cod_prod']." : ".$prod['denom ']."\n<br/>";
  4. }


Espero sirva, saludos.
__________________
http://www.latinium.com.ar/
  #4 (permalink)  
Antiguo 08/06/2012, 09:44
 
Fecha de Ingreso: febrero-2012
Ubicación: Madrid
Mensajes: 48
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: No logro guardar una consulta select a una tabla, en un array

Ok gracias. lo de los echo seguidos lo uso para "depurar", así veo los valores que me está guardando para ver si lo hace bien o no.

voy a probar lo que me habeis dicho y os cuento gracias

De todas formas, lo que quiero no es mostrar de primeras. lo que quiero es guardar dicha consulta, en un array. para luego poder usarlo con otros arrays para generar unos select.

es decir, quiero pasar una tabla que está en mi base de datos, entera, a un array y luego poder consultar dicha tabla usando los valores del array.

voy a ver
  #5 (permalink)  
Antiguo 08/06/2012, 09:49
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 14 años, 5 meses
Puntos: 63
Pregunta Respuesta: No logro guardar una consulta select a una tabla, en un array

Ok, pero... Ya mysql_fetch_array te devuelve un arreglo... para que lo guardas en otro?
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!
  #6 (permalink)  
Antiguo 08/06/2012, 09:58
 
Fecha de Ingreso: febrero-2012
Ubicación: Madrid
Mensajes: 48
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: No logro guardar una consulta select a una tabla, en un array

Cita:
Iniciado por Heiroon Ver Mensaje
Ok, pero... Ya mysql_fetch_array te devuelve un arreglo... para que lo guardas en otro?

el problema es que estoy haciendo un proyecto, tengo que usar 3 combos dependientes. y según he visto, es imposible hacerlo usando php y javascript, porque no puedo capturar con javascript el valor seleccionado en un select, y pasarle el valor al servidor php para que me cambie el otro select, porque tendría que darle al submit y recargar la página etc. si quiero hacer todo sin recargar la página, he pensado en guardar las consultas en 3 arrays, para tenerlo en modo local, y ya con javascript cargar los select, en base al valor seleccionado de cada select.

si en el select del combo1 elijo la opción 2, capturo ese valor, y en el combo2 tengo una variable que depende del valor elejido en el primer combo, entiendes?.

por eso simplemente, porque las tablas son fáciles, quiero saber cómo una vez hago la consulta al servidor que eso lo se hacer, cómo guardar en una variable arrray LOCAL, todos los valores de la consulta MYSQL para tenerlos guardados en una variable. y luego poder usarlos
  #7 (permalink)  
Antiguo 08/06/2012, 10:11
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 14 años, 5 meses
Puntos: 63
De acuerdo Respuesta: No logro guardar una consulta select a una tabla, en un array

De hecho, se puede hacer solo con PHP o con PHP y JavaScript usando Ajax... Deberias chequear las FAQ que alli hay información de como hacer exactamente lo que quieres... Saludos!
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!
  #8 (permalink)  
Antiguo 08/06/2012, 10:15
 
Fecha de Ingreso: febrero-2012
Ubicación: Madrid
Mensajes: 48
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: No logro guardar una consulta select a una tabla, en un array

ya ya, la cosa es que no puedo usar ajax, por eso lo digo.

a ver si me ayudais, que casi lo he conseguido, pero no se cómo hacer para que me coja el 2º valor del array. ya logro que me cargue y guarde bien el 1er campo, me falta sólo el 2º, algo me falla y seguro que es una chorrada pero no me se la sintaxis y estoy probando:

Guardo consulta:
$consulta5 = "select cod_prod,denom from PRODUCTOS order by cod_prod ASC";

Ejecuto consula:
$result6=mysql_query($consulta5);

//Declarar el array
$ArrayDatos = array();
$ArrayControl = 0; //Para el control de los elementos del array
$ArrayControl2 = 0; //

while($resultado=mysql_fetch_array($result6))
{
$ArrayDatos[$ArrayControl] = $resultado["cod_prod"]; --> Me funciona
$ArrayDatos[$ArrayControl].[$ArrayControl2] = $resultado["cod_prod"].$resultado["denom"];
$ArrayControl++; //Incrementar el controlador del array en uno
$ArrayControl2++;
}

la cosa es que la parte de:

$ArrayDatos[$ArrayControl].[$ArrayControl2] = $resultado["cod_prod"].$resultado["denom"];

no se bien cómo hacerlo. eso en realidad es como si quisiera guardar en el valor $ArrayDatos[0][0] = el valor correspondiente, ya que $ArrayDatos[0] ya tiene un valor y sólo me falta la siguiente columna. ahora bien, no se cómo hacerlo. voy a seguir probando que me queda poco

Nada.... no hay forma......... no logro guardar los valores del 2º campo zzzz

Última edición por oskuro; 08/06/2012 a las 10:34
  #9 (permalink)  
Antiguo 08/06/2012, 10:36
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 12 años, 5 meses
Puntos: 32
Respuesta: No logro guardar una consulta select a una tabla, en un array

Hola oskuro.
A ver si entiendo porque me parece que estas haciendo algo de lio.

El operador de . (punto) sirve para concatenar cadenas,
no sirve como en otros lenguages para acceder a una parte de una estructura
(como por ejemplo en C o C++ accedes a partes de una estructura con reg.nombre)

Tu idea es guardar toda la respuesta adentro de un array verdad, para despues accederla en alguna parte de tu codigo.
Creo que con esto podrias resolverlo.


Código PHP:
Ver original
  1. $arr = array();
  2.     while($record = mysql_fetch_array($result6))
  3.     {
  4.         $arr[] = $record;
  5.     }
  6.     echo "Tenes ".count($arr). " resultados.\n<br/>";
  7.     for($i=0;$i<count($arr);$i++)
  8.     {
  9.         echo $arr[$i]['cod_pro'].": ".$arr[$i]['denom'].\n<br/>";
  10.     }


Espero sirva, saludos.
__________________
http://www.latinium.com.ar/
  #10 (permalink)  
Antiguo 08/06/2012, 10:37
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 12 años, 5 meses
Puntos: 32
Respuesta: No logro guardar una consulta select a una tabla, en un array

Ojo, me olvide unas comillas en el echo del for.

Código PHP:
Ver original
  1. echo $arr[$i]['cod_pro'].": ".$arr[$i]['denom']."\n<br/>";

Saludos
__________________
http://www.latinium.com.ar/
  #11 (permalink)  
Antiguo 08/06/2012, 10:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: No logro guardar una consulta select a una tabla, en un array

Tendrías que hacer un array de arrays, para tener una matriz:
Código PHP:
Ver original
  1. $Array = array();
  2. $Array[0] = array();
  3. $Array[0][0] = 'bar';

Aunque para lo que quieres hacer creo algo así te bastará:
Código PHP:
Ver original
  1. while($resultado=mysql_fetch_array($result6))
  2. {
  3. $ArrayDatos[] = array(
  4.         $resultado["cod_prod"],
  5.         $resultado["denom"]
  6. );
  7. }
  8.  
  9. var_dump($ArrayDatos);
  10. var_dump($ArrayDatos[0][0]); // cod_prod
  11. var_dump($ArrayDatos[0][1]); // denom
  12. var_dump($ArrayDatos[1][0]); // cod_prod

Saludos.
  #12 (permalink)  
Antiguo 08/06/2012, 10:48
 
Fecha de Ingreso: febrero-2012
Ubicación: Madrid
Mensajes: 48
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: No logro guardar una consulta select a una tabla, en un array

Gracias!! pero hay algo que no entiendo. me guarda los valores porque con poner eso del var_dump me muestra todo esto:

array(5) { [0]=> array(2) { [0]=> string(1) "1" [1]=> string(10) "ASCENSORES" } [1]=> array(2) { [0]=> string(1) "2" [1]=> string(10) "ELEVADORES" } [2]=> array(2) { [0]=> string(1) "3" [1]=> string(5) "OTROS" } [3]=> array(2) { [0]=> string(1) "4" [1]=> string(11) "PLATAFORMAS" } [4]=> array(2) { [0]=> string(1) "5" [1]=> string(6) "SILLAS" } } string(1) "1" string(10) "ASCENSORES" string(1) "2"

y si hago:

echo $ArrayDatos[0].' '.$ArrayDatos[1];

que me debería mostrar sólamente el valor, me saca siempre con los valores que meta: array array array... y lo de arriba claro es un lio.

me ha guardado los valores, los campos originales son:

1 ASCENSORES
2 ELEVADORES
3 OTROS
4 PLATAFORMAS
5 SILLAS

pero por qué lo guarda de esa forma tan liosa? o cómo puedo acceder solamente al valor 1,2,3... ó a los valores de la 2ª columna?(ascensores, elevadores).

elgoncho99 en tu función me mostraría los resultados, pero no los guarda, no? lo que quiero es guardarlos en un array, me da igual que no los muestre, de momento quiero guardarlos para luego ya "jugar" con ese array
  #13 (permalink)  
Antiguo 08/06/2012, 10:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: No logro guardar una consulta select a una tabla, en un array

Prueba como te digo, es exactamente lo que quieres.

Saludos.
  #14 (permalink)  
Antiguo 08/06/2012, 10:52
 
Fecha de Ingreso: febrero-2012
Ubicación: Madrid
Mensajes: 48
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: No logro guardar una consulta select a una tabla, en un array

Cita:
Iniciado por GatorV Ver Mensaje
Prueba como te digo, es exactamente lo que quieres.

Saludos.

vale, si sólo dejo:

var_dump($ArrayDatos[0][0]); // cod_prod
var_dump($ArrayDatos[0][1]); // denom



me muestra esto:

string(1) "1" string(10) "ASCENSORES"

ahora bien, si por ejemplo quiero darle a una variable "x" el valor de $ArrayDatos[0][0] ?? voy a probar porque con el echo no me sacaba el valor no se por qué

FUnciona!! :

$variableprueba = $ArrayDatos[0][0];
$variableprueba2 = $ArrayDatos[0][1];

echo $variableprueba;
echo $variableprueba2;


me saca el valor sin problemas, muchas gracias!! ;)

y la última duda, si ahora quiero mostrar un combo select, con las opciones de ese array?? qué uso, un for?? porque el mysql_fetch_array ya no podré usarlo claro.

estoy probando con esto:

$numtotal=mysql_num_rows($result6);


<td><select name="nombreprod" id="nombreprod">
<option value="">Seleccionar</option>
<?php
for($i=0;$i<$numtotal;$i++)
{
echo "<option value='".$ArrayDatos['i']."'>".$ArrayDatos['1']."</option>";
}

?>
</select>




</td>

ya que en el select sólo quiero mostrar el campo "denom" pero algo me falla me sale todo array array array

Última edición por oskuro; 08/06/2012 a las 11:01
  #15 (permalink)  
Antiguo 08/06/2012, 11:56
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 7 meses
Puntos: 34
Respuesta: No logro guardar una consulta select a una tabla, en un array

te sale Array Array Array porque estas imprimiendo un arreglo con echo!! usá print_r() y fijate que te está llegando!!
  #16 (permalink)  
Antiguo 08/06/2012, 12:06
 
Fecha de Ingreso: febrero-2012
Ubicación: Madrid
Mensajes: 48
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: No logro guardar una consulta select a una tabla, en un array

Cita:
Iniciado por patriciomase Ver Mensaje
te sale Array Array Array porque estas imprimiendo un arreglo con echo!! usá print_r() y fijate que te está llegando!!
y cómo lo imprimo entonces si no es con echo? Lo que quiero es que cargue esos valores en las opciones del select, cómo se lo meto sino?? voy a ver lo del print_r()
  #17 (permalink)  
Antiguo 08/06/2012, 12:28
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 12 años, 5 meses
Puntos: 32
Respuesta: No logro guardar una consulta select a una tabla, en un array

Proba con esto

Código PHP:
Ver original
  1. for($i=0;$i<$numtotal;$i++)
  2.     {
  3.         echo "<option value='".$ArrayDatos[$i][0]."'>".$ArrayDatos[$i][1]."</option>";
  4.     }

Espero sirva, saludos.
__________________
http://www.latinium.com.ar/
  #18 (permalink)  
Antiguo 08/06/2012, 12:30
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 12 años, 5 meses
Puntos: 32
Respuesta: No logro guardar una consulta select a una tabla, en un array

Te recomiendo leer este articulo para comprender a fondo el tema de arrays.

[URL="http://ar2.php.net/manual/es/function.array.php"]http://ar2.php.net/manual/es/function.array.php[/URL]

Saludos.
__________________
http://www.latinium.com.ar/
  #19 (permalink)  
Antiguo 08/06/2012, 12:33
 
Fecha de Ingreso: febrero-2012
Ubicación: Madrid
Mensajes: 48
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: No logro guardar una consulta select a una tabla, en un array

Cita:
Iniciado por elgoncho99 Ver Mensaje
Proba con esto

Código PHP:
Ver original
  1. for($i=0;$i<$numtotal;$i++)
  2.     {
  3.         echo "<option value='".$ArrayDatos[$i][0]."'>".$ArrayDatos[$i][1]."</option>";
  4.     }

Espero sirva, saludos.

Funciona!!!!!!!!! 1000 gracias!!!!!!!!!!!!!!!!!!!

me leeré también ese manual ;)

Etiquetas: select, sql, tabla, variables
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 21:25.