Foros del Web » Programando para Internet » PHP »

Mysql No me Cuenta los clics

Estas en el tema de Mysql No me Cuenta los clics en el foro de PHP en Foros del Web. Buenas, he creado una tabla con las sesiones para descargas y tambien le he añadido un campo que se supone que debia de contar los ...
  #1 (permalink)  
Antiguo 10/04/2005, 16:56
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Mysql No me Cuenta los clics

Buenas, he creado una tabla con las sesiones para descargas y tambien le he añadido un campo que se supone que debia de contar los clics, pero no hace nada.

le he aplicado estas propiedades a ese campo:

int(11) NOT NULL default '0'

y no ha contado nada.

yo listo las sesiones con un script en php, pero no se si es que debo de añadir a mi script algo que haga que se sume 1 a el campo clics arriba mencionado.

¿que debo de hacer?

Un saludo y gracias anticipadas

Última edición por MindPaniC; 10/04/2005 a las 17:26
  #2 (permalink)  
Antiguo 10/04/2005, 18:26
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 15 años
Puntos: 0
Vamos a ver, ¿que quieres hacer? Contar el número de sessiones en total, el número de descargas por session o ¿que?
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com
  #3 (permalink)  
Antiguo 10/04/2005, 18:50
Avatar de SAGITARIO  
Fecha de Ingreso: febrero-2005
Ubicación: Huancayo
Mensajes: 108
Antigüedad: 12 años, 9 meses
Puntos: 0
Especifique El Problema

Especifique el Problema !!!

que codigos ejecutas en que parte del aplicativo.

  #4 (permalink)  
Antiguo 10/04/2005, 21:08
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 14 años, 4 meses
Puntos: 7
Bueno tal vez si nos colocas partes del codigo, te podemos ayudar...

Chaop!
  #5 (permalink)  
Antiguo 11/04/2005, 06:59
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
ok perdonar por no ser mas especifico.

Bien este es el codigo que pongo para que me liste las descargas disponibles (que son sesiones, sets... ya sabeis sesiones musicales, no sesiones de usuarios):

Código PHP:
<?php 
$conexion 
mysql_connect("localhost","xxxxxxxxx","xxxxxxxxx");
mysql_select_db("mindpanic_com"$conexion) OR die("No se puede establecer la conexión a MySQL");
$sql mysql_query("SELECT * FROM sets ORDER BY fecha DESC LIMIT 0,10") or die (mysql_error()); 
while (
$row mysql_fetch_array($sql)) { 
$id "$row[setid]"
$titulo "$row[setname]";
$link "$row[seturl]";
$descripcion "$row[setdescripcion]";
$autor "$row[setautor]";
$estilo "$row[estiloid]";
$duracion "$row[setduracion]";
$tamano "$row[setsize]";
$clics "$row[setclics]";

echo
"<a href='$link' class='mainmenu1'>$titulo</a> ($clics clics)<br />
Autor:<span class='gensmall'> $autor</span><br />
Estilo:<span class='gensmall'> $estilo</span><br />
Duración:<span class='gensmall'> $duracion Min.</span><br />
Tamaño:<span class='gensmall'> $tamano Mb.</span><br />
Descripción:<span class='gensmall'> $descripcion</span>"

    } 
    
?>
con este script me muestra correctamente las sesiones disponibles, pero siempre me muestra que hay 0 clics y no se por que no me cuenta los clics de cada vez que alguien descarga una sesion.

Por eso os decia que no se si es que debo de modificar el script para que sume un 1 cada vez que alguien hace clic en el enlace de la descarga.

Un saludo y gracias anticipadas
  #6 (permalink)  
Antiguo 11/04/2005, 08:03
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
a la cimaaa de la olaaaaa¡¡¡
  #7 (permalink)  
Antiguo 11/04/2005, 08:30
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por MindPaniC
a la cimaaa de la olaaaaa¡¡¡
¿qué fue eso??... Espero no haya sido solo para "subir" tu post... .

