Foros del Web » Programando para Internet » PHP »

Contador de clicks

Estas en el tema de Contador de clicks en el foro de PHP en Foros del Web. Saludos amigos, haciendo un catalogo de productos me vi en la necesidad de saber cuantas veces ha sido visto cada uno de los items en ...
  #1 (permalink)  
Antiguo 23/05/2008, 09:15
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Contador de clicks

Saludos amigos,
haciendo un catalogo de productos me vi en la necesidad de saber cuantas veces ha sido visto cada uno de los items en mi base de datos.
dispongo de un dos archivos..
listado y ficha donde en listado se me muestran todos los productos en mi bd y en ficha se me muestra el producto seleccionado... ahora bien, q debo hacer para q antes de entrar a cada producto en mi archivo listado me diga cuantas veces ha sido visitado cada uno de estos...!!!
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #2 (permalink)  
Antiguo 23/05/2008, 09:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Contador de clicks

weno, NO te lo va a decir.... tu lo tienes que diseñar asi, para obtener lo que necesitas....

si no hay has implementado tu contador ¿como quieres que te indique???

ahora, como implementar el contador..... pues, simple si usas BD ... solo agregas un campo int con el que (en tus procesos de listado agregas la URL ... foo.php?id=bar

donde bar, es el ID del elemento a clickear... ya entonces, en foo.php (o komo le llames) primero haces el SELECT, si existe haces un UPDATE count=count+1, por ejemplo... suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/05/2008, 09:40
Avatar de Kaiser  
Fecha de Ingreso: febrero-2001
Ubicación: Heredia, Costa Rica
Mensajes: 239
Antigüedad: 23 años, 2 meses
Puntos: 1
Respuesta: Contador de clicks

Hola viejo,

En realidad lo que hay que hacer es un log que guarde el historico de las visitas, y que además incremente cada vez que es visto.

Comentanos si utilizas un base de datos basada en un textfile, o si lo haces con alguna base de datos relacional como MySQL.

Si es MySQL peganos el dump de la estructura aquí, y con gusto yo (o cualquiera) te hacemos la inclusión.

Cosa de 5 minutos.
__________________
http://www.abdicar.com - Undisputed Hosting Leader!
  #4 (permalink)  
Antiguo 23/05/2008, 09:40
Avatar de Kaiser  
Fecha de Ingreso: febrero-2001
Ubicación: Heredia, Costa Rica
Mensajes: 239
Antigüedad: 23 años, 2 meses
Puntos: 1
Respuesta: Contador de clicks

Pongo este otro mensaje para suscribirme por mail al tema, para no dejarte a la libre
__________________
http://www.abdicar.com - Undisputed Hosting Leader!
  #5 (permalink)  
Antiguo 23/05/2008, 09:45
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Contador de clicks

este es mi archivos de el listado...

Código PHP:
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

$maxRows_Recordset1 30;
$pageNum_Recordset1 0;
if (isset(
$_GET['pageNum_Recordset1'])) {
  
$pageNum_Recordset1 $_GET['pageNum_Recordset1'];
}
$startRow_Recordset1 $pageNum_Recordset1 $maxRows_Recordset1;

$colname_Recordset1 "-1";
if (isset(
$_GET['id'])) {
  
$colname_Recordset1 $_GET['id'];
}
mysql_select_db($database_multisillas$multisillas);
$query_Recordset1 sprintf("SELECT * FROM categoria WHERE id = %s"GetSQLValueString($colname_Recordset1"int"));
$query_limit_Recordset1 sprintf("%s LIMIT %d, %d"$query_Recordset1$startRow_Recordset1$maxRows_Recordset1);
$Recordset1 mysql_query($query_limit_Recordset1$multisillas) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);

if (isset(
$_GET['totalRows_Recordset1'])) {
  
$totalRows_Recordset1 $_GET['totalRows_Recordset1'];
} else {
  
$all_Recordset1 mysql_query($query_Recordset1);
  
$totalRows_Recordset1 mysql_num_rows($all_Recordset1);
}
$totalPages_Recordset1 ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;

mysql_select_db($database_multisillas$multisillas);
$query_Recordset2 "SELECT * FROM productos WHERE id_cat =".$row_Recordset1['id'];
$Recordset2 mysql_query($query_Recordset2$multisillas) or die(mysql_error());
$row_Recordset2 mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 mysql_num_rows($Recordset2);



