PHP - variable indefinina en rtf

   
Vista:
Imágen de perfil de Hfr

variable indefinina en rtf

Publicado por Hfr (84 intervenciones) el 10/11/2015 17:57:57
hola chicos mira tengo este codigo para generar un rtf
el ejemplo proviene de esta pagina
http://www.desarrolloweb.com/articulos/1826.php

el me arroja esto
Notice: Undefined variable: todo in C:\xampp\htdocs\PDI\php\2\consultas.php on line 7

cuando doy clic Obtener, me abre el archivo el rtf pero no aparecen los datos de la consulta solo me aparece #*codigo*# , #*programa*# , #*ciudad*#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
function leef($fichero)
{
$texto= file($fichero);
$tamleef = sizeof($texto);
for ($n=0; $n<$tamleef;$n++)
{ $todo = $todo.$texto[$n];}
return $todo;
}
 
function rtf($sql, $plantilla, $fsalida, $matequivalencias)
{
$pre=time();
$fsalida="C:/xampp/htdocs/PDI/php/2/".$pre.$fsalida;
$link=mysql_connect('localhost','root','');
 
$txtplantilla=leef($plantilla);
 
$matriz=explode("sectd",$txtplantilla);
$cabecera=$matriz[0]."sectd";
$inicio=strlen($cabecera);
$final=strrpos($txtplantilla,"}");
$largo=$final-$inicio;
$cuerpo=substr($txtplantilla,$inicio,$largo);
 
$punt = fopen($fsalida ,"w");
fputs($punt,$cabecera);
mysql_select_db("pdi",$link);
$result=mysql_query($sql,$link);
while($row=mysql_fetch_array($result)){
$despues=$cuerpo;
foreach($matequivalencias as $dato){
$datosql=$row[$dato[1]];
$datosql=stripslashes($datosql);
$datortf=$dato[0];
$despues=str_replace($datortf,$datosql,$despues);
}
fputs($punt,$despues);
$saltopag="\par \page \par○";
fputs($punt,$saltopag);
}
fputs($punt,"}");
fclose($punt);
return $fsalida;
}
 
$plantilla="C:/xampp/htdocs/PDI/php/2/platin.rtf";
$sql = "SELECT COD_PRO, NOM_PRO, CIUDAD FROM programas ";
$equivalencia[0][0]="#*codigo*#";
$equivalencia[0][1]="COD_PRO";
$equivalencia[1][0]="#*programa*#";
$equivalencia[1][1]="NOM_PRO";
$equivalencia[2][0]="#*ciudad*#";
$equivalencia[2][1]="CIUDAD";
 
$salida=rtf($sql,$plantilla,"platin.rtf",$equivalencia);
 
$cadena=substr($salida,26,50);
 
 
 
echo "<A href='$cadena'>Obtener</A>"
?>
 
yo tengo varias dudas
suponiendo  que  lo de la linea 7 se solucione
 y no arroja mas errores y el rft se genera satisfactoriamente
yo tengo datos de otras tablas que debo de incluir en archivo rtf
yo podría hacer esto.
 
 
$result=mysql_query($sql, $sql1,$sql2,$link);
 
 
$sql = "SELECT datop1, datop2, datop3  FROM tablax";
$equivalencia[0][0]="#*nombre*#";
$equivalencia[0][1]="datop1";
$equivalencia[1][0]="#*apeelido*#";
$equivalencia[0][1]="datop1";
 
$sql1= "SELECT datop1, datop2,  FROM tablay ";
$equivalencia[0][0]="#*nombre*#";
$equivalencia[0][1]="datop1";
$equivalencia[1][0]="#*apeelido*#";
$equivalencia[0][1]="datop1";
 
$sql2 = "SELECT datop1, datop2,   FROM tablaN";
$equivalencia[0][0]="#*sancion*#";
$equivalencia[0][1]="datop1";
$equivalencia[1][0]="#*tipo de sancion *#";
$equivalencia[0][1]="datop1";
 
 
 
 
$salida=rtf($sql,sql1,sql2,$plantilla,"platin.rtf",$equivalencia);
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

variable indefinina en rtf

Publicado por Andres (149 intervenciones) el 11/11/2015 16:05:29
Intenta definiendo la variable $todo antes de iniciar el for, algo asi:

