PHP - quiero vaciar el buffer y no puedo

 
Vista:
sin imagen de perfil

quiero vaciar el buffer y no puedo

Publicado por Hugo S Svoboda (47 intervenciones) el 25/01/2007 20:31:26
Hola! Como estan? A ver si me pueden ayudar por fa porque ya me voy a arrancar los pelos!
Resulta que tengo en mi pagina 2 consultas cualquiera y estoy usando el mysql_data_seek para moverme dentro de los registros de los 2 querys, no se si se entiende.

$sql = "select * from alumnos" ;
$resul1 = mysql_query($sql, $coneccion) ;
$sql = "select * from docentes" ;
$resul2 = mysql_query($sql, $coneccion) ;

Entonces a partir de aqui uso lo que dije anteriormente con $resul1...

if(mysql_data_seek($resul1, $sig)) {
if($row = mysql_fetch_array($resul1)){
......................
.....................
}
}
if(mysql_data_seek($resul2, $sig)) {
if($row = mysql_fetch_array($resul2)){
......................
.....................
}
}

Bueno, la var $sig contiene un simple numero el cual ayuda al puntero a moverse dentro de $resul1 y lo que esta indicado como .......... es donde de alguna manera muestro los datos en pantalla, eso no es problema. Mi problema recide en que cuando quiero pasar el 2do mysql_data_seek para mostrar el contenido de $resul2 me da error de buffer. Parece que como ya usé este mysql_data_seek para $resul1 debo liberar la memoria o algo asi para poder reutilizarlo para $resul2.
Este es el error que me da en el IExplorer a partir de que ya mostró todos los datos de $resul1.

Warning: mysql_data_seek(): Offset 13 is invalid for mysql_result index 6(or the query data is unbuffered) in c:\sitioadmin\index.php on line 77

la linea 77 es justamente la linea donde esta esto del dataseek.

Por favor si alguien puede ayudarme con esto, para poder reutilizar el mysql_data_seek mas de una vez como quiero hacerlo se los agradeceria.
Saludos!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

RE:quiero vaciar el buffer y no puedo

Publicado por Yamil Bracho (888 intervenciones) el 26/01/2007 13:30:34
Hugo, que pretendes hacer con esas consultas. Si la idea es buscar los alumnos a los cuales un docente le da clases es mas facil (y mas optimo) usar un inner join entre estas tablas..
Si me muestras las estructura de las tablas puedo mostrarte mejor la idea...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:quiero vaciar el buffer y no puedo

Publicado por Hugo S. Svoboda (47 intervenciones) el 26/01/2007 16:19:08
Mmm a ver como seria con el inner join? Estas son las consultas que necesito sacar adelante en una de las hojas de mi pagina web, las anteriores fueron inventadas asi nomas:

$SQL = "select * from subareas where recuadro = 'simple'
order by rand(".time().")" ;
$resul1 = mysql_query($SQL, $conexion) ;

$SQL = "select * from subareas where recuadro = 'con web interna'
order by rand(".time().")" ;
$resul2 = mysql_query($SQL, $conexion) ;

$SQL = "select * from subareas where recuadro = 'con web externa'
order by rand(".time().")" ;
$resul3 = mysql_query($SQL, $conexion) ;

Haciendo estas consultas lo que sucede es que se listan en mi pagina las subareas con su respectivo tipo de recuadro y estoy usando el random para que cada vez que actualice mi pagina cambie el orden de los listados, pero siempre se mantienen "agrupados" por su tipo de recuadro, se entiende?
Luego de hacer esto en el sitio estoy queriendo crearle un paginado "virtual" y, en el caso donde tengo un unico query ya lo hice, anda de 10, pero en este caso donde tengo 2 o mas querys para los que debo armar este paginado se me complica porque, como te mostré en mi mensaje anterior uso el mysql_data_seek para que con el puntero interno le indique que quiero 4 recuadros por pagina nada mas y al recorrer el primer query ($resul1) anda bien pero al tener que comenzar a recorrer el 2do ya no anda porque parece que no se libera del primero para tomar el 2do, algo asi.

Yo probé unir estas 3 consultas en una sola usando UNION pero lo malo de esto es que no me deja poner un order by por cada consulta, sino que puedo poner un solo order by en toooooda la consulta y eso no me sirve.
Contame como puedo usar ese inner join que indicaste vos con estas 3 consultas. A lo mejor me ayudas a armar estas 3 en una sola y ahi ya puedo hacer lo que necesito en forma mas sencilla y que ya sé hacer.
MUCHAS GRACIAS!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

RE:quiero vaciar el buffer y no puedo

Publicado por Yamil Bracho (888 intervenciones) el 26/01/2007 16:44:48
Prueba con

$SQL = "select * from subareas where recuadro IN( 'simple', 'con web interna' , 'con web externa') order by recuadro, rand(".time().")" ;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar