Foros del Web » Programando para Internet » PHP »

ayuda con obtener informaicon de una sentencia while

Estas en el tema de ayuda con obtener informaicon de una sentencia while en el foro de PHP en Foros del Web. hola a todos espero que me ayuden ,... tengo programado este codigo esta es mi progra para llamar a la base de datos , es ...
  #1 (permalink)  
Antiguo 10/09/2010, 17:49
 
Fecha de Ingreso: febrero-2010
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
ayuda con obtener informaicon de una sentencia while

hola a todos
espero que me ayuden ,... tengo programado este codigo


esta es mi progra para llamar a la base de datos , es un simple select como pueden..... hat ahy no tengo ningun problema

<?php
$link=Conectarse();

$result=mysql_query("SELECT id_carta, fbc.nombre as nomb_carta ,fbc.descripcion, fbex.nombre as nomb_expan ,fbex.id_expansion as id_expansion FROM fb_cartas as fbc , fb_expansion as fbex WHERE fbc.id_expansion = fbex.id_expansion AND fbex.nombre = '".$_GET['nombreexp']."';",$link);

?>

ahora este es el codigo que uso para mostrarlo en una tabla ( html )


<?php

session_start();

while($row = mysql_fetch_array($result)) {
printf("<tr><td><a href=\"imagen.php?idnombre=".$row['nomb_carta'].$row["id_expansion"]."\" target=I1 class=style7>&nbsp;%s</a></td><td class=style1>&nbsp;%s&nbsp;</td><td class=style1>&nbsp;%s&nbsp;</td></tr>", $row["nomb_carta"],$row["descripcion"],$row["nomb_expan"]);

$carta_nomb_expan = $row["nomb_expan"] ;
$_SESSION["carta_nomb_expan"] = $carta_nomb_expan;
$nombre_carta = $row["nomb_carta"];

$_SESSION["carta_nomb"] = $nombre_carta;

}


bueno memnuestra correcto la tabla con los resultados de la bd excelente ... agregando un ?idnombre ak href .. para jalar ese dato a la otra pagina php por ejemplo jalarlo a c.php listo me funciona.... ( a si se dan cuenta esta en link solo le doy al link se dirige ala pagina asignada y con el metodo _GET[idnombre] algo asi .... obtengo ese dato ... pero todo va bien) ahora mi duda es......

si se fijan estoy agregando unas sesiones para obtener y jalar esos balores nomb_carta y el carta_nomb_expan

$carta_nomb_expan = $row["nomb_expan"] ;
$_SESSION["carta_nomb_expan"] = $carta_nomb_expan;
$nombre_carta = $row["nomb_carta"];

$_SESSION["carta_nomb"] = $nombre_carta;

... pero esta mal ya que me devuelve el ultimo... osea sale porq esta adentro del while pero si lo saco igual no me muestra nada como puedo ponerlo para obtener esos datos en la siguente pagina
  #2 (permalink)  
Antiguo 10/09/2010, 17:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: ayuda con obtener informaicon de una sentencia while

eso es porque reemplazas siempre el key "carta_nomb_expan", si el key es fijo, no obtendrás sino el ultimo, lo que necesitas es que se llene con un array:

$_SESSION["carta_nomb_expan"][] = $carta_nomb_expan;

al final $_SESSION["carta_nomb_expan"] será un array
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 10/09/2010, 23:51
 
Fecha de Ingreso: febrero-2010
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:
Iniciado por maycolalvarez Ver Mensaje
eso es porque reemplazas siempre el key "carta_nomb_expan", si el key es fijo, no obtendrás sino el ultimo, lo que necesitas es que se llene con un array:

$_SESSION["carta_nomb_expan"][] = $carta_nomb_expan;

al final $_SESSION["carta_nomb_expan"] será un array
holas gracias por la pronta respuesta....

entiendo q lo pones en un array para que guarde todo lo que este en el while.

sustituyo con el codigo q pones y me tira el siguiente error


Fatal error: [] operator not supported for strings in /home/a5018/public_html/consultar.php on line 74

la cual es la linea q sustituyi