Como bien dices... ése script solo te muestra las descargas disponibles... en ningún momento estás actualizando un campo de tu BD... Lo que necesitas haces es una página lanzadora de descargas (si vaz a descargar)... quizá generar una URL del tipo descarga.php?archivo=valor, recojer esa variable y dentro de ese mismo código sumarle 1 al campo donde llevaz el conteo de las descargas
Código:
UPDATE TABLA SET campo='nuevo_valor' WHERE campo='condición'
El tema ya se ha tratado... busca en el foro... te dejo unos enlaces que quizá te sirvan:
http://www.forosdelweb.com/f18/sumarle-resultado-1-a-285664/
http://www.forosdelweb.com/f18/contador-descargas-php-276386/
http://www.forosdelweb.com/f18/no-capaz-hacer-contador-descargas-264612/

Ánimo y suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 11/04/2005, 08:49
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
uyuyi

Hola Jam,

He estado hechando un vistazo a los links que me has puesto, uno de los temas de esos links incluso es mio, pero eso fue cuando yo no estaba usando las bases de datos para gestionar todo esto, y lo que quiero es hacerlo todo con mySQl no con archivos de texto y cosas asi. De los demas links no me entero ni del nodo, ando un poco perdido aun con estas cosas.

-¿no se puede actualizar el campo clics directamente desde la pagina donde esta el script que me muestra el contenido de la tabla sets?

-¿si hay que hacerlo enlazando la descarga con otro archivo que contenga el script que añade +1 al campo clics, que script debe contener el archivo enlazado para realizar esa funcion?

nada macho que aun me keda mucho por aprender y por lo que veo me embarco en cosas que luego no se ni como completarlas...

Oye y que tal se esta en el reino del revés?

Un saludo
  #9 (permalink)  
Antiguo 11/04/2005, 11:51
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
nadie sabe nada?

nadie sabe nada al respecto? :-p
  #10 (permalink)  
Antiguo 12/04/2005, 00:22
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Saludos ... oyes, disculpa el comentario... pero sé paciente. Ese tipo de post que no aportan nada no hacen más que ocupar espacio... Ahora bien:
Cita:
Iniciado por MindPaniC
(...)
-¿no se puede actualizar el campo clics directamente desde la pagina donde esta el script que me muestra el contenido de la tabla sets?

-¿si hay que hacerlo enlazando la descarga con otro archivo que contenga el script que añade +1 al campo clics, que script debe contener el archivo enlazado para realizar esa funcion?

Oye y que tal se esta en el reino del revés?
1) ... quizá sí... pero NO. Lo que haces ahora es mostrar solo el contenido... y tu solo querrás actualizar cuando se llame a descargar dicho archivo... osease: SOLO SÍ SE LE DIÓ CLICK.

2) Ninguno si quieres... , depende de la estructura de tu sitio. El funcionamiento es, dar click en un enlace, llamar a otra página, recoger una variable, hacer consultas pertinentes y enviar las cabeceras necesarias para forzar a descargar el archivo (ver función header()).
La forma de pasar la variable... como todo es dependiente. Para emplear lo que tienes ahora (creo) y manejarlo de una forma sencilla puedes enviar la ruta como variable:
Código:
<a href="descargas.php?archivo=/carpeta/archivo_a_descargar.alg">Descargar</a>
... pero también pudieses tener esa ruta en una base de datos... entonces podrías pasar como variable una "id"... así no "mostrarias" la ruta directa a tu archivo... es algo así lo que se usa para precisamente no dejar a la vista la ruta directa al archivo y evitar se llame directamente desde el navegador... así por ejemplo, en tu caso, evitarias que descarguen el archivo y que no sea "sumada" la descarga... claro que para hacer un sistema seguro habrá que hacer más que eso... sesiones... tema aparte.

El "¿cómo sumar?" te lo dejé en un enlace... un ejercicio hecho por 2Fast (Saludos ) en el que recupera el valor actual de un campo, le suma 1 y actualiza... no hay mayor ciencia... aunque habrá que ver si se puede hacer eso con puro SQL... igual.. tema y foro aparte.

El cómo forzar la descarga... esta un ejemplo en el manual oficial... en el enlace que te dejé. Considero tienes suficiente información para empezar a trabajar en algo... La mejor de las suertes!!

3) Haciendo muuucho calor... Odio el calor!!!!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #11 (permalink)  
Antiguo 12/04/2005, 07:12
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Cita:
Iniciado por jam1138
Saludos ... oyes, disculpa el comentario... pero sé paciente. Ese tipo de post que no aportan nada no hacen más que ocupar espacio...
Lo entiendo, pero que le vamos ha hacer... las dudas son las dudas, y unos por suerte tienen pocas dudas o otros tenemos dudas tontas y que no aportan nada como tu dices. No te disculpes, no pasa nada


Cita:
Iniciado por jam1138
Ahora bien:
1) ... quizá sí... pero NO. Lo que haces ahora es mostrar solo el contenido... y tu solo querrás actualizar cuando se llame a descargar dicho archivo... osease: SOLO SÍ SE LE DIÓ CLICK.
Exacto esa es la cuestion...

Cita:
Iniciado por jam1138
2) Ninguno si quieres... , depende de la estructura de tu sitio. El funcionamiento es, dar click en un enlace, llamar a otra página, recoger una variable, hacer consultas pertinentes y enviar las cabeceras necesarias para forzar a descargar el archivo (ver función header()).
La forma de pasar la variable... como todo es dependiente. Para emplear lo que tienes ahora (creo) y manejarlo de una forma sencilla puedes enviar la ruta como variable:
Código:
<a href="descargas.php?archivo=/carpeta/archivo_a_descargar.alg">Descargar</a>
... pero también pudieses tener esa ruta en una base de datos... entonces podrías pasar como variable una "id"... así no "mostrarias" la ruta directa a tu archivo... es algo así lo que se usa para precisamente no dejar a la vista la ruta directa al archivo y evitar se llame directamente desde el navegador... así por ejemplo, en tu caso, evitarias que descarguen el archivo y que no sea "sumada" la descarga... claro que para hacer un sistema seguro habrá que hacer más que eso... sesiones... tema aparte.

El "¿cómo sumar?" te lo dejé en un enlace... un ejercicio hecho por 2Fast (Saludos ) en el que recupera el valor actual de un campo, le suma 1 y actualiza... no hay mayor ciencia... aunque habrá que ver si se puede hacer eso con puro SQL... igual.. tema y foro aparte.

El cómo forzar la descarga... esta un ejemplo en el manual oficial... en el enlace que te dejé. Considero tienes suficiente información para empezar a trabajar en algo... La mejor de las suertes!!
mmmm interesante, ya voy cogiendo mas o menos el trankillo a lo que me comentas, seguire investigando....y si por suerte alguien suelta un script ya hecho pues mejor que mejor no (soy un poco vago tronco )

Cita:
Iniciado por jam1138
3) Haciendo muuucho calor... Odio el calor!!!!
Pues por aki por el norte de España no te creas que andamos sobrados de calor hace una semana estaba nevando en la montaña, yo odio el frio

Bueno tronco gracias por tu ayuda. nos vemos
  #12 (permalink)  
Antiguo 12/04/2005, 08:10
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 15 años
Puntos: 0
Veamos podrías hacer lo siguiente. Cambia tu página por algo así:
Código PHP:
<?php
$conexion 
mysql_connect("localhost","xxxxxxxxx","xxxxxxxxx");
mysql_select_db("mindpanic_com"$conexion) OR die("No se puede establecer la conexión a MySQL");
$sql mysql_query("SELECT * FROM sets ORDER BY fecha DESC LIMIT 0,10") or die (mysql_error());
while (
$row mysql_fetch_array($sql)) {

    
$id "$row[setid]";
    
$titulo "$row[setname]";
    
$link "$row[seturl]";
    
$descripcion "$row[setdescripcion]";
    
$autor "$row[setautor]";
    
$estilo "$row[estiloid]";
    
$duracion "$row[setduracion]";
    
$tamano "$row[setsize]";
    
$clics "$row[setclics]";

    echo
"<a href='descargar.php?id=$id&link=".urlencode($link)."' class='mainmenu1'>$titulo</a> ($clics clics)<br />
    Autor:<span class='gensmall'> $autor</span><br />
    Estilo:<span class='gensmall'> $estilo</span><br />
    Duración:<span class='gensmall'> $duracion Min.</span><br />
    Tamaño:<span class='gensmall'> $tamano Mb.</span><br />
    Descripción:<span class='gensmall'> $descripcion</span>"
;    
}
?>
Y crear un script "descargar.php" con el siguiente código:

