Categorías > Lenguajes > PHP > Valores Arreglo ...
Nuevo Mensaje | Responder
Fdo88


97 envíos
Desconectado
1744 lecturas
9 respuestas
Valores Arreglo 14-04-2010 a las 12:38:54


Hola, como estan, he estado un poco perdido, pero
ya volvi ... pero con mas problemas.

Tengo un pequeño arreglo que lleno a partir de una
consulta hecha a MySQL, la consulta me da como
resultado tres registros: el valor 0 en la posicion 0,
valor 1 posicion 1, valor 2 posicion 2.

Cuento las filas del arreglo y me dice que tiene tres;
hasta ahi todo bien, pero cuando quiero mostrarlo:

Código Fuente:
echo "Valor ".$arreglo[0]."Valor ".$arreglo[1]."Valor ".$arreglo[2];


Solo aparece el primero, y el resto solo dice "Valor" solito, creo
que es raro por el hecho de que el arreglo tiene las tres posiciones
pero es como si guardara un valor vacio, Ah! y si ejecuto la
consulta directamente en la BD me muestra los respectivos valores.

Que puede ser??
Gracias.


Responder | Citar | Moderar | Mensaje Privado
Training Channel
wilmaforez


65 envíos
Desconectado

#1
RE: Valores Arreglo 14-04-2010 a las 14:31:28

¡Hola!
En php, los arrays no sólo pueden usar como indice números, también pueden usar strings o lo que sea.

Cuando haces una consulta, los índices que se guardan son los nombres de las columnas que se pusieron al hacer la consulta.

Si la consulta fue, p.e.
SQL:SELECT columna1, columna2, columna3 FROM ...

en php se accedería a cada valor tal que así:
PHP:valor1 = arreglo['columna1'] ;
valor2 = arreglo['columna2'] ;
valor3 = arreglo['columna3'] ;


Saludos.


Responder | Citar | Moderar | Mensaje Privado
Fdo88


97 envíos
Desconectado

#2
RE: RE: Valores Arreglo 14-04-2010 a las 14:42:56


Es cierto, pero hice lo que me dices y solo me muestra un
valor del arreglo, y ahora solo el ultimo no el primero.

La consulta la saco de dos tablas diferentes, creo que cambia
el hecho de cual mostrar si cambio el orden de las tablas
en la consulta, es decir; asi :
Código Fuente:FROM item, revision

muestra el primer valor, y asi:
Código Fuente:FROM revision,item

muestra el ultimo.

Hasta donde se, la primera tabla que mencione debe ser la que
tenga la llave primaria y luego la de la foranea.

Tendra eso algo que ver??


Responder | Citar | Moderar | Mensaje Privado
wilmaforez


65 envíos
Desconectado

#3
RE: Valores Arreglo 14-04-2010 a las 14:57:34

Antes has dicho que pasando la consulta directamente a la base de datos funcionaba bien. Por tanto no creo que tenga que ver, si no saldría mal en ambos casos. De todos modos, tengo MySQL un tanto oxidado ahora mismo.

La verdad es que sin ver más código no se me ocurre que puede ser .


Responder | Citar | Moderar | Mensaje Privado
Fdo88


97 envíos
Desconectado

#4
RE: RE: Valores Arreglo 14-04-2010 a las 15:34:59

Que mas pongo???

La consulta:
Código Fuente:SELECT DISTINCT (num_rev)
FROM revisiones, item
WHERE num_rel = num_rel_rev
AND num_ref_itm = '10-158'

Tendra algo que ver el DISTINCT??


Responder | Citar | Moderar | Mensaje Privado
wilmaforez


65 envíos
Desconectado

#5
RE: Valores Arreglo 14-04-2010 a las 15:48:01

Esa consulta sólo devuelve una columna, por tanto lo que yo dije arriba no se aplica.
Lo que tienes que hacer es , después de hacer la query, poner un bucle que recoja todas las filas que te devuelva.

Eso se hace de este modo:
PHP:
while( $row = mysql_fetch_array($result) )
{
       echo "Valor".$row[0];
}


De que la consulta esté bien hecha tendrás que encargarte tú D.

Saludos

Edito. Se me olvidaba aclarar, que $result es el resultado de la consulta realizada. Es decir:
PHP:$query = "tu-consulta-aqui";
$result = mysql_query( $query );




Responder | Citar | Moderar | Mensaje Privado
Fdo88


97 envíos
Desconectado

#6
RE: RE: Valores Arreglo 14-04-2010 a las 17:48:23


Hay alguna diferencia entre recorrer un arreglo con while o for??




Responder | Citar | Moderar | Mensaje Privado
diegomvsc2


16 envíos
Desconectado

#7
RE: Valores Arreglo 14-04-2010 a las 21:36:24

Claro que el while es hasta que se acaben por ejemplo, y en el for tu le pones el numero de veces que se haga el ciclo ..

RuxelHost.com
Responder | Citar | Moderar | Mensaje Privado
CHuLoYo


762 envíos
Desconectado

#8
RE: Valores Arreglo 15-04-2010 a las 06:38:01

Lo más cómodo para los arrays es el foreach:

Código Fuente:foreach($array as $clave=>$valor) {

    echo $clave . $valor;

}


Lo recorrerá aunque le falten claves que pueden fallar con for.
Saludos.

www.Esquio.net | Diseño y programación web profesional
Responder | Citar | Moderar | Mensaje Privado
Fdo88


97 envíos
Desconectado

#9
RE: RE: Valores Arreglo 15-04-2010 a las 10:02:19

Pues lo tenia con for, pero me salia como les digo, y lo cambie
por while y me los muestra como es.

Gracias.


Responder | Citar | Moderar | Mensaje Privado