Foros del Web » Programando para Internet » PHP »

Guardar registros en un array

Estas en el tema de Guardar registros en un array en el foro de PHP en Foros del Web. Hola amigos. Estoy intentando algo, pero no me sale, a ver si me podeis ayudar. Tengo una bd, con los campos 1, 2 y 3. ...
  #1 (permalink)  
Antiguo 30/06/2010, 02:38
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Guardar registros en un array

Hola amigos. Estoy intentando algo, pero no me sale, a ver si me podeis ayudar.

Tengo una bd, con los campos 1, 2 y 3.

Estos campos, tienen 2500 registros, y lo que quiero es, guardar en un array numerico todos los registros de los campos 2 y 3, con lo que me quedará un array de 2500 datos.

Si hago echo array[0] me mostrará el registro 1 los campos 2 y 3.
Si hago echo array[1] me mostrará el registro 2 los campos 2 y 3, etc, etc, etc.

Gracias. Un saludo.
  #2 (permalink)  
Antiguo 30/06/2010, 02:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Guardar registros en un array

y luego... ¿cual es el problema? ¿no te sale? ¿error de sintaxis? ¿hay que adivinar el código?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/06/2010, 03:01
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Guardar registros en un array

Perdon.

$rs = mysql_query("SELECT frase, autor FROM t_frases");

while ($rs1 = mysql_fetch_row($rs))
{
if (!prueba)
{
$i = 0;
$prueba[$i] = $rs1[0];
}
else
{
$i = $i++;
$prueba[$i] = $rs1[0];
}
echo $prueba[$i];
}

No funciona
  #4 (permalink)  
Antiguo 30/06/2010, 03:07
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Guardar registros en un array

Hola. Así como voy a poner ahora, parece que funciona, excepto una cosa, al principio me dice
Notice: Undefined variable: prueba in C:\Archivos de programa\Web\EasyPHP-5.3.2\www\prueba1.php on line 38
y luego muestra todos los registros. el codigo es este:

$rs = mysql_query("SELECT frase, autor FROM t_frases");

while ($rs1 = mysql_fetch_row($rs))
{
if (!$prueba)
{
$i = 0;
$prueba[$i] = $rs1[0];
}
else
{
$i = $i++;
$prueba[$i] = $rs1[0].'.'.$rs1[1];
}
echo $prueba[$i];
echo '<br>';
}
  #5 (permalink)  
Antiguo 30/06/2010, 03:11
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Guardar registros en un array

Bueno, parece que ya funciona

$rs = mysql_query("SELECT frase, autor FROM t_frases");

while ($rs1 = mysql_fetch_row($rs))
{
if (empty($prueba))
{
$i = 0;
$prueba[$i] = $rs1[0];
}
else
{
$i = $i++;
$prueba[$i] = $rs1[0].'.'.$rs1[1];
}
echo $prueba[$i];
echo '<br>';
}
  #6 (permalink)  
Antiguo 30/06/2010, 03:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Guardar registros en un array

se puede saber donde defines $prueba??

