Comunidad de diseño web y desarrollo en internet online

problema con funcion SELECT COUNT

Citar            
MensajeEscrito el 29 May 2010 06:28 pm
Hola. tengo esta función que estoy haciendo para un contador de visitas por articulo.

se supone que cada vez que miro un articulo, el campo post_lecturas de la tabla se aumenta en 1.

y con esta función pretendo que me arroje el número de lecturas a un articulo:

Código PHP :

function lecturas () { 
global $tableposts,$id; 
$sql = mysql_query("SELECT COUNT(post_lecturas) FROM $tableposts WHERE id = '$id'"); 
$result = mysql_query($sql); 
$lecturas = mysql_fetch_array($result); 
echo "$lecturas"; 
}


y la llamo de la siguiente manera:

Lecturas:

Código PHP :

<?php echo $lecturas; ?> 


pero no funciona y no se cual es el fallo.

podrían ayudarme.

gracias

Por t00j

6 de clabLevel



 

opera
Citar            
MensajeEscrito el 29 May 2010 06:43 pm

t00j escribió:

Hola. tengo esta función que estoy haciendo para un contador de visitas por articulo.

se supone que cada vez que miro un articulo, el campo post_lecturas de la tabla se aumenta en 1.

y con esta función pretendo que me arroje el número de lecturas a un articulo:

Código PHP :

function lecturas () { 
global $tableposts,$id; 
$sql = mysql_query("SELECT COUNT(post_lecturas) FROM $tableposts WHERE id = '$id'"); 
$result = mysql_query($sql); 
$lecturas = mysql_fetch_array($result); 
echo "$lecturas"; 
}


y la llamo de la siguiente manera:

Lecturas:

Código PHP :

<?php echo $lecturas; ?> 


pero no funciona y no se cual es el fallo.

podrían ayudarme.

gracias


Haces dos veces el mysql_query.

Por One

Claber

1488 de clabLevel

5 tutoriales

Genero:Masculino  

Programador Web

chrome
Citar            
MensajeEscrito el 29 May 2010 06:51 pm
tienes razón, ya he arreglado eso. pero lo he probado y sigue sin funcionar

Código PHP :

function lecturas () {
   global $tableposts,$id;
   $sql = mysql_query("SELECT COUNT(post_lecturas) FROM $tableposts WHERE id = '$id'");
   $lecturas = mysql_fetch_array($sql);
   echo "$lecturas";
}

Por t00j

6 de clabLevel



 

opera
Citar            
MensajeEscrito el 29 May 2010 07:00 pm
Al llamar
Lecturas: <?php lecturas(); ?>

devuelve

Lecturas: Array

qué significa.))

Por t00j

6 de clabLevel



 

opera
Citar            
MensajeEscrito el 29 May 2010 07:06 pm
en la función donde dice

echo "$lecturas";

tiene que ir

echo "$lecturas[0]";

y entonces

Lecturas: <?php lecturas(); ?>

devuelve

Lecturas: 1

pero siempre devuelve 1 para todos los casos, o sea que no cuenta el numero de visitas.... en post_lecturas

que pasa??

Por t00j

6 de clabLevel



 

opera
Citar            
MensajeEscrito el 29 May 2010 07:16 pm
al final, lo solucione quitando la funcion count

quedo así

$sql = mysql_query("SELECT post_lecturas FROM $tableposts WHERE id = '$id'");

y ya funciona!!

Por t00j

6 de clabLevel



 

opera
Citar            
MensajeEscrito el 29 May 2010 08:26 pm
el sql estaba bien(estaba, ya no) el problema es que mysql_fetch_array lo que te arroj es un array

t00j escribió:

Al llamar
Lecturas: <?php lecturas(); ?>

devuelve

Lecturas: Array



prueba con

Código PHP :

print_r($lecturas);
para que veas como es el array

supongo que sera algo asi

Código :

array(
0=>array(
0=>xxx
)
)


entonces el resultado que tu quieres seria

Código PHP :

echo $lecturas[0][0];



PD nada de lo aca expuesto es para que lo tomes literalmente, usa la imaginación. Antes de volver a postear date una vuelta a la manzana, repira, relajate y vuelve a intentarlo XD

^^ cuentanos como te fue

PPD.esto te puede dar pistas http://www.cristalab.com/tips/mostrar-un-array-de-una-base-de-datos-mysql-con-php-c42674l/

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 29 May 2010 10:26 pm
Inyaka, muy interesante lo que comentas.

puse print_r($lecturas);

y el resultado fue el siguiente

Lecturas: Array ( [0] => 1 [COUNT(post_lecturas)] => 1 )

que no se parece al que tu suponías, por lo mismo cuando puse:

echo $lecturas[0][0];

el resultado fue

Lecturas: 1[0]

pero la verdad, no se que quiere decir ese Array. Pero me doy cuenta, que no funciono.

___

bueno, por ahora lo vamos a dejar sin la funcion count. luego tal vez regresemos a esta cuestión. Ya me fui a dar una vuelta a la manzana, así que quiero ahora construir otra función y para eso he abierto otro tema. Ver: http://foros.cristalab.com/contador-de-visitas-por-articulo-t88103/, la onda es que estoy haciendo un contador de lecturas para cada articulo. en este post esta la función que muestra el valor, pero me falta la funcion que suma...

saludos

gracias

Por t00j

6 de clabLevel



 

opera
Citar            
MensajeEscrito el 30 May 2010 12:25 am
bien
eso significa que tu resultado esta ahi

Código PHP :

echo $lecturas[0]['COUNT(post_lecturas)'];


pero si le pusieses alias a la consulta sql asi:

Código MySQL :

SELECT COUNT(post_lecturas) alias lecturas FROM $tableposts WHERE id = '$id'

o asi de forma abreviada (asi lo hago yo)

Código MySQL :

SELECT COUNT(post_lecturas) lecturas FROM $tableposts WHERE id = '$id'


el resultado seria asi

Código PHP :

echo $lecturas[0]['lecturas'];


te aconsejo leer este tutorial que te servira para mejorar tus consultas sql http://cristalab.com/tips/consulta-sql-a-mas-de-dos-tablas-con-join-c77632l/

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.