Foros del Web » Programando para Internet » PHP »

Problemas Con Clase Paginar - Webstudio

Estas en el tema de Problemas Con Clase Paginar - Webstudio en el foro de PHP en Foros del Web. Basicamente el problema es es siguiente: tengo un formulario mediante el cual genero una consulta a una base de datos MySQL, este formulario tiene campos ...
  #1 (permalink)  
Antiguo 11/02/2003, 16:27
chc
 
Fecha de Ingreso: febrero-2002
Ubicación: Ramos Mejia
Mensajes: 40
Antigüedad: 15 años, 10 meses
Puntos: 0
Problemas Con Clase Paginar - Webstudio

Basicamente el problema es es siguiente:
tengo un formulario mediante el cual genero una consulta a una base de datos MySQL, este formulario tiene campos de texto y listas desplegables, es problema esta con las listas.
Selecciono los campos para la consulta, ejecuto perfecto, ahora supongamos que tengo 3 paginas de datos para mostrar, cuando quiero ir a cualquier otra pagina los campos de las listas desplegables aparecen vacios (es decir sin datos), generando, por supuesto un error en el query.
Estos campos en la pagina php los recojo mediante $_POST.
La duda que tengo es que si estoy haciendo algo mal yo o es un problema de la clase ya que con los campos tipo TEXT no hay problemas.

Espero que con estos datos sea suficiente como para ver el error, sino posteare mas datos.

Desde ya agradezco vuestra ayuda.

Saludos
Claudio
  #2 (permalink)  
Antiguo 11/02/2003, 16:35
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
Preguntas :
Leiste toda la documentación de la Clase ?
Estás utilizando el método propagar()?

please, colocá aqui el código que utilizás para llevar a cabo la paginación así lo reviso.

saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #3 (permalink)  
Antiguo 11/02/2003, 17:12
chc
 
Fecha de Ingreso: febrero-2002
Ubicación: Ramos Mejia
Mensajes: 40
Antigüedad: 15 años, 10 meses
Puntos: 0
Este es el script donde genero la consulta

$_POST["ano"] viene de una desplegable donde selecciono el año, con eso selecciono la base a la cual consulto.

<?
// aca armo el nombre de la base a consultar
$base="a".$_POST["ano"];

// Conectamos a la Base de Datos
include("conecta.php");
$conn = conexion();

// Obtenemos la página actual, por el método que más nos guste
// Por defecto, la página se propaga por la variable $pagina
$pagina = $HTTP_GET_VARS["pagina"];

// Incluimos la Clase Paginado e instanciamos un objeto $rs
include("class.paginadoMySQL.php");
$rs = new paginado($conn);

// Le indicamos en que página estamos - 1 por defecto
$rs->pagina($pagina);

// Le decimos cuantos registros por página queremos - 10 por defecto
$rs->porPagina(26);

$rs->propagar("origen");

// Armamos el query para ejecutar la consulta
// ACA SI TOMO $_POST["origen"] LA PRIMERA VEZ FUNCIONA LA SEGUNDA VEZ VIENE VACIO, USANDO $origen FUNCIONA BIEN
$SQL = "SELECT * FROM $base WHERE trim(origen) LIKE '".$origen."'";

// Y ejecutamos nuestra consulta.
if(!$rs->query($SQL))
// Ejecutamos el query y si devolvió falso, hubo un error y lo mostramos.
{die( $rs->error() );}


// Mostramos la cantidad de registros encontrados.
echo "<br>";
echo "<table width=100% bgcolor='#98c2f4'>"."<tr>"."<td align='right'>";
echo "<font face='tahoma' color='black' size=2pt>";
echo "Elementos encontrados: ".$rs->total();
echo "</td>"."</tr>"."</table>";

// Finalmente mostramos los medios para la navegación entre los resultados.
echo "<table align='center'>"."<tr>"."<td>";
echo $rs->anterior()." - ".$rs->nroPaginas()." - ".$rs->siguiente();
echo "</td>"."</tr>"."<br>";