1
2
3
4
5
$tamleef = sizeof($texto);
$todo = "";
for ($n=0; $n<$tamleef;$n++)
{ $todo = $todo.$texto[$n];}
return $todo;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Hfr

variable indefinina en rtf

Publicado por Hfr (84 intervenciones) el 11/11/2015 16:11:36
si tienes razón se corrige la notificación de la variable indefinida al definirla como vacía antes del for

pero cuando bajo el rtf no muestra los datos de la consulta
puedes darme una manito con eso
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
Imágen de perfil de Hfr

variable indefinina en rtf

Publicado por Hfr (84 intervenciones) el 11/11/2015 18:16:47
mira le hice unas modificaciones
y coloque la variable todo como vacía antes del for


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
function leef($fichero)
{
$todo ="";
$texto= file($fichero);
$tamleef = sizeof($texto);
for ($n=0; $n<$tamleef;$n++)
{
$todo = $todo.$texto[$n];
}
return $todo;
}
 
function rtf($sql, $plantilla, $fsalida, $matequivalencias)
{
$pre=time();
$fsalida="C:/xampp/htdocs/PDI/reportes/".$pre.$fsalida;
mysql_connect('localhost','root','');
 
$txtplantilla=leef($plantilla);
 
$matriz=explode("sectd",$txtplantilla);
$cabecera=$matriz[0]."sectd";
$inicio=strlen($cabecera);
$final=strrpos($txtplantilla,"}");
$largo=$final-$inicio;
$cuerpo=substr($txtplantilla,$inicio,$largo);
 
$punt = fopen($fsalida ,"w");
fputs($punt,$cabecera);
mysql_select_db("pdi");
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)){
$despues=$cuerpo;
foreach($matequivalencias as $dato){
$datosql=$row[$dato[1]];
$datosql=stripslashes($datosql);
$datortf=$dato[0];
$despues=str_replace($datortf,$datosql,$despues);
}
fputs($punt,$despues);
$saltopag="\par \page \par";
fputs($punt,$saltopag);
}
fputs($punt,"}");
fclose($punt);
return $fsalida;
}
 
$plantilla="C:/xampp/htdocs/PDI/reportes/platin.rtf";
$sql = "SELECT COD_PRO, NOM_PRO, CIUDAD FROM programas  where COD_PRO='1'";
$equivalencia[0][0]="#*codigo*#";
$equivalencia[0][1]="COD_PRO";
$equivalencia[1][0]="#*programa*#";
$equivalencia[1][1]="NOM_PRO";
$equivalencia[2][0]="#*CIUDAD*#";
$equivalencia[2][1]="CIUDAD";
 
$salida=rtf($sql,$plantilla,"platin.rtf",$equivalencia);
 
$cadena=substr($salida,29,50);
 
 
 
echo "<A href='$cadena'>Obtener</A>"
?>

no genera ningún error de compilación

y dentro de mi archivo rtf tengo esto


rtf

pero al dar clic en obtener me baja el archivo rtf pero no me cambia los valores
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
Imágen de perfil de Hfr

variable indefinina en rtf

Publicado por Hfr (84 intervenciones) el 12/11/2015 17:58:28
Hola que tal ya logre generar el rtf

rtf


bueno resulta que la plantilla RTF yo la creaba desde mi pc y luego la copiaba y la pegaba en una carpeta del servidor y solo la podía visualizar con wordpad, entonces me decidí a construir el archivo rtf y el código php desde cero nuevamente pero desde mi pc personal y resulta que funcionó sin problemas.
luego de pensar un rato y hacer comparaciones me di cuenta que el código php y el archivo rtf quedaron igualitos, con la diferencia que mi pc personal funcionaba bien y en el servidor no , luego revise el ambiente de desarrollo en el servidor y el mi pc personal y estaba iguales, después de un rato de me dije a mi mismo, y si instalo el paquete de offices en el servidor.
y puf mágicamente mente funcionó. de alguna manera para generar el rft necesita librerías o dlls propias del paquete de offices de microsoft.
otra cosa que note y que se debe de tener en cuenta al momento de realizar el rft es que cuando se cargue la consulta el registro que se esta consultado debe de existir en la base de datos porque de lo contrario cuando se baje el rtf te va a parecer un documento en blanco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve

variable indefinina en rtf

Publicado por xve (5516 intervenciones) el 13/11/2015 08:25:51
Gracias por compartirlo!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar