Foros del Web » Programando para Internet » PHP »

Creación de archivo

Estas en el tema de Creación de archivo en el foro de PHP en Foros del Web. Saludos, he creado el siguiente scrip para la creación de un archivo de texto con los datos guardados en una tabla, quisiera saber si esta ...
  #1 (permalink)  
Antiguo 04/06/2003, 10:24
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Creación de archivo

Saludos,

he creado el siguiente scrip para la creación de un archivo de texto con los datos guardados en una tabla, quisiera saber si esta bien o que le falta.

El código es el siguiente:

Código PHP:
$archivo="cotiza.txt";
    
    
$conex=mysql_connect("localhost","conti_juan","juan");
    
mysql_select_db("conti_webmasterc",$conex);
    
    
$sqltemp="SELECT * FROM temp_pedido";
    
$consultemp=mysql_query($sqltemp,$conex);
    
$objectTemp=mysql_fetch_object($consultemp);
    
$cotiza=$objectTemp->cotiza;
    
    
$sql="SELECT * FROM j_pedidos WHERE idpedido='".$cotiza."'";
    
$consul=mysql_query($sql,$conex);
    
$object=mysql_fetch_object($consul);
    
$cadena=$object->idprod;
    
    
$myfile=@fopen($archivo,"w+");
    
    while (
$object) {
        
fwrite($myfile,$cadena);
    } 
__________________
El aprendiz.
  #2 (permalink)  
Antiguo 04/06/2003, 11:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Y .. lo has probado?

Ves algo que no funcione correctamente? .. algún error de Msyql tal vez .. de PHP?

Yo lo que veo (como creo recordar habertelo dicho alguna vez) que:

$sqltemp="SELECT * FROM temp_pedido";

haces una consulta que puede arrojar + de 1 registro .. y sin embargo no usas un bucle para arrojar esos posibles registros .. tomando siempre 1 sólo (el priméro) .. Un bucle como el que haces más abajo con tu while ().

También es bueno que cierres el archivo al terminar la escritura de datos en el con fclose() ... y .. bueno los datos no sé como los querras en tu archivo . pero lo normal es separar los registros de ese archivo por salto de linea: \n

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 04/06/2003 a las 11:50
  #3 (permalink)  
Antiguo 04/06/2003, 11:52
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
creación de archivo 2

Este tema viene desde el tema creación de archivo

la tabla temp_pedido solo tiene un registro, por eso es que no le hago un bucle.

Aparte de eso, ya lo probé pero no me crea ningún archivo, supongo yo que el archivo debe crearse en la carpeta donde se guarda el resto de archivos en el servidor, pero no veo nada.
__________________
El aprendiz.
  #4 (permalink)  
Antiguo 04/06/2003, 12:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Y si viene desde ese tema .. por qué no sigues con el mismo? ..

-----

En fase de desarrollo .. NOOOO uses @ en las funciones pues desactivan todos los posibles errores..

$myfile=fopen($archivo,"w+");

Pruebalo y espera algún error .. de ese error se podrá ver por ejemplo que no tienes permisos de escritura en esa carpeta donde pretendes crear el $archivo .. (suele ser eso ..)


Un saludo,

pd: proceso a juntarlos ..
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 04/06/2003 a las 12:15
  #5 (permalink)  
Antiguo 04/06/2003, 13:08
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Ya le quité el @ y me sale el siguiente error

Warning: fopen(cotiza.txt) [function.fopen]: failed to create stream: Permission denied in /home/conti/public_html/mod_cotizacion/createfile.php on line 17

que puedo hacer?
__________________
El aprendiz.
  #6 (permalink)  
Antiguo 04/06/2003, 13:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ya te lo dije ...

Dale permisos de escritura a esa carpeta donde estas creando tu archivo (CHMOD 666 por ejemplo ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 04/06/2003, 15:05
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Ya le cambié los permisos, la primera vez que lo probé resultó bien, por lo menos el archivo fue creado en la carpeta, pero al realizar un scrip para leer el contenido del archivo me apareció el error 403.

y ahora cuando vuelvo a probar el scrip anterior (el de crear el archivo), me aparece el mismo error 403

y ningún archivo de esa carpeta se puede ver, el permiso que tiene es 750
__________________
El aprendiz.

Última edición por juandedios; 04/06/2003 a las 15:23
  #8 (permalink)  
Antiguo 04/06/2003, 15:32
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Cambia ese permiso a 777 o a algo que de permisos de lectura y escritura a el grupo y a todo el mundo. Y despues del fclose() usa la funcion chmod() para darle al fichero unos permisos 666. El problema es que no es el mismo usuario el de la cuenta FTP, que el sistema operativo que el de Apache que el de PHP (si PHP esta como modulo, creo que estos dos ultimos coinciden). Por eso debes dar permisos a todo el mundo xx6.

Claro que esto es peligroso por motivos de seguridad. Pero para ficheros normales web, creo que no es necesario tanta seguridad.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #9 (permalink)  
Antiguo 04/06/2003, 15:58
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Ahora para ver si se han guardado los datos en el archivo, he creado un scrip para leerlo, es el siguiente:

Código PHP:
<?php
    $fp
=fopen($archivo,"r");
    while (
$linea=fgets($fp,1024)) {
        
$texto=$linea;
        echo 
$texto;
    }
?>
pero al ejecutarlo me sale el siguiente error:

Warning: fgets(): supplied argument is not a valid stream resource in /home/conti/public_html/mod_cotizacion/leer.php on line 10
__________________
El aprendiz.
  #10 (permalink)  
Antiguo 04/06/2003, 16:02
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
¿Cual es la linea 10? ¿Cual es el valor de $archivo? fopen() devuelve falso si no ha podido abrir el archivo.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #11 (permalink)  
Antiguo 04/06/2003, 17:00
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
La línea 10 es:

Código PHP:
while ($linea=fgets($fp,1024)) { 
Ya resolví el error anterior. Gracias por su ayuda.

Ahora lo que resulta es que al ejecutar el scrip de creación del archivo aparece el siguiente error.


Fatal error: Maximum execution time of 30 seconds exceeded in /home/conti/public_html/mod_cotizacion/createfile.php on line 20

que puedo hacer
__________________
El aprendiz.

Última edición por juandedios; 04/06/2003 a las 17:00
  #12 (permalink)  
Antiguo 04/06/2003, 17:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Usa:

set_time_limit(1000);

Al principio de tu script .. el numero son segundos .. (0 cero .. sería infinito ..). Con eso ajustas el tiempo de ejecución de tus scritps .. (es recomendable que uses algún tiempo . por mucho que séa y no 0 (infinito) ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #13 (permalink)  
Antiguo 04/06/2003, 18:21
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
ya hize lo del tiempo, ahora no me sale ningún error, pero se demora bastante y luego de varios minutos sale que no encontró la página.

Quiero pedir un favor,

si ustedes quisieran crear un archivo de texto con los datos de una tabla cual sería el scrip que utilizarían.
__________________
El aprendiz.
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 06:56.