Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Diabliyo

#541
PHP / Re: Cuenta descarga
27 Septiembre 2008, 03:34 AM
Cita de: Meta en 27 Septiembre 2008, 01:42 AM
Hola:

En una web html sencillo, cambiando la extensión a .php. Quiero incluir esta frase: Descargar Manual WinPic800 PDF XPS.

En la palabra PDF que tenga un enlace a un archivo llamado Winpic800.pdf guardado en un directorio llamado manuales. Con el formato XPS lo mismo. La extensiones también podrían ser .zip si me interesa que se lo descarguen comprimido.

Subo estos archivos al servidor de Lycos y funciona. Lo que no se hacer es un cuenta click de descarga con PHP y MySQL.

Bueno, en un lado del texto "Descargar Manual WinPic800 PDF XPS" debe aparecer el número de descargas tanto en el enlace de PDF como en XPS ya que los datos descargados o que en cada click se guarda en la base de datos. Lo mismo que cuando visitamos un foro, al hacer click en un tema, se cuenta el números de visitas.

Me bajé el manual de php aquí, pero no se nada ni buscar en él.

Eso si, incluye el phpmyadmin para crear tablas  de MySQL que es donde se va a guardar los datos descargados.

Un cordial saludos.

No se te entiende nada :S, creo que ni tu mismo sabes lo que quieres !!...

1- No te explicas bien.
2- Tienes un contador de descargas ??.

que quieres hacer ?? :S !!...

explicate mejor !!

#542
PHP / Re: syntax error, unexpected T_STRING
27 Septiembre 2008, 03:29 AM
Cita de: Willy.Design en 26 Septiembre 2008, 12:42 PM
Al ejecutar el código PHP en servidor me da el siguiente error>

Parse errorsyntax errorunexpected T_STRING in /mnt/web3/12/29/51668329/htdocs/LOTERIA/loteria_nacional/paleln.php on line 68

Esta es la linea 68: ¿Que esta mal?

INSERT INTO pale_loteria_nacional (primerosegundocantidadagenciaVALUES ('$primero''$segundo''$cantidad''$agencia')

El error no es la linea, el error a der ser el tipo de variables y el tipo de valor que deseas escribir !!...

Pon mas informacion, alcabo ni que por poner un poco mas de codigo te fueran a hackear :S !! (que noob si piensas eso)....

Y lo que te recomendo NaSaRiD15 es una tonteria, recuerden que la forma de realizar la consulta es lo de menos, siempre y cuando la sintaxis este bien, el codigo debe funcionar !!...

bye bye
#543
Cita de: Hans el Topo en 25 Septiembre 2008, 23:04 PM
se me ha olvidado comentarte que uno de los mayores inconvenientes del script es qye dependerá completamente del tiempo de ejecución máximo que permita el servidor, es decir, cuando tengas muchos mgs de datos si el script tarda más de 30 segundos (el tiempo por defecto) se cortará

Eso si xD, habra que limitarle el tiempo, yo aconsejaria poner algo asi:

Código (php) [Seleccionar]
<?php
set_time_limit
(300); //5 minutos

//... codigo para generar respaldo

set_time_limit(30); //regresando al tiempo por defecto
?>
#544
Diculpen, pero coloque el tema in-completo, acabo de editarlo y lo coloque completo... Lo que sucedio es que publique el tema incompleto porque estaba realizando otra cosa y no pensaba tardarme mucho en completar el tema, mas que nada fue para evitarme que la sesion del foro expirase y tuviese que volver a teclear todo el contenido del POST...

Disculpen mi torpesa, porfavor lean de nuevo el primer post ya que he completado el tema y mi pregunta !!

Disculpen las molestias !!

OJO: Aqui les cuelgo UNA IMAGEN de como se visualiza el exceso de paginacion :S.

bye bye
#545
EDITADO...

Hola:

En la mayoria de mis sistemas web utilizo un par de funciones que me simplifican el trabajo de la paginacion, estas son las funciones:

selector_paginacion() :: Esta funcion genera los numeros de hojas/paginas a mostrar, con ella se manejan diversos argumentos para hacer esta funcion multifuncional y portable.
Código (php) [Seleccionar]
<?php
function selector_paginacion$base$minimo$hoja_actual$enlace$ajax_enlace$capa_ajax )
{
$consconsultar$base"*" ); 

