Foros del Web » Programando para Internet » PHP »

:: Como crear un sistema de lecturas mysl y php

Estas en el tema de :: Como crear un sistema de lecturas mysl y php en el foro de PHP en Foros del Web. Hola quisiera saber como puedo desarrollar un sistema de lecturas con una base de datos mysql y php: por ejemplo cada ves que hago click ...
  #1 (permalink)  
Antiguo 06/06/2004, 22:12
oecarlitoz
Invitado
 
Mensajes: n/a
Puntos:
:: Como crear un sistema de lecturas mysl y php

Hola quisiera saber como puedo desarrollar un sistema de lecturas con una base de datos mysql y php:

por ejemplo cada ves que hago click a mi archivo.php

este cuente cada ves que lo leo:

quisiera poder hacerlo con un Id:

por ejemplo:

cada ves que haga click a archivo.php?contar=101

este envie la lectura a la base de datos.

y pueder imprimirlo en la introduccion como:
18 lecturas (por ejemplo)

Por cierto mi pagina archivo.php es un archivo simple es un html simple, no es jalada de una base de datos.

Un saludo y si me pueden dar la ,mano
  #2 (permalink)  
Antiguo 08/06/2004, 07:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tendras que almacenar tu contador en algún sítio .. si no quieres usar Base de datos puede ser un simple archivo de texto plano, pero necesitas un sitio "común" y "fijo" donde almacenar esos datos para que los puedas leer a la hora de presentar ese contenido de tu archivo.??? ...

En principio te hace falta un "lanzador" que será el que contabilice y entregue el archivo en sí ..

Por ejemplo:

abrir.php
Código PHP:
<?
// contador 
header ("Location: $_GET['doc']");
?>
Y su uso:
abrir.php?doc=nose.html

donde dice // contador .. tendrás que implementar tu lógica para el contador. Si vas a usar un archivo de texto plano usa las funciones fopen() y afines.

Un saludo,
  #3 (permalink)  
Antiguo 08/06/2004, 12:40
oecarlitoz
Invitado
 
Mensajes: n/a
Puntos:
:: Hola cluster

Hola cluster sabes entendi tu ejemplo, pero no se si me puedes dar una mano con un contador hecho en base de datos, por que imaginate, tendria que hacer un archivo txt por cada tutorial o solo se necesita uno? respondeme si estoy equivocado

Esta bien como me dices pero no lo entiendo en el sentido de crear la sintaxis fopen("data.txt") algo asi seria?

mira me baje un script pero no se como utilizarlo, dicen que es para contar las lecturas aqui te lo dejo, pero lo que no entiendo es que si es solo para contar las lecturas de un solo articulo ovarios articulos. aqui te lo dejo

lecturas.php
Código PHP:
<?php

/*
A continuación desarrollamos la función con la cual podremos leer las lecturas 
especificas de una página.
*/
function leer($ver){

# Abrimos el fichero
$fd fopen ("log.txt""a+");
while (!
feof($fd)) { # Lo recorremos

$nombre explode('||',fgets($fd4096)); # Lo dividimos

if($nombre[0] == $ver){ # Ubicamos el parámetro que deseamos leer

return $nombre[1]; # Lo devolvemos

}

}
fclose ($fd); # Cerramos el apuntador del fichero

}

/*
Esta función lee la información actual del fichero, y agrega una lectura al espacio llamado en $ver;
*/
function escribir($ver){

$fd fopen ("log.txt""a+");
while (!
feof($fd)) {

$buffer fgets($fd4096);
$nombre explode('||',$buffer);

if(
$nombre[0] == $ver){ # Aumentamos al actual

$a++;
$n $nombre[1] + 1;
$cont .= "$ver||$n\r\n";

}else{

$cont .= $buffer;

}



}
fclose ($fd);

/*
Si el nombre de la página o recurso no existe... la creamos.
*/
if(!$a){

$cont .= "\r\n$ver||1";

}

$fp fopen ("log.txt""w+");
fputs($fp,$cont);
fclose($fp);

}

/*
Esta función combina las anteriores funciones con la intención de ser utilizada la mayoría de las veces
*/
function lecturas($ver){

escribir($ver);
return 
leer($ver);

}



?>
Un saludo y si me puedes ayudar seria exelente
  #4 (permalink)  
Antiguo 08/06/2004, 13:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno . si vas hacerlo con Base de datos .. es más simple incluso y mas versatil (por supuesto)

Create una tabla tipo:

descargas
id_doc (autoincremental y único)
nombre_archivo (nombre del archivo)
descripcion (si corresponde)
ruta_archivo (el archivo en sí .. nombre.ext )
contador (el contador)
fecha_ultima_descarga (campo DATETIME)

descargar.php
Código PHP:
<?
// conecta a tu BD

$sql="SELECT ruta_archivo FROM descargas WHERE id_doc='".$_GET['doc']."'";
$resultado=mysql_query($sql) or die (mysql_error());
$total=mysql_num_rows($resultado);
if (
$total==1){
    
$registro=mysql_fetch_array($resultado);
   
// actualizar el contador ..
   
$sql="UPDATE descargas SET contador=contador+1,fecha_ultima_descarga=NOW() WHERE id_doc='".$_GET['id_doc']."'";
    
// entregar el archivo ...
    
header ("Location: $registro['ruta_archivo']);
} else {
    echo "
ErrorNo existe archivo indicado";
}
?>
su uso (básico):

<a href="descargar.php?doc=nºregistro>nombre_archivo</a>

No sé si vas a representar todos esos "links" para descargar .. pero se trata simplemente de hacerte una consulta SQL a esa tabla para generar esos links con los datos que tienes.

Un saludo,
  #5 (permalink)  
Antiguo 08/06/2004, 13:47
oecarlitoz
Invitado
 
Mensajes: n/a
Puntos:
gracias cluster

Gracias cluster lo voy aplicar, una preguntita, sabes com puedo aplicar el primer script lecturas.php con mis articulos.

saludos.

por si acaso es el qu guarda en un txt

saludos.

osea como puedo utilizarlo..
  #6 (permalink)  
Antiguo 08/06/2004, 14:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
parece que su $ver .. sería el $_GET['doc'] (del primer ejemplo que puse)

Código PHP:
<?
$ver
=$_GET['doc'];

// el código ese

header ("Location: $ver");
?>
Y ahí crea un archivo "log.txt" con una estructura de datos tipo:

nombre_archivo1.tal||conteo
nombre_archivo2.tal||conteo
nombre_archivo3.tal||conteo

Un saludo,
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 18:39.