?>
<link href="css/estilo.css" rel="stylesheet" type="text/css" />
<?php do { ?>
<table width="330" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center" bgcolor="#CCCCCC"><table width="300" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="180" valign="top"><p align="left"><a href="esp_prod.php?id=<?php echo $row_Recordset2['id']; ?>"><span class="textoINDEX"><span class="textoMulti3"><br />
          <?php echo $row_Recordset2['nombre']; ?></span></span><br />
                  <br />
          </a><span class="textoINDEX"><span class="textotitResNot">C&oacute;digo:</span> <span class="textoMulti1"><?php echo $row_Recordset2['codigo']; ?></span></span></p>
<p align="left"><span class="textoINDEX"><a href="ficha_prod.php?id=<?php echo $row_Recordset2['id']; ?>"><br />
                    <img src="imgs/boton_pro.jpg" width="112" height="22" border="0" /></a></span></p></td>
        <td width="19">&nbsp;</td>
        <td width="100" valign="middle"><p align="justify" class="textoINDEX"><a href="esp_prod.php?id=<?php echo $row_Recordset2['id']; ?>"><img src="imgprod/<?php echo $row_Recordset2['imagen']; ?>" width="100" height="100" border="0" class="bordeimg" /></a></p></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td align="center">&nbsp;</td>
  </tr>
</table>
<?php } while ($row_Recordset2 mysql_fetch_assoc($Recordset2)); ?>
  
  <?php
mysql_free_result
($Recordset1);

mysql_free_result($Recordset2);
?>
como veran esta hecho por DW no soy muy diestro en programacion... y ando de voladas con este tema :S
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #6 (permalink)  
Antiguo 23/05/2008, 09:52
Avatar de Kaiser  
Fecha de Ingreso: febrero-2001
Ubicación: Heredia, Costa Rica
Mensajes: 239
Antigüedad: 23 años, 2 meses
Puntos: 1
Respuesta: Contador de clicks

y la estructura de productos?
Agregale como dice pateketrueke un int(10) y me la pegas aqui.
__________________
http://www.abdicar.com - Undisputed Hosting Leader!
  #7 (permalink)  
Antiguo 23/05/2008, 09:52
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: Contador de clicks

hola, yo hice algo parecido pero para contar la cantidad de veces que ha sido leida una noticia, (a memoria) basicamente lo que debes hacer es una tabla en tu BD que cuente los hits en cada producto, algo asi:
Código:
CREATE TABLE `hits` (
  `hit_ID` int(11) NOT NULL auto_increment,
  `hitIP` varchar(20) NOT NULL,
  `hitProductoID` int(11) NOT NULL,
  PRIMARY KEY  (`hit_ID`)
) ENGINE=MyISAM
el campo hitProductoID recoge el id del producto que esta siendo visitado, luego haces una conulta (bueno, supongo que antes tienes una consulta que te muestre el producto)
Código PHP:
<?php
// consulta para mostrar el producto
// supondo que sea algo asi
// si recoges el id por la url
$producto_ID $_GET['producto_ID'];

$sqlQuery mysql_query("SELECT * FROM productos
                         WHERE producto_ID = '$producto_ID'"
)
                         or die(
mysql_error());
$row mysql_fetch_array($sqlQuery);

// conteo de visitas por noticia
if(!empty($producto_ID)){
    
$hitIP $_SERVER['REMOTE_ADDR'];
    
$hitProductoID $row['producto_ID'];    
    
$sqlInsert mysql_query("INSERT INTO hits (hitIP, hitProductoID)
                              VALUES ('$hitIP', '$hitProductoID')"
)
    or die(
mysql_error());
}

// para mostrar las veces que ha sido visto
$sqlHitsQuery mysql_query("SELECT * FROM hits
                             WHERE hitProductoID = '$producto_ID'"
)
                             or die(
mysql_error());
$hits mysql_num_rows($sqlHitsQuery);

echo 
"Producto visto $hits veces";
?>
creo que tal vez si haces un update sea mas facil, se me ocurre crear un campo hitTotal y la consulta seria algo asi:
Código PHP:
<?php
/**************/
$sql mysql_query("UPDATE hits SET hitTotal + 1")

/**************/
creo

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
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 10:20.