//si existe el numero de registros 'minimo' +1, entonces se producira la paginacion
if( mysql_num_rows($cons)>$minimo )
{
echo "<div id=\"paginacion\">";
$rollceil(mysql_num_rows($cons)/$minimo); //total_registros/minimo

if( !strcmp$ajax_enlace"0") ) //Enlaces normales HTML/PHP
{
if( $hoja_actual>)
echo "<a href=\""$enlace"&pagina=". ($hoja_actual-1). "\">";

echo "<img src=\"../admin/imagenes/flecha_izquierda.png\" border=\"0\">";

if( $hoja_actual>)
echo "</a>";
for( $i=0$i<$roll$i++ )
{
echo " ";
if( $i==($hoja_actual-1) )
echo "<span style=\"background-color:white;\">". ($i+1). "</span>";
else echo "<a href=\""$enlace"&pagina=". ($i+1). "\"><span>". ($i+1). "</span></a>";
}
echo " ";

if( $hoja_actual<$roll )
echo "<a href=\""$enlace"&pagina=". ($hoja_actual+1). "\">";

echo "<img src=\"../admin/imagenes/flecha_derecha.png\" border=\"0\">";

if( $hoja_actual<$roll )
echo "</a>";
}


else //enlaces AJAX
{
if( $hoja_actual>)
echo "<a href=\"#\" onclick=\"cargar_datos( '"$ajax_enlace"&pagina=". ($hoja_actual-1). "', '"$capa_ajax"', 'GET', '0' );\">";

echo "<img src=\"../admin/imagenes/flecha_izquierda.png\" border=\"0\">";

if( $hoja_actual>)
echo "</a>";
for( $i=0$i<$roll$i++ )
{
echo " ";
if( $i==($hoja_actual-1) )
echo "<span style=\"background-color:white;\">". ($i+1). "</span>";
else echo "<a href=\"#\" onclick=\"cargar_datos( '"$ajax_enlace"&pagina=". ($i+1). "', '"$capa_ajax"', 'GET', '0' );\"><span>". ($i+1). "</span></a>";
}
echo " ";

if( $hoja_actual<$roll )
echo "<a href=\"#\" onclick=\"cargar_datos( '"$ajax_enlace"&pagina=". ($hoja_actual+1). "', '"$capa_ajax"', 'GET', '0' );\">";

echo "<img src=\"../admin/imagenes/flecha_derecha.png\" border=\"0\">";

if( $hoja_actual<$roll )
echo "</a>";
}

unset($i);
unset($roll);
echo "</div>";
}

unset($cons);
}
?>


paginacion() :: esta funcion procesa la paginacion, brindando deteccion de errores o acceso a paginas inexistentes :D !!!

Código (php) [Seleccionar]
function paginacion( $pagina, $base, $minimo )
{
$cons= consultar( $base, "*" );

//si existen suficientes registros
if( mysql_num_rows($cons)>$minimo )
{
$max_paginas= ceil(mysql_num_rows($cons)/$minimo); //num. de paginas totales
//echo "<script language=\"javascript\" type=\"text/javascript\">alert('". $max_paginas. "');</script>";

//si estamos en el rango, entonces la consultar es favorable y no estan alterando la consulta
if( $pagina>1 && $pagina<($max_paginas+1) )
return $pagina;
}
return 1;
}


Mi Pregunta es: en la funcion selector_pagina() genero el numero de hojas, pero actualmente tengo mas de 20 hojas y se me ha echo un amontonadero :S, como logro re-paginas las hojas, permitiendo visualizar solo un rango de 10 hojas, ya si existen mas de 10 hojas poder pasar de hoja en hoja sin que se sature la barra donde se muestran las hojas :S !!??