pero el programa sigue funcionando normal osea devolviendome el ultimo,,,, q puedo hacer?
  #4 (permalink)  
Antiguo 11/09/2010, 01:42
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ayuda con obtener informaicon de una sentencia while

Antes de entrar al bucle debes inicializar la variable como matriz:

Código PHP:
Ver original
  1. $_SESSION['carta_nomb_expan'] = array();

Y, cuando necesites ver el contenido de la variable, tendras que hacerlo con un ciclo o convirtiendo a cadena:

Código PHP:
Ver original
  1. // Recorriendo la matriz:
  2. foreach($_SESSION['carta_nomb_expan'] as $str) {
  3.     echo $str . '<br />';
  4. }
  5.  
  6. // Convirtiendo a cadena:
  7. echo implode('<br />', $_SESSION['carta_nomb_expan']);

Manual de implode()
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 12/09/2010, 18:37
 
Fecha de Ingreso: febrero-2010
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:
Iniciado por Triby Ver Mensaje
Antes de entrar al bucle debes inicializar la variable como matriz:

Código PHP:
Ver original
  1. $_SESSION['carta_nomb_expan'] = array();

Y, cuando necesites ver el contenido de la variable, tendras que hacerlo con un ciclo o convirtiendo a cadena:

Código PHP:
Ver original
  1. // Recorriendo la matriz:
  2. foreach($_SESSION['carta_nomb_expan'] as $str) {
  3.     echo $str . '<br />';
  4. }
  5.  
  6. // Convirtiendo a cadena:
  7. echo implode('<br />', $_SESSION['carta_nomb_expan']);

Manual de implode()
<?php
$link=Conectarse();

session_start();

$result=mysql_query("SELECT id_carta, fbc.nombre as nomb_carta ,fbc.descripcion, fbex.nombre as nomb_expan ,fbex.id_expansion as id_expansion FROM fb_cartas as fbc , fb_expansion as fbex WHERE fbc.id_expansion = fbex.id_expansion AND fbex.nombre = '".$_GET['nombreexp']."';",$link);

//agrendo...

$_SESSION["carta_nomb"][] = array();

?>

y en el while

<?php

session_start();

while($row = mysql_fetch_array($result)) {
printf("<tr><td><a href=\"imagen.php?idnombre=".$row['nomb_carta'].$row["id_expansion"]."\" target=I1 class=style7>&nbsp;%s</a></td><td class=style1>&nbsp;%s&nbsp;</td><td class=style1>&nbsp;%s&nbsp;</td></tr>", $row["nomb_carta"],$row["descripcion"],$row["nomb_expan"]);


$_SESSION["carta_nomb_expan"] = $row["nomb_expan"] ;

$_SESSION["carta_nomb"][] = $row["nomb_carta"];
// $_SESSION["id_carta_buscar"] = $id_carta_buscar;

}

mysql_free_result($result);
mysql_close($link);

?>

y lo llamo de esta manera

$nombre_carta = $_SESSION["carta_nomb"];

pero de devuelve exactamente "array" y no el nombre q estoy escogiendo
  #6 (permalink)  
Antiguo 12/09/2010, 19:36
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ayuda con obtener informaicon de una sentencia while

Por supuesto, si haces echo $nombre_carta; el resultado sera "array"... leiste la ultima parte de mi mensaje anterior?
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 12/09/2010, 21:26
 
Fecha de Ingreso: febrero-2010
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:
Iniciado por Triby Ver Mensaje
Por supuesto, si haces echo $nombre_carta; el resultado sera "array"... leiste la ultima parte de mi mensaje anterior?
disculpa si te refieres a este codigo

1.
// Recorriendo la matriz:
2.
foreach($_SESSION['carta_nomb_expan'] as $str) {
3.
echo $str . '<br />';
4.
}
5.

6.
// Convirtiendo a cadena:
7.
echo implode('<br />', $_SESSION['carta_nomb_expan']);

lo que pasa esque e tratado de ponerlo pero me sale error ... en la linea 2 ...
  #8 (permalink)  
Antiguo 12/09/2010, 23:42
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:
Iniciado por josepphh Ver Mensaje
disculpa si te refieres a este codigo

1.
// Recorriendo la matriz:
2.
foreach($_SESSION['carta_nomb_expan'] as $str) {
3.
echo $str . '<br />';
4.
}
5.

6.
// Convirtiendo a cadena:
7.
echo implode('<br />', $_SESSION['carta_nomb_expan']);

lo que pasa esque e tratado de ponerlo pero me sale error ... en la linea 2 ...
hola
hiciste esto?'
$_SESSION['carta_nomb_expan'] = array(); //imagino asignando un array con valores?
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #9 (permalink)  
Antiguo 13/09/2010, 10:13
 
Fecha de Ingreso: febrero-2010
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:
Iniciado por mortiprogramador Ver Mensaje
hola
hiciste esto?'
$_SESSION['carta_nomb_expan'] = array(); //imagino asignando un array con valores?
saludos
nop lo puse tal y como lo pusiste ... q valores le puedo poner si lo que quero es que almacene los resultados de la consulta.. y como haria psra obtener esos resultado ,como esta enumerado el arreglo como tendria q saber el numero del arreglo ... pero eso yo no lo se. ya que selecciono y espero q devuelva
  #10 (permalink)  
Antiguo 13/09/2010, 11:37
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:
Iniciado por josepphh Ver Mensaje
nop lo puse tal y como lo pusiste ... q valores le puedo poner si lo que quero es que almacene los resultados de la consulta.. y como haria psra obtener esos resultado ,como esta enumerado el arreglo como tendria q saber el numero del arreglo ... pero eso yo no lo se. ya que selecciono y espero q devuelva
ehm, como que no sabes?
alguien más hace el array y tu solo recibes?

pues el while que posteaste inicialmente debería
servir para esos propositos, la cosa es que en ese while
inicialmente asignabas siempre a la misma variable de sesión,
por ende al final tal vez solo obtenias el último registro de la bd

basando en lo dicho por Triby, yo intentaria algo así (no lo he probado)

ej:
Código PHP:
$_SESSION['carta_nomb_expan'] = array();
while(){
$_SESSION['carta_nomb_expan'][] = $row['carta'];
//o esta
$_SESSION['carta_nomb_expan'][$i] = $row['carta'];//$i variable iniciando en 0 que se iria incrementando dentro del while
}
print_r($_SESSION['carta_nomb_expan']);//deberia mostrar todos los datos 
espero te sirva alguna de las 2 ideas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #11 (permalink)  
Antiguo 13/09/2010, 14:09
 
Fecha de Ingreso: febrero-2010
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:
Iniciado por mortiprogramador Ver Mensaje
ehm, como que no sabes?
alguien más hace el array y tu solo recibes?

pues el while que posteaste inicialmente debería
servir para esos propositos, la cosa es que en ese while
inicialmente asignabas siempre a la misma variable de sesión,
por ende al final tal vez solo obtenias el último registro de la bd

basando en lo dicho por Triby, yo intentaria algo así (no lo he probado)

ej:
Código PHP:
$_SESSION['carta_nomb_expan'] = array();
while(){
$_SESSION['carta_nomb_expan'][] = $row['carta'];
//o esta
$_SESSION['carta_nomb_expan'][$i] = $row['carta'];//$i variable iniciando en 0 que se iria incrementando dentro del while
}
print_r($_SESSION['carta_nomb_expan']);//deberia mostrar todos los datos 
espero te sirva alguna de las 2 ideas
saludos


hola gracias por la respuesta pero intente .... pero no me devuelve nada... osea devuelve blanco.....

aver me disculpo ... meexplico mejor ... entiendo que estamos poniendo el row .. al array.... la cual seria el que escojo ... si entiendo.. pero cuando voy a ver el resultado con el

$expansion = $_SESSION["carta_nomb_expan"];

no devuelve nada...
  #12 (permalink)  
Antiguo 13/09/2010, 14:57
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: ayuda con obtener informaicon de una sentencia while

Buen día Amigo

Otra forma de hacerlo tal vez mas practica sería:


Código PHP:
$i=0;
while(
$row mysql_fetch_array($result)) {
printf("<tr><td><a href=\"imagen.php?idnombre=".$row['nomb_carta'].$row["id_expansion"]."\" target=I1 class=style7>&nbsp;%s</a></td><td class=style1>&nbsp;%s&nbsp;</td><td class=style1>&nbsp;%s&nbsp;</td></tr>"$row["nomb_carta"],$row["descripcion"],$row["nomb_expan"]);

 
$_SESSION["carta_nomb_expan".$i] = $carta_nomb_expan;
$_SESSION["carta_nomb".$i] = $nombre_carta;


$i=$i+1;


Así lo que irías llamando sería
$_SESSION["carta_nomb1"]
$_SESSION["carta_nomb2"]
$_SESSION["carta_nomb3"] .... ETC

SALUDOS
__________________
krowmx
Hostings y Dominios
Tú defines la idea, nosotros la desarrollamos
  #13 (permalink)  
Antiguo 13/09/2010, 15:26
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:
Iniciado por josepphh
aver me disculpo ... meexplico mejor ... entiendo que estamos poniendo el row .. al array.... la cual seria el que escojo ... si entiendo.. pero cuando voy a ver el resultado con el

$expansion = $_SESSION["carta_nomb_expan"];

no devuelve nada...
Bueno, es natural... las asignaciones de valores no devuelven resultados ni realizan funciones... solo asignan valores.

Tal vez entendi mal, pero, aclara por favor... despues de eso, haces algo adicional con $expansion ?
__________________
- León, Guanajuato
- GV-Foto
  #14 (permalink)  
Antiguo 13/09/2010, 23:36
 
Fecha de Ingreso: febrero-2010
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:
Iniciado por Triby Ver Mensaje
Bueno, es natural... las asignaciones de valores no devuelven resultados ni realizan funciones... solo asignan valores.

Tal vez entendi mal, pero, aclara por favor... despues de eso, haces algo adicional con $expansion ?
a ver mi idea es esta....

como veran ese while ... me va a mostrar una tabla con el resultado de la sentencia ( el select que ven arriba ) en una tabla ... si ven el while hay un link ( href ) con un valor id... ese link se pondra en la primera columna por cada resultado q me vote la sentencia.... ese id es el nombre.. de esa forma si puedo obtener el nombre del link q ue e apretado... unapequeña grafica


link1 | aaaa |
__________
link2 | bbbb|
__________
link3 | ccccc|
__________
link4 | dddd|
________ _
link5 | eeee|
___________-

si doy clic en link4 ... ala pagina q estoy redireccionando ... me lleva el nombre link4 .... eso esta perfecto... mi idea es como poder llevar tambien el "ddddd"

este ddddd no esta en el link es una columna q se muestra.. kiero llevar tanto el link4 como el ddddd a otra pagina ya asignada

pense ponerlo en seseion.. o no se .. en si esa es mi pregunta ..
me disculpo si no me explique bien

muchas gracias a los interesados
  #15 (permalink)  
Antiguo 13/09/2010, 23:39
 
Fecha de Ingreso: febrero-2010
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:
Iniciado por KrowMx Ver Mensaje
Buen día Amigo

Otra forma de hacerlo tal vez mas practica sería:


Código PHP:
$i=0;
while(
$row mysql_fetch_array($result)) {
printf("<tr><td><a href=\"imagen.php?idnombre=".$row['nomb_carta'].$row["id_expansion"]."\" target=I1 class=style7>&nbsp;%s</a></td><td class=style1>&nbsp;%s&nbsp;</td><td class=style1>&nbsp;%s&nbsp;</td></tr>"$row["nomb_carta"],$row["descripcion"],$row["nomb_expan"]);

 
$_SESSION["carta_nomb_expan".$i] = $carta_nomb_expan;
$_SESSION["carta_nomb".$i] = $nombre_carta;


$i=$i+1;


Así lo que irías llamando sería
$_SESSION["carta_nomb1"]
$_SESSION["carta_nomb2"]
$_SESSION["carta_nomb3"] .... ETC

SALUDOS
y de que forma puedo obtener esa sesion en otra pagina... osea sin saber la sesion.. me explico yo escojo un resultado de la bd ponte q sea la sesion cartanomb2.... como se q es esa para poder llevarlo ala otra pagina.. si escojo otra ponte la cartanomb4.. como se q estoy escogienda esa para llevarlo a la otra pagina...

DISCULPA MIRA EL EJEMPLO Q PUSE ARRIBITA .. PODRAS ENTENDER UN POCO MAS MI PROBLEMA
  #16 (permalink)  
Antiguo 13/09/2010, 23:59
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:

si doy clic en link4 ... ala pagina q estoy redireccionando ... me lleva el nombre link4 .... eso esta perfecto... mi idea es como poder llevar tambien el "ddddd"

este ddddd no esta en el link es una columna q se muestra.. kiero llevar tanto el link4 como el ddddd a otra pagina ya asignada
teorizando que link4 es idnombre, y expansión es dddd
Código PHP:
Ver original
  1. printf("<tr><td><a href=\"imagen.php?idnombre=".$row['nomb_carta']."&otroparametro=".$row["id_expansion"]."\" target=I1 class=style7>&nbsp;%s</a></td><td class=style1>&nbsp;%s&nbsp;</td><td class=style1>&nbsp;%s&nbsp;</td></tr>", $row["nomb_carta"],$row["descripcion"],$row["nomb_expan"]);

o si se quiere en sesión usaria array, algo así

$_SESSION['carta_nomb_expan'][1] = $row['carta'];
$_SESSION['carta_nomb_expan'][1] = $row['descripcion'];
por ej

bueno, eso es lo que entiendo necesitas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #17 (permalink)  
Antiguo 14/09/2010, 22:20
 
Fecha de Ingreso: febrero-2010
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:
Iniciado por mortiprogramador Ver Mensaje
teorizando que link4 es idnombre, y expansión es dddd
Código PHP:
Ver original
  1. printf("<tr><td><a href=\"imagen.php?idnombre=".$row['nomb_carta']."&otroparametro=".$row["id_expansion"]."\" target=I1 class=style7>&nbsp;%s</a></td><td class=style1>&nbsp;%s&nbsp;</td><td class=style1>&nbsp;%s&nbsp;</td></tr>", $row["nomb_carta"],$row["descripcion"],$row["nomb_expan"]);

o si se quiere en sesión usaria array, algo así

$_SESSION['carta_nomb_expan'][1] = $row['carta'];
$_SESSION['carta_nomb_expan'][1] = $row['descripcion'];
por ej

bueno, eso es lo que entiendo necesitas
saludos
hay muchas gracias e interesante no sabia q se podia llamas a mas de uno de esa forma voy a intentar.... gracias broer intentare de las dos formas para probar
  #18 (permalink)  
Antiguo 14/09/2010, 22:26
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:
Iniciado por josepphh Ver Mensaje
hay muchas gracias e interesante no sabia q se podia llamas a mas de uno de esa forma voy a intentar.... gracias broer intentare de las dos formas para probar
bueno, espero te sirva. en cuanto a esto

$_SESSION
['carta_nomb_expan'][1] = $row['carta'];

$_SESSION['carta_nomb_expan'][1] = $row['descripcion'];

sobreescribiria el valor (errata mía)

sería

$_SESSION['carta_nomb_expan'][0] = $row['carta'];
$_SESSION['carta_nomb_expan'][1] = $row['descripcion'];

teniendo ya dos posiciones diferentes
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #19 (permalink)  
Antiguo 15/09/2010, 00:19
 
Fecha de Ingreso: febrero-2010
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con obtener informaicon de una sentencia while

Cita:
Iniciado por josepphh Ver Mensaje
hay muchas gracias e interesante no sabia q se podia llamas a mas de uno de esa forma voy a intentar.... Gracias broer intentare de las dos formas para probar
listo probado y funcionando

Etiquetas: sentencia
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 06:40.