Foros del Web » Programando para Internet » PHP »

Almacenar resultado de consulta en un archivo

Estas en el tema de Almacenar resultado de consulta en un archivo en el foro de PHP en Foros del Web. Saludos! Tengo el siguiente inconveniente! Hago una consulta sql, digamos que tengo: Código PHP: $res  =  mysql_query ( $sql );  y a ese mismo resultado ...
  #1 (permalink)  
Antiguo 19/12/2009, 04:34
 
Fecha de Ingreso: noviembre-2006
Mensajes: 86
Antigüedad: 17 años, 5 meses
Puntos: 7
Almacenar resultado de consulta en un archivo

Saludos! Tengo el siguiente inconveniente!

Hago una consulta sql, digamos que tengo:
Código PHP:
$res mysql_query($sql); 
y a ese mismo resultado quiero guardarlo en un archivo... el tema es que si lo guardo "así nomás", al ser datos de tipo "resource" sólo me guarda un texto en el archivo que dice "Resource #10". Y serialize funciona para todos los tipos de datos excepto para los resource... ¿cómo puedo hacer? ¿Alguna idea?

Gracias! :D
  #2 (permalink)  
Antiguo 19/12/2009, 05:01
Avatar de zaetoner  
Fecha de Ingreso: noviembre-2007
Ubicación: La ciudad de México
Mensajes: 607
Antigüedad: 16 años, 4 meses
Puntos: 30
Respuesta: Almacenar resultado de consulta en un archivo

puedes tratar el resultado con foreach y mysql_fetch_array(), y al mismo tiempo darle formato y guardarlo en un txt por ejemplo, pero no entiendo que es exactamente lo que quieres hacer
__________________
...
  #3 (permalink)  
Antiguo 19/12/2009, 05:09
 
Fecha de Ingreso: noviembre-2006
Mensajes: 86
Antigüedad: 17 años, 5 meses
Puntos: 7
Respuesta: Almacenar resultado de consulta en un archivo

Lo que necesito almacenar en un archivo es el resultado del mysql_query, es decir, la variable $res.
Por como continúa el script, debo almacenar todo $res junto y no registro por registro.
¿Alguna idea?
  #4 (permalink)  
Antiguo 19/12/2009, 07:53
 
Fecha de Ingreso: enero-2005
Ubicación: Salta - Argentina
Mensajes: 322
Antigüedad: 19 años, 3 meses
Puntos: 7
Respuesta: Almacenar resultado de consulta en un archivo

y porque no guardas el vector de datos?

$res = mysql_query($sql);
$datos=serialize(mysql_fetch_array($res));

te sirve esa solucion?
  #5 (permalink)  
Antiguo 19/12/2009, 11:52
 
Fecha de Ingreso: noviembre-2006
Mensajes: 86
Antigüedad: 17 años, 5 meses
Puntos: 7
Respuesta: Almacenar resultado de consulta en un archivo

No porque necesito almacenar el $res, que sería un conjunto de arrays... tu solución sólo me almacena el primero. Quiero almacenar algo que pueda después traerlo y asignarlo nuevamente a una variable $res.
  #6 (permalink)  
Antiguo 08/02/2010, 06:55
 
Fecha de Ingreso: enero-2010
Mensajes: 62
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Almacenar resultado de consulta en un archivo

puedes guardarlo en un .txt con fwrite()

o puedes guardarlo en un array hasta que lo necesites.
  #7 (permalink)  
Antiguo 08/02/2010, 07:00
 
Fecha de Ingreso: noviembre-2006
Mensajes: 86
Antigüedad: 17 años, 5 meses
Puntos: 7
Respuesta: Almacenar resultado de consulta en un archivo

Cita:
Iniciado por nat_chan07 Ver Mensaje
puedes guardarlo en un .txt con fwrite()

o puedes guardarlo en un array hasta que lo necesites.

Perdón creo que no leiste ni mi pregunta ni las respuestas anteriores...

1) NO quiero guardarlo en un array, NO es lo que necesito (como digo en mi pregunta original)

2) Claro, eso es lo que quiero, guardarlo en un archivo de texto la variable $res (que es de tipo resource) pero serialize no maneja ese tipo y si la guardo con fwrite($handle,$res) simplemente guarda el string "Resource # 4".

:)
  #8 (permalink)  
Antiguo 08/02/2010, 08:00
 
Fecha de Ingreso: enero-2010
Mensajes: 62
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Almacenar resultado de consulta en un archivo

si guarda Resource # 4 en el fwrite es porque hay un error en la obtención de los datos el fputs o fwrite solo escriben el resultado como si lo imprimieras por pantalla.

Código PHP:
<Htm>
 <Title>  Ejemplo01-Fputs.php  </Title>
<Body> 
<?Php
  $Texto
="La materia se transforma consumiendo o liberando energía.";
  
$f fopen("Texto1.txt",w);
  
fputs($f$Texto);
  echo 
"Texto almacenado correctamente";
  
fclose($f);
 
?>
</Body>
</Htm>
  #9 (permalink)  
Antiguo 08/02/2010, 11:20
 
Fecha de Ingreso: noviembre-2006
Mensajes: 86
Antigüedad: 17 años, 5 meses
Puntos: 7
Respuesta: Almacenar resultado de consulta en un archivo

Cita:
Iniciado por nat_chan07 Ver Mensaje
si guarda Resource # 4 en el fwrite es porque hay un error en la obtención de los datos el fputs o fwrite solo escriben el resultado como si lo imprimieras por pantalla.

Código PHP:
<Htm>
 <Title>  Ejemplo01-Fputs.php  </Title>
<Body> 
<?Php
  $Texto
="La materia se transforma consumiendo o liberando energía.";
  
$f fopen("Texto1.txt",w);
  
fputs($f$Texto);
  echo 
"Texto almacenado correctamente";
  
fclose($f);
 
?>
</Body>
</Htm>

Por favor, LEÉ ANTES DE POSTEAR, ya es tu segundo mensaje de este tipo...

NO quiero guardar un STRING, sino una vriable de tipo RESOURCE, como indico no sólo en mi primer post, sino en los que siguen y en el TÍTULO del POST...
  #10 (permalink)  
Antiguo 08/02/2010, 12:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Almacenar resultado de consulta en un archivo

Tu mismo ya diste con la respuesta, no puedes guardar variables del tipo resource, es imposible ya que el Garbage Collector de PHP al final cierra todas las conexiónes y no puedes guardar un recurso abierto en un archivo de texto.

Tienes que hacer lo que ya te expusieron, descargar todos los rows y guardarlos, por ejemplo ya te habían dicho:
Código PHP:
Ver original
  1. $rows = array();
  2. while ($row = mysql_fetch_array($res)) { $rows[] = $row; }
  3. fwrite($handler, serialize($rows));

Saludos.
  #11 (permalink)  
Antiguo 08/02/2010, 12:31
 
Fecha de Ingreso: noviembre-2006
Mensajes: 86
Antigüedad: 17 años, 5 meses
Puntos: 7
Respuesta: Almacenar resultado de consulta en un archivo

Sí, estoy probando eso, pero pensé que, por ahí, podía haber una solución mejor. 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




La zona horaria es GMT -6. Ahora son las 13:21.