Foros del Web » Programando para Internet » PHP »

while

Estas en el tema de while en el foro de PHP en Foros del Web. buenas compañeros. tengo un while que muestra la informacion guardada en una base de datos y me funciona a la perfeccion; pero debo agregarle un ...
  #1 (permalink)  
Antiguo 19/08/2009, 14:27
 
Fecha de Ingreso: septiembre-2008
Mensajes: 136
Antigüedad: 15 años, 7 meses
Puntos: 1
while

buenas compañeros.

tengo un while que muestra la informacion guardada en una base de datos y me funciona a la perfeccion; pero debo agregarle un enlace a cada nombre de las filas
para que me envie a una pagina especifica, el problema es que no se como hacerlo. quiero hacerlo con la variable $_session, pero no se como guardarla en el ciclo, no se si hay una forma de $_session array que me sirva o otra cosa.
este es el codigo:
Código PHP:
<?
if($rows1!=0)
{
//entrar
//echo "ENTROOOO 11";
while($datosmysql_fetch_row($mysql_result1))    
    {
    
?>
  <tr>
    <td height="20"><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? ECHO $datos[0]; ?>-</a></font></div></td>
  <td align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? ECHO $datos[1]; ?></font></td>
    <td align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? ECHO $datos[2]; ?></font></td>
    <td align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? ECHO $datos[3]; ?></font></td>
    <td align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? ECHO $datos[5]; ?></font></td>
    <td align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? ECHO $datos[6]; ?></font></td>   
  </tr>
  <?
  
}
  }
   
?>
  #2 (permalink)  
Antiguo 19/08/2009, 14:50
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: while

A que te refieres con pero debo agregarle un enlace a cada nombre de las filas
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 19/08/2009, 15:00
 
Fecha de Ingreso: septiembre-2008
Mensajes: 136
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: while

hola abimaelrc, perdon por explicarme mal.
bueno la idea es que tengo varias filas de una consulta, cada una de esas filas tiene un nombre, esos nombres tienen que ser un enlace que me mandan a una pagina especifica dependiendo del nombre, la idea es guardar esa variable en una de session pero no se como hacerlo porque esta en un while.
espero me entiendas, saludos.
  #4 (permalink)  
Antiguo 19/08/2009, 15:03
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: while

Bueno para crear sessiones solo tienes que declarar el nombre de ellas y el valor. Por ejemplo
Código php:
Ver original
  1. $_SESSION["Nombre"]="valor";
Lo que te sugiero que en el while coloques entonces el nombre de la session ya que indicas que cada uno tiene su propio nombre y le indicas el valor que debe llevar. Algo similar a lo que te indique
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 19/08/2009, 15:09
 
Fecha de Ingreso: septiembre-2008
Mensajes: 136
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: while

bueno yo tenia algo asi:
Código PHP:
<?

if($rows1!=0)
{
//entrar
//echo "ENTROOOO 11";
while($datosmysql_fetch_row($mysql_result1))    
    {
    
?>
  <tr>
    <td height="20"><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="listado_de_datos.php?id_evento=<? echo $datos[0]; $_SESSION['evento']=$datos[1];?>"><? ECHO $datos[0]; ?>-</a></font></div></td>
  <td align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? ECHO $datos[1]; ?></font></td>
    <td align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? ECHO $datos[2]; ?></font></td>
    <td align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? ECHO $datos[3]; ?></font></td>
    <td align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? ECHO $datos[5]; ?></font></td>
    <td align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? ECHO $datos[6]; ?></font></td>   
  </tr>
  <?
  
}
  }
   
?>
pero siempre que enlazo me coje el nombre de la ultima fila, por eso es no se si necesite un array o como?
  #6 (permalink)  
Antiguo 19/08/2009, 15:26
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: while

pero no dijiste que vas a tener para cada fila un nombre

Vas a tener que otorgar un nombre diferente a cada $_SESSION sino vas a tener que crear un array en esa session. Me refiero a algo así
Código PHP:
Ver original
  1. $_SESSION["nombre"][] = "valor";
  2. $_SESSION["nombre"][] = "valor";
  3. $_SESSION["nombre"][] = "valor";
  4. $_SESSION["nombre"][] = "valor";
  5. $_SESSION["nombre"][] = "valor";
  6. $_SESSION["nombre"][] = "valor";
  7. $_SESSION["nombre"][] = "valor";
  8. $_SESSION["nombre"][] = "valor";
  9. $_SESSION["nombre"][] = "valor";
  10. $_SESSION["nombre"][] = "valor";
  11. $_SESSION["nombre"][] = "valor";
  12. print_r($_SESSION);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 19/08/2009, 15:35
 