#546
Gracias por tu contestacion Hans el Topo. Pero ahora ya logre realizar el respaldo por con exito, el codigo es el siguiente:

Código (php) [Seleccionar]
<?php
if( !strcmp($_GET["set"], "generar_respaldo") ) //genera un nuevo respaldo
{
$filefopen"backups/respaldo_"date"dmy"time() ). ".mysql""w" ); //creamos archivo script backup
$linkconectar(); //conectamos a la BDD

fputs$file"#################################################\n" );  //escribimos
fputs$file"#########\tTABLAS DEL SISTEMA\t#########\n" );  //escribimos
fputs$file"#################################################\n" );  //escribimos

//escribiendo TABLAS
$consmysql_query"show tables;"$link ); //observamos las nombre de las tablas
while( $buf=mysql_fetch_row($cons) ) //las introducimos con 'mysql_fetch_row'
{
fputs$file"create table "$buf[0]. "(" ); //escribimos
$cons2mysql_query"describe "$buf[0]. ";"$link ); //observamos la descripcion de las tablas
$i=0//inicializacion
$primary_key=0//inicializacion para detectar el PRIMARY KEY
while( $buf2=mysql_fetch_array($cons2) ) //metemos al arreglo 'mysql_fetch_array'
{
if( $i>//si el inicializados es mayor a 0
fputs$file", " ); //escribimos
else //estamos en el primer valor, por lo tanto es el PRIMARY KEY
$primary_key$buf2["Field"]; //copiamos PRIMARY KEY
fputs$file$buf2["Field"] ); //escribimos

//estereotipos de campos en bases de datos MySQL
fputs$file" "$buf2["Type"] ); //Type, Tipo (varchar, text, int, bigint, etc...)
fputs$file" not NULL" ); //not NULL, todo llevara not null :D
$i++; //incrementamos
}
fputs$file", PRIMARY KEY("$primary_key")" ); //escribimos PRIMARY KEY
fputs$file");\n" ); //escribimos cierre del 'create table'
unset($buf2);
unset($cons2);
}
unset($buf);
unset($cons);

fputs$file"\n#########################################################\n" ); //escribimos
fputs$file"#########\tINFORMACION DE LAS TABLAS\t#########\n" );  //escribimos
fputs$file"#########################################################" );  //escribimos

/*
El metodo de insercion debe ser asi:
insert into TABLA(ID, VALOR1, VALOR2 ) values( 'valor', 'valor', 'valor' );
*/

$consmysql_query"show tables;"$link );  //observamos las tablas
while( $buf=mysql_fetch_row($cons) )  //metemos los valores con 'mysql_fetch_row'
{
//creamos el buffer de contenido de VALUES, para insertarlo al final
$i=0;
$cons_trmysql_query"select * from "$buf[0]. ";"$link );
while( $tr_bufmysql_fetch_array($cons_tr) )
{
$big_buffer[$i]="";
$cons2mysql_query"describe "$buf[0]. ";"$link );
$r=0;
while( $buf2=mysql_fetch_array($cons2) )
{
if( $r>)
$big_buffer[$i] .= ",";
$big_buffer[$i] .= "'"$tr_buf[$buf2["Field"]]. "'";
$r++;
}
unset($r);
$i++;
}
unset($cons_tr);
unset($cons2);
unset($buf2);
unset($i);
unset($tr_buf);

//iniciamos ciclo segun el numero de miembros insertados existente en dicha tabla
for( $j=0$j<mysql_num_rowsmysql_query"select * from "$buf[0]. ";"$link )); $j++) //ciclo
{
fputs$file"\ninsert into "$buf[0]. "(" ); //escribimos principio del INSERT
$cons2mysql_query"describe "$buf[0]. ";"$link );  //obtenemos descripcion de la tabla
$i=0;
while( $buf2=mysql_fetch_array($cons2) )
{
if( $i>)
fputs$file", " );
fputs$file$buf2["Field"] );
$i++;
}
fputs$file")" ); //finalizamos INSERT

