Foros del Web » Programando para Internet » PHP »

ayuda con codigo

Estas en el tema de ayuda con codigo en el foro de PHP en Foros del Web. tengo el siguiente problema: resulta que hago una consulta mysql que me muestra el nombre y precio de un libro y al lado tiene un ...
  #1 (permalink)  
Antiguo 01/10/2009, 12:45
 
Fecha de Ingreso: junio-2006
Mensajes: 166
Antigüedad: 18 años, 5 meses
Puntos: 3
ayuda con codigo

tengo el siguiente problema:
resulta que hago una consulta mysql que me muestra el nombre y precio de un libro y al lado tiene un enlace "detalle" donde nos lleva a otra pagina que nos muestra mas informacion del libro. pero estando en esta pagina detalles, al volver atras pierdo la consulta mysql y no me muestra la lista de libros.
la solucion que plantie es la siguiente:
arranco preguntando si no existe una session llamada libros
la idea es guarda en una session llamada libros TODOS los registros de la consulta.
entonces si no existw la session que muestre los datos de la consulta pero que en una variable de session (arreglo) me guarde los datos.
en cambio si existe la session que me muestre los datos de la varible de session sin hacer la consulta. pero no me funciona correctamente

mi codigo es el siguiente
Código PHP:
session_start(); 
header ("Cache-Control: no-cache, must-revalidate");
    
header ("Pragma: no-cache");
include(
"conectar_mysql.php");
$categ $_POST['var'];
$resultado $_GET['resultado'];


  
$consultamysql_query ("SELECT book.bookid, book.titulo, book.autor, book.descripcion, book.precio, book.nomfoto
              FROM book, categoria WHERE (categoria.catid = book.catid) and 
             (categoria.catid= '$categ') "
);
             
             
$resulmysql_query ("SELECT count(book.bookid) as canti FROM book, categoria  WHERE (categoria.catid = book.catid) and 
             (categoria.catid= '$categ') "
);
             while (
$f=mysql_fetch_array($resul)) { 
             
$resultado=$f[canti];
    
}
echo 
'<div id="myScroll" style="position:static; width:448px; height:191px; z-index:1; left: 26px; top: 59px; overflow: auto;">'

echo 
'<table border="2" cellpadding="10" align="center">';
 echo 
"<tr>";
 echo 
'<td><span class="Estilo14">TITULO</span></td>';
 echo 
'<td><span class="Estilo14">PRECIO</span></td>';
  echo 
'<td><span class="Estilo14">MAS INFORMACION</span></td>';
  
 echo 
"</tr>";        

$color='#FFDF00';
if (!isset(
$_SESSION[libros]))
{
    while (
$fila=mysql_fetch_array($consulta)) 
    { 

            if (
"#F0F0F0"==$color)
             {    
                    
$color="#FFDF00";


             }
                  else
             
                 {
                   
$color='#F0F0F0';  
                 }
 
    echo 
"<tr bgcolor=\"$color\">";
    echo 
'<td align="center">'.$fila[titulo].'</td>';
    echo 
'<td align="center">'.'$'.$fila[precio].'</td>';
    echo 
'<td align="center"><a href="detalle.php?titulo='.$fila[titulo].'&bookid='.$fila[bookid].
         
'&precio='.$fila[precio].'&descripcion='.$fila[descripcion].'&foto='.$fila[nomfoto].
         
'&autor='.$fila[autor].'&r='.$resultado.'">detalle</a></td>';
    echo 
"</tr>";
                    for(
$i=0;$i<$resultado;$i++)
                {
                        for(
$j=0;$j<2;$j++)
                        { 
                                if (
$j==0) {
                                            
$_SESSION[libros][$i][$j]=$fila[titulo];
                                            
session_start();
                                            }else
                                            {
                                            
$_SESSION[libros][$i][$j]=$fila[precio];
                                            
session_start();
                                            }                        
                        }
                         
                        exit;
                }
                    
                    

  }}
  else {
  for(
$fil=0;$fil<$resultado;$fil++)
                {
                        for(
$columna=0;$columna<2;$columna++)
                        {
                                            if (
"#F0F0F0"==$color)
                                                 {
                                                
$color="#FFDF00";


                                                  } else
                                                          {
                                                           
$color='#F0F0F0';  
                                                           }
 
                            echo 
"<tr bgcolor=\"$color\">";
                            echo 
'<td align="center">'.$_SESSION[libros][$fil][$columna].'</td>';
                           echo 
$resultado;
                        }
                          
                  }
        } 
  #2 (permalink)  
Antiguo 01/10/2009, 12:53
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: ayuda con codigo

Una pregunta, para que utilizaste los headers?
  #3 (permalink)  
Antiguo 01/10/2009, 12:55
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: ayuda con codigo

Cita:
$_SESSION[libros][$i][$j]=$fila[precio];
session_start();
Para que va el sesion_start ahi?
  #4 (permalink)  
Antiguo 01/10/2009, 13:18
 
Fecha de Ingreso: junio-2006
Mensajes: 166
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: ayuda con codigo

los headers es tan porque forman parte del diseño
nose porque puse session_start();
se que no esta muy claro el codigo, es que no soy especialista en esto, mas bien novata..
alguien que me ayudeeeeeeee
  #5 (permalink)  
Antiguo 01/10/2009, 13:23
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: ayuda con codigo

ok. Que almacenes en una variable session es una anecdota. No hay ninguna necesidad visible de esto, porque no estas pasando a una segunda pagina que necesite de ese array.

Yo sugiero que limpies tu codigo, y pruebas de nuevo. Sin desesperar.

session_start(); causa conflictos si no esta escrito en la primera linea de un archivo PHP.

En lugar de eso, hace un print_r para ver como quedo resuleto tu array:

Cita:
print_r($_SESSION[libros]);
o mejor:

Cita:
$otro_nombre_de_array[libros];
  #6 (permalink)  
Antiguo 01/10/2009, 13:35
 
Fecha de Ingreso: junio-2006
Mensajes: 166
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: ayuda con codigo

me tira
8
8
8
8
8
que es el valor de $resultado
  #7 (permalink)  
Antiguo 01/10/2009, 13:40
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: ayuda con codigo

Cual es tu problema exactamente? El condicional? O el almacenamiento de datos mysql en arrays PHP?
  #8 (permalink)  
Antiguo 01/10/2009, 13:43
 
Fecha de Ingreso: junio-2006
Mensajes: 166
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: ayuda con codigo

mi problema es que si estoy en la pagina de detalle de un producto, y quiero hacer clic en atras, para volver a ver la lista, no me muestra nada...
nose que es lo que estoy haciendo mal si el arreglo o el condicional
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 22:15.