Fecha de Ingreso: septiembre-2008
Mensajes: 136
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: while

no me has entendido, lo que pas es que esos nombres son de una consulta y de la cual no hay limite de filas definido. por eso me imagino que es con un array pero necesito que me expliques como envio en $_SESSION cada nombre, para que cuando seleccione un enlace me envie a una pagina donde pueda utilizar la variable especifica.
  #8 (permalink)  
Antiguo 19/08/2009, 15:42
 
Fecha de Ingreso: septiembre-2008
Mensajes: 136
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: while

algo asi:


| ID |NOMBRE |DESCRIPCION|
1 evento1 blablabla
2 evento2 blablabla
. . .
. . .
. . .

y ese enlace me mande a una pagina algo asi:

BIENVENIDO AL EVENTO evento1

blablablablablablablablablablablabla
blablablablablablablablablablablabla

esa es la idea, pero como esta en un while no se como obtener las diferentes variables de nombre de evento para hacer los enlaces.
  #9 (permalink)  
Antiguo 19/08/2009, 15:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: while

Pues ahi esta lo que te queria decir la primera vez cuando vayas a llamar la session la vas a crear con el valor del Nombre Me refiero a esto

Código PHP:
Ver original
  1. while($datos= mysql_fetch_row($mysql_result1)){
  2.   $_SESSION[$datos["NOMBRE"]] = $datos["DESCRIPCION"];
  3. }
  4. print_r($_SESSION);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 19/08/2009, 16:03
 
Fecha de Ingreso: septiembre-2008
Mensajes: 136
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: while

si asi lo hice pero como te digo me devuelve solo el ultimo valor del ciclo

Código PHP:
while($datos= mysql_fetch_row($mysql_result1))    
    {
    ?>
  <tr>
    <td ><a href="listado_de_datos.php?id_evento=<? echo $datos[0];?>"><? ECHO $datos[0]; ?>-</a><td>
  <td ><? ECHO $datos[1];  $_SESSION['evento']=$datos[1];?></td>
    <td ><? ECHO $datos[2]; ?></td>
    <td ><? ECHO $datos[3]; ?></td>
    <td ><? ECHO $datos[5]; ?></td>
    <td ><? ECHO $datos[6]; ?></td>   
  </tr>
  <?
  
}
si me explico.
  #11 (permalink)  
Antiguo 19/08/2009, 16:10
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: while

Prueba el ultimo ejemplo que te deje, asi resuelves el problema. Basandome en lo que tienes en la base de datos

Código PHP:
Ver original
  1. //$datos["Nombre"] -> es la columna llamada Nombre
  2. //$datos["DESCRIPCION"] -> es la columna llamada Descripcion
  3. $_SESSION[$datos["NOMBRE"]] = $datos["DESCRIPCION"];
Escribelo de esa forma y me dejas saber.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 19/08/2009, 16:20
 
Fecha de Ingreso: septiembre-2008
Mensajes: 136
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: while

no se si es asi como tu dices:
Código PHP:
while($datos= mysql_fetch_row($mysql_result1))     
    { 
    ?> 
  <tr> 
    <td ><a href="listado_de_datos.php?id_evento=<? echo $datos[0];?>"><? ECHO $datos[0]; ?>-</a><td> 
  <td ><? ECHO $datos[1];  $_SESSION[$datos['evento']]=$datos[1];?td
    <
td ><? ECHO $datos[2]; ?></td> 
    <td ><? ECHO $datos[3]; ?></td> 
    <td ><? ECHO $datos[5]; ?></td> 
    <td ><? ECHO $datos[6]; ?></td>    
  </tr> 
  <? 
  
}
y asi me pas lo mismo
  #13 (permalink)  
Antiguo 19/08/2009, 20:01
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: while

1- Te recomiendo usar mysql_fetch_assoc, gasta menos recursos.
2- $_SESSION[$datos['evento']]=$datos[1]; no es necesario que lo pongas donde lo estas poniendo, me refiero a que lo pongas directamente abajo del 'while(){' solo por por cuestiones de 'limpieza' que en un futuro cuando tengas que editar el codigo mientras mas limpio mejor...
3- Me imagino te habras dado cuenta, pero en el codigo que pusiste ahi arriba, te estas comiendo un ?> revisalo ;)

No entiendo para que queres hacer eso de las sesiones...
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 16:02.