fputs$file" values(" ); //abrimos el VALUES
fputs$file$big_buffer[$j] ); //escribimos resultados
fputs$file");" ); //finalizamos VALUES
unset($buf2);
unset($cons2);
}
unset($big_buffer);
}
unset($cons);

mysql_close($link);
fclose($file);

echo "Respaldo Generado con exito.";
}
?>
#547
Cita de: Hans el Topo en 24 Septiembre 2008, 10:03 AM
el mysqldump te lo hace con un comando te dejo un minituto

Realizar backup de musql desde PHP

mysqldump es funcional solo en Servidores Locales (localhost), pero si hablamos de Servidores de Hosting Gratuito o de Pago, la limitacion de utilizacion de funciones como: exec(), system(), shell(), no permiten utilizar mysqldump asi que seria ineficiente la idea :D !!... Abria que forzosamente hace un codigo personalizado y funcional para cualquier situacion :D !!..

Entre mas portables y funcionales seamos, y evitemos el uso de aplicaciones secundarias, es mas efectivo !!...

Aun continuo con el codigo, se aceptan aportaciones, ya que aun no queda listo el codigo :( !!..


#548
Gracias por tu interes ohk, pero si gustas puedes aportarle algo a mi script, hasta el momento ya puedo generar el respaldo casi por completo, ya pudo escribir los crate table y solo me falta escribir la parte de los values() en lo que es inser into.

Por favor ayudenme con la variabe $big_buffer, es la clave para terminar el script, aun estoy en eso :D !!

Aqui dejo el avance del script hasta ahorita:

Código (php) [Seleccionar]
<?php
if( !strcmp($_GET["set"], "generar_respaldo") ) //genera un nuevo respaldo
{
$filefopen"backups/respaldo_"date"dmy"time() ). ".mysql""w" ); //creamos archivo script backup
$linkconectar(); //conectamos a la BDD

fputs$file"#################################################\n" );  //escribimos
fputs$file"#########\tTABLAS DEL SISTEMA\t#########\n" );  //escribimos
fputs$file"#################################################\n" );  //escribimos

//escribiendo TABLAS
$consmysql_query"show tables;"$link ); //observamos las nombre de las tablas
while( $buf=mysql_fetch_row($cons) ) //las introducimos con 'mysql_fetch_row'
{
fputs$file"create table "$buf[0]. "(" ); //escribimos
$cons2mysql_query"describe "$buf[0]. ";"$link ); //observamos la descripcion de las tablas
$i=0//inicializacion
$primary_key=0//inicializacion para detectar el PRIMARY KEY
while( $buf2=mysql_fetch_array($cons2) ) //metemos al arreglo 'mysql_fetch_array'
{
if( $i>//si el inicializados es mayor a 0
fputs$file", " ); //escribimos
else //estamos en el primer valor, por lo tanto es el PRIMARY KEY
$primary_key$buf2["Field"]; //copiamos PRIMARY KEY
fputs$file$buf2["Field"] ); //escribimos

//estereotipos de campos en bases de datos MySQL
fputs$file" "$buf2["Type"] ); //Type, Tipo (varchar, text, int, bigint, etc...)
fputs$file" not NULL" ); //not NULL, todo llevara not null :D
$i++; //incrementamos
}
fputs$file", PRIMARY KEY("$primary_key")" ); //escribimos PRIMARY KEY
fputs$file");\n" ); //escribimos cierre del 'create table'
unset($buf2);
unset($cons2);
}
unset($buf);
unset($cons);

fputs$file"\n#########################################################\n" ); //escribimos
fputs$file"#########\tINFORMACION DE LAS TABLAS\t#########\n" );  //escribimos
fputs$file"#########################################################" );  //escribimos

/*
El metodo de insercion debe ser asi:
insert into TABLA(ID, VALOR1, VALOR2 ) values( 'valor', 'valor', 'valor' );
*/

