Foros del Web » Programando para Internet » PHP »

Pasar Array Por Formulario

Estas en el tema de Pasar Array Por Formulario en el foro de PHP en Foros del Web. Buenas, estoy paginando unos resultados y ya lo tengo hecho, mi problema viene en que quiero mejorar el codigo php y para ello tengo que ...
  #1 (permalink)  
Antiguo 29/03/2006, 14:21
 
Fecha de Ingreso: junio-2005
Mensajes: 60
Antigüedad: 19 años, 5 meses
Puntos: 0
Pasar Array Por Formulario

Buenas, estoy paginando unos resultados y ya lo tengo hecho, mi problema viene en que quiero mejorar el codigo php y para ello tengo que mandar un array por formulario y no se hacerlo. Se trata de un array bidimensional. A continuacion les muestro el codigo:

Código PHP:
<?php

           $idDB 
mysql_connect('localhost''root''');
           
$ok mysql_select_db('videoclub'$idDB);
     
           
$sql1 'SELECT IdMovie,Image,Title FROM movies WHERE ((Title LIKE "%'.$words.'%") OR ';
           
$sql2 '(Director LIKE "%'.$words.'%") OR (Cast LIKE "%'.$words.'%") OR ';
           
$sql3 '(Genre LIKE "%'.$words.'%") OR (Synopsis LIKE "%'.$words.'%") OR ';
           
$sql4 '(Producer LIKE "%'.$words.'%")) ORDER BY Title ASC';
           
$sql $sql1.$sql2.$sql3.$sql4;

           
$result mysql_query($sql$idDB);    
        
           
$NumResult mysql_num_rows($result);
           
$PageTotal ceil ($NumResult/5);
        
           if (
$NumResult 0)
             {
              for (
$i 0$i <= $NumResult$i++)
               {
                
$row mysql_fetch_array($result);
                
$Data[$i]['IdMovie'] = $row['IdMovie'];
                
$Data[$i]['Image'] = $row['Image'];
                
$Data[$i]['Title'] = $row['Title'];
               }
             }
          
        echo 
'<table border = "1">';
        
$Page $_GET['Page'];
        for (
$i $Page*5$i <= ($Page*5)+4$i++)
           {
            if (
$i >= && $i <= ($NumResult-1))
              {
               
$row['IdMovie'] = $Data[$i]['IdMovie'];
                  echo 
'<tr>';
               echo 
'<td><IMG src="Covers/'.$Data[$i]['Image'].'" width="80" height="120"></td>';
               echo 
'<td><a href="#" onclick=window.open("MovieInfo.php?IdMovie='.$row['IdMovie'].'","MovieInfo","width=600,height=700,scrollbars=yes")>'.$Data[$i]['Title'].'</td>';
               echo 
'<td>';
               if (
$_SESSION['level'] == 1)
                 {
                  include (
"Functions/OptionsMovie.php"); 
                 }
               echo 
'</td>';
               echo 
'</tr>';
              }
           }
        
        echo 
'<tr>';
        if ( 
$Page 0)
           echo 
'<td><a href = "SearchMovies.php?Page='.($Page-1).'">Anterior</a></td>';
           
        echo 
'<td>'.$Page.'</td>';
        
        if ( 
$Page < ($PageTotal-1))
           echo 
'<td><a href = "SearchMovies.php?Page='.($Page+1).'">Siguiente</a></td>';
        
        echo 
'</tr>';        
        echo 
'</table>';              
          
        
        
       
?>
Como pueden ver cada vez que se carga la página hace la consulta, para eso quiero saber pasar el Array $Data, para que unicamente se realize la consulta la primera vez y despues poder sacar los datos del Array. He visto por los foros como pasar Array unidimensionales pero no encuentro bidimensionales.

Un saludo y gracias
  #2 (permalink)  
Antiguo 29/03/2006, 14:49
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 10 meses
Puntos: 0
Hola
mira una forma facil que utilizo yo de traspasar arreglos entre paginas es usando las variables de session, ya que aqui no importan las dimensiones del arreglo .

lo unico que tienes que hacer es guardar tu arreglo php en el arreglo de sesion, pero tienes que iniciar la sesion antes de guardar o recurerar cualquier cosa, esto se realiza con la funcion session_start(); entonces

Guardar el arreglo:

session_start();
$_SESSION['nombre_de_arreglo'] = $arreglo ;


para recuperar el arreglo lo haces lo contrario

session_start();
$arreglo = $_SESSION['nombre_de_arreglo'];

Saludos

PD: si es en la misma pagina solo pones el session_start() una vez al principio y listo..
  #3 (permalink)  
Antiguo 29/03/2006, 15:10
 
Fecha de Ingreso: junio-2005
Mensajes: 60
Antigüedad: 19 años, 5 meses
Puntos: 0
Nunca habia utilizado las variables de sesion para pasar variables de esta forma. Otra cosa mas que aprendo. Y ya me va, muchas gracias :)
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 22:45.