Código PHP:
<?php
$conexion 
mysql_connect("localhost","xxxxxxxxx","xxxxxxxxx");
mysql_select_db("mindpanic_com"$conexion) OR die("No se puede establecer la conexión a MySQL");
$sql mysql_query("update sets set clics=clics+1 where setid=$id");    
header("Location: $link");
?>
Esta sería una forma perfectamente válida para hacer lo mismo que estabas haciendo pero actualizando el contador. Ten en cuenta que hay formas más adecuadas de hacerlo, de la misma forma que tu código no es el más adecuado: uso incorrecto de dobles comillas, definición innecesaria de variables, etc.
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com
  #13 (permalink)  
Antiguo 12/04/2005, 08:14
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 15 años
Puntos: 0
Jeje, mejor que uses esto:

Código PHP:
<?php
$conexion 
mysql_connect("localhost","xxxxxxxxx","xxxxxxxxx");
mysql_select_db("mindpanic_com"$conexion) OR die("No se puede establecer la conexión a MySQL");
if(
is_numeric($_GET['id'])) { 
// Solo actualizar contador si $id es numerico
$sql mysql_query("update sets set clics=clics+1 where setid='".$_GET['id']."'");    
}
header("Location: ".urldecode($_GET['link']));
?>
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com
  #14 (permalink)  
Antiguo 12/04/2005, 08:51
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Cita:
Iniciado por Argintxe
Jeje, mejor que uses esto:

Código PHP:
<?php
$conexion 
mysql_connect("localhost","xxxxxxxxx","xxxxxxxxx");
mysql_select_db("mindpanic_com"$conexion) OR die("No se puede establecer la conexión a MySQL");
if(
is_numeric($_GET['id'])) { 
// Solo actualizar contador si $id es numerico
$sql mysql_query("update sets set clics=clics+1 where setid='".$_GET['id']."'");    
}
header("Location: ".urldecode($_GET['link']));
?>
hey Argintxe, tu script funciona... en cierto modo, creo que algun parametro de descargar.php no esta correcto, verás el nombre exacto del campo que se supone debe almacenar los clics es "setclics", he probado y no cuenta los clics y sigue mostrando un "cerapio", mmmm cuando haces el mysql_query parece que no consigue sumar +1 al campo setclics.

he cambiado el script en la parte del query con varias formas y no consigo que cuente nada, hay sigue el cerapio.

¿que andará mal?

  #15 (permalink)  
Antiguo 12/04/2005, 08:57
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 15 años
Puntos: 0
Ya.... y has probado usando en la llamada SQL "setclics" en vez de "clics"?
Código PHP:
$sql mysql_query("update sets set setclics=setclics+1 where setid='".$_GET['id']."'"); 
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com
  #16 (permalink)  
Antiguo 12/04/2005, 09:24
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
poz si pero en vez de poner

Código PHP:
update sets set setclics=setclics+
puse

Código PHP:
update sets setclics=setclics+
por que no sabia a que venia eso de "set",

ahora ya me funciona,

tronco te debo una, ya he aprendido una cosa más gracias a tí.

Un saludo y mil gracias Arguintxe.
  #17 (permalink)  
Antiguo 12/04/2005, 09:30
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 15 años
Puntos: 0
Me alegra haberte sido de ayuda. Hasta otra!
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com
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 22:04.