$consmysql_query"show tables;"$link );  //observamos las tablas
while( $buf=mysql_fetch_row($cons) )  //metemos los valores con 'mysql_fetch_row'
{
//creamos el buffer de contenido de VALUES, para insertarlo al final
/*$i=0;
while( $tr_buf= mysql_query( "select * from ". $buf[0]. ";", $link ) )
{
$big_buffer[$i]="";
$cons2= mysql_query( "describe ". $buf[0]. ";", $link );
while( $buf2=mysql_fetch_array($cons2) )
{
if( $i>0 )
$big_buffer[$i] .= ",";
$big_buffer[$i] .= "'". $tr_buf[$buf2["Field"]]. "'";
}
$i++;
}
unset($cons2);
unset($buf2);
unset($i);
unset($tr_buf);*/

//iniciamos ciclo segun el numero de miembros insertados existente en dicha tabla
for( $j=0$j<mysql_num_rowsmysql_query"select * from "$buf[0]. ";"$link )); $j++) //ciclo
{
fputs$file"\ninsert into "$buf[0]. "(" ); //escribimos principio del INSERT
$cons2mysql_query"describe "$buf[0]. ";"$link );  //obtenemos descripcion de la tabla
$i=0;
while( $buf2=mysql_fetch_array($cons2) )
{
if( $i>)
fputs$file", " );
fputs$file$buf2["Field"] );
$i++;
}
fputs$file")" ); //finalizamos INSERT

fputs$file"values(" ); //abrimos el VALUES
//fputs( $file, $big_buffer[$i] ); //escribimos resultados
fputs$file");" ); //finalizamos VALUES
unset($buf2);
unset($cons2);
}
unset($big_buffer);
}
unset($cons);

mysql_close($link);
fclose($file);

echo "Respaldo Generado con exito.";
}
?>
#549
Listo, solucione como visualizar las tablas, ahora estoy buscando como obtener no solo los valores de los campos de las tablas, sino el tipo de campo para escribirlo en el archivo que genera mi aplicacion PHP.

Aqui el pedazo de script que llevo:

Código (php) [Seleccionar]
<?php
//escribiendo TABLAS
$consmysql_query"show tables;"$link );
while( $buf=mysql_fetch_row($cons) )
{
fputs$file"create table "$buf[0]. "(" );
$cons2mysql_query"describe "$buf[0]. ";"$link );
$i=0;
$primary_key=0;
while( $buf2=mysql_fetch_row($cons2) )
{
if( $i>)
fputs$file", " );
else
$primary_key$buf2[0];
fputs$file$buf2[0] );
$i++;
}
fputs$file", PRIMARY KEY("$primary_key")" );
fputs$file");\n" );
unset($buf2);
unset($cons2);
}
unset($buf);
unset($cons);
?>
#550
Tengo una aplicacion web casi completada, solo me falta la parte de RESPALDOS, en esta parte tengo la idea de que el usuario con solo presionar un boton se realize un respaldo de todas las tablas y valores de la Base de Datos existente.

Estoy iniciando a codificar el script pero no logro obtener los nombres de las tablas :S, vaya, para obtener el contenido de cada tabla solamente utilizo mysql_query() y meto toda la consulta a un mysql_fetch_array(). Pero no encuentro como obtener los nombres de las tablas ?? (show tables;)...

Alguna idea ??...

Código (php) [Seleccionar]
<?php
if( !strcmp($_GET["set"], "generar_respaldo") ) //genera un nuevo respaldo
{
$filefopen"backups/respaldo_"date"dmy"time() ). ".mysql""w" );
$linkconectar();

fputs$file"#################################################\n" );
fputs$file"#########\tTABLAS DEL SISTEMA\t#########\n" );
fputs$file"#################################################\n" );

//escribiendo tablas :: No tengo idea como obtener los NOMBRES de las TABLAS :(
//while( $buf= mysql_fetch_array( mysql_query( "show tables;", $link ) ) )
// fputs( $file, "create table ". $buf. "\n" );
//unset($buf);

fputs$file"\n#########################################################\n" );
fputs$file"#########\tINFORMACION DE LAS TABLAS\t#########\n" );
fputs$file"#########################################################\n" );

//mysql_close($link);
fclose($file);

echo "Respaldo Generado con exito.";
}
?>


bye bye