echo "<tr>"."<td>";
echo "<p align='center'>"."<a href='ama.html' target='_self'>Volver</a>"."<br>";
echo "</td>"."</tr>"."</table>";

// Cerramos la conexion con la base de datos.
mysql_close($conn);

?>

Por ultimo te comento que en php.ini tengo REGISTERS_GLOBAL=ON

Espero haberme explicado bien.

Gracias nuevamente
Claudio
  #4 (permalink)  
Antiguo 11/02/2003, 17:26
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
Entonces, si utilizando $origen funciona bien... no veo el motivo por el que lo quieras cambiar a $_POST["origen"];

En toco caso, como regla de "salud mental" ( para evitar dolores de cabeza después ) lo que podés hacer antes de armar el Query es:

$origen = $_REQUEST["origen"];

sucede que la primera vez, venís a la página de resultados desde un Formulario ( método POST ), pero cuando haces click en una página o en Siguiente o Anterior, entonces estás accediendo a la página por GET.

Entonces, pidiendo la variable por _REQUEST, si no está disponible por GET, entonces la pide por POST.

Fijate de implementar eso y decime si te funciona.

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #5 (permalink)  
Antiguo 12/02/2003, 07:57
chc
 
Fecha de Ingreso: febrero-2002
Ubicación: Ramos Mejia
Mensajes: 40
Antigüedad: 15 años, 10 meses
Puntos: 0
La idea es utilizar el mismo criterio en el manejo de las variables y siguiendo el consejo de CLUSTER trato de manejar todas las varibles via $_POST.
Con $_REQUEST, tal cual me dijiste que probara funciona pero no para los campos tipo LISTAS DESPLEGABLES estas son las que me estan generando el inconveniente.

Saludos
Claudio
  #6 (permalink)  
Antiguo 12/02/2003, 16:06
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

En principio el $_REQUEST te tendria que servir tambien para listas desplegables. Recuerda que el $_REQUEST tambien te busca en las cookies y en las sesiones, si no me equivoco. Si solo quieres mirar en las GET y en las POST, y ademas decidir cual usar en caso de que esten las dos definidas, puedes usar este codigo:
Código PHP:
$origen=(isset($_POST['origen'])) ? $_POST['origen'] : $_GET['origen']; 
Uso el operador ternario ? : por comodidad. Lo que hace este codigo es si origen esta definido como POST (aunque exista como GET), $origen=$_POST['origen']. Si no esta definido como POST, $origen=$_GET['origen'].

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 14/02/2003, 12:17
chc
 
Fecha de Ingreso: febrero-2002
Ubicación: Ramos Mejia
Mensajes: 40
Antigüedad: 15 años, 10 meses
Puntos: 0
Webstudio estuve probando con $_REQUEST, y no funciona realmente no se que esta pasando.
Con las listas desplegables, por ejemlo, la primera vez que ingresa a la clase paginado funciona despues, si queremios navegar atraves de las paginas de resultados, trae las variables vacias, con los tipo TEXTO funciona bien no hay problemas.
No soy un avezado en PHP pro tampoco me considero un novato pero esto me esta matando, no puedo resolverlo.

Pensaba en voz alta: sera un problema de conf. del PHP, llamese php.ini ????


Como siempre gracias a todos por la ayuda.

Espermos que no sea nada.
  #8 (permalink)  
Antiguo 14/02/2003, 12:20
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Pon el codigo del formulario y otra vez el de la paginacion. Quizas es que tienes alguna variable mal nombrada o algo asi.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #9 (permalink)  
Antiguo 19/02/2003, 08:29
chc
 
Fecha de Ingreso: febrero-2002
Ubicación: Ramos Mejia
Mensajes: 40
Antigüedad: 15 años, 10 meses
Puntos: 0
Josemi, resulta que ahora estoy de vacaciones en la playa, cunado vuelva a la ciudad posteo el segmento del script.

Gracias por vuestro interes

Claudio.
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 19:58.