porque el error te dice exactamente eso... además, lo mas sencillo es algo así:
Código PHP:
$foo = array();
while (
/* ... */$foo []= "$row->x,$row->y";
var_dump($foo); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 30/06/2010, 03:23
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Guardar registros en un array

La idea de este codigo es para mostrar una frase aleatoria, pero según el codigo que pongo ahora, siempre me muestra la misma frase

$rs = mysql_query("SELECT frase, autor FROM t_frases");

while ($rs1 = mysql_fetch_row($rs))
{
if (empty($prueba))
{
$i = 0;
$prueba[$i] = $rs1[0];
}
else
{
$i = $i++;
$prueba[$i] = $rs1[0].'.'.$rs1[1];
}
}

$aleatoreo= array_rand($prueba,1);
echo "El numero es: ".$prueba[$aleatoreo];

A ver si veis porque no funciona. Gracias.
  #8 (permalink)  
Antiguo 30/06/2010, 03:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Guardar registros en un array

con solo leer el código no podemos "ver" el problema, no somos videntes!!

pero tu si puedes ayudarnos a ver lo que no podemos ver, jeje... por favor, usa var_dump() para comprobar el valor de $prueba una ves hayas rellenado dicho arreglo...

eso para verificar su contenido, ya luego vas por el siguiente paso... (;
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 30/06/2010, 03:33
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Guardar registros en un array

$rs = mysql_query("SELECT frase, autor FROM t_frases");

while ($rs1 = mysql_fetch_row($rs))
{
if (empty($prueba))
{
$i = 0;
$prueba[$i] = $rs1[0];
}
else
{
$i = $i++;
$prueba[$i] = $rs1[0].'.'.$rs1[1];
}
}

var_dump($prueba);
$aleatoreo= array_rand($prueba,1);
echo $prueba[$aleatoreo];

muestra eso

array(1) { [0]=> string(79) "Yo soy siempre fiel al sistema liberal y justo que proclamó mi patria.Bolívar" }

No se si te refieres a que hiciera esto.
  #10 (permalink)  
Antiguo 30/06/2010, 03:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Guardar registros en un array

exacto, a eso me refería... y como puedes observar solo hay un elemento en tu arreglo...

¿porque no pruebas imprimiendo algo dentro de ciclo para analizar los datos?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 30/06/2010, 03:43
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Guardar registros en un array

Ya lo hize antes y funcionaba bien, si imprimo en el ciclo antes de else, sale una frase, si imprimo en el ciclo despues de else, salen todas las frases. Por eso no lo entiendo como en el ciclo si, y despues no.

Y si hago var_dump dentro del ciclo, muestra todas las frases aleatoriamente, vamos, que funciona.
  #12 (permalink)  
Antiguo 30/06/2010, 03:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Guardar registros en un array

quizá el problema viene de la asignación...

en el else dentro de tu ciclo omite el índice el arreglo, así como el ejemplo que te puse antes...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 30/06/2010, 03:50
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Guardar registros en un array

Hola. Efectivamente, era por eso por lo que no funcionaba. Pero, serias tan amable de explicarme porque, ya que no entiendo nada. Gracias.
  #14 (permalink)  
Antiguo 30/06/2010, 03:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Guardar registros en un array

pues muy claro no lo tengo, ya que a simple vista parece hasta correcto...

sin embargo debo decir que por eso se recomienda declarar variables antes de usarlas, y si lo haces dentro de un ciclo debes tener experiencia al respecto...

en tu caso debiste definir dichas variables antes de abrir el while() y solo al insertar los índices pre-incrementar su valor:
Código PHP:
$foo[++$i] = $bar
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 30/06/2010, 03:55
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Guardar registros en un array

No se, esto haciendo pruebas para ver si soy capaz de entenderlo y poniendolo así

$rs = mysql_query("SELECT frase, autor FROM t_frases");

while ($rs1 = mysql_fetch_row($rs))
{
if (empty($prueba))
{
$prueba[] = $rs1[0];
}
else
{
$prueba[] = $rs1[0].'.'.$rs1[1];
}
}

$aleatoreo= array_rand($prueba,1);
echo $prueba[$aleatoreo];

funciona a la perfeccion, pero es que no es posible, porque como se va llenando el array de valores y no hacemos correr ese valor, me entiendes?.
  #16 (permalink)  
Antiguo 30/06/2010, 03:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Guardar registros en un array

Cita:
Iniciado por AitorLopez Ver Mensaje
No se, esto haciendo pruebas para ver si soy capaz de entenderlo y poniendolo así

$rs = mysql_query("SELECT frase, autor FROM t_frases");

while ($rs1 = mysql_fetch_row($rs))
{
if (empty($prueba))
{
$prueba[] = $rs1[0];
}
else
{
$prueba[] = $rs1[0].'.'.$rs1[1];
}
}

$aleatoreo= array_rand($prueba,1);
echo $prueba[$aleatoreo];

funciona a la perfeccion, pero es que no es posible, porque como se va llenando el array de valores y no hacemos correr ese valor, me entiendes?.
claro que te entiendo, de hecho es una característica de los arreglos en PHP... si no se especifica un índice entonces se agrega el elemento al final del mismo...
http://php.net/array

por eso te comentaba que al usar los índices debes saber lo que haces!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: registros
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 03:14.