Foros del Web » Programando para Internet » PHP »

Incrementar en una unidad el valor de un campo

Estas en el tema de Incrementar en una unidad el valor de un campo en el foro de PHP en Foros del Web. Hola a todos/as. A ver como hago esto porque he probado algunas cosas pero no soy capaz. Mirad, tengo una tabla llamada comentarios donde se ...
  #1 (permalink)  
Antiguo 26/05/2010, 11:33
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Incrementar en una unidad el valor de un campo

Hola a todos/as. A ver como hago esto porque he probado algunas cosas pero no soy capaz.

Mirad, tengo una tabla llamada comentarios donde se recogen los comentarios que se hacen a noticias que están en una tabla llamada noticias. están relacionadas ambas tablas por el idnoticia que es un código aleatorio que se genera automáticamente en la tabla noticias al dar de alta a una noticia y que luego, cuando se está en la noticia en cuestión, al añadir un comentario se incorpora a la tabla comentarios en el campo idnoticiascom.

bien. lo que quiero es que en esa tabla comentarios exista un campo llamémosle 'count' que recoga el número de comentario que sobre una noticia hace el que se está añadiendo en cuestión.

es decir, si de la noticia con idnoticia=5263ef añado un primer comentario, en ese campo de la tabla comentario aparecerá el valor 1. cuando añada otro comentario en la noticia con idnoticia=5263ef, en ese nuevo comentario, el valor del campo count deberá ser 2 y así sucesivamente.

si ahora añado un nuevo comentario pero a una noticia con idnoticia=88888ef, con independencia de que de la anterior noticia ya haya dos comentarios, al comentario que estamos añadiendo de esta, en el campo count le correspondería el valor 1, pues no tiene nada que ver con los anteriores.

a lo más que logro es a hacerlo con un update donde el campo count=count+1, pero el problema que tengo es que al comentario número 1 le añade el valor 1; pero cuando añado otro comentario, donde le valor que le correspondería sería el 2, resulta que a este le da el 1 y al anterior comentario, le da el 2.

alguna ayuda? no sé si me he explicado
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #2 (permalink)  
Antiguo 26/05/2010, 11:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Incrementar en una unidad el valor de un campo

No necesitas añadir un campo adicional para eso. Puedes usar la función COUNT de la base de datos para saber cuantos comentarios tienes en una noticia en específico.
Código MySQL:
Ver original
  1. SELECT COUNT(*) as count FROM noticia WHERE idnoticia = '88888ef'
Solo tienes que llamar por el alias y vas a ver el conteo de los comentarios
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 26/05/2010, 12:00
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 8 meses
Puntos: 13
Respuesta: Incrementar en una unidad el valor de un campo

Sería...
Código MySQL:
Ver original
  1. SELECT COUNT(*) AS total FROM comentarios WHERE idnoticia = "$idnoticia"

Para sacar el dato el nombre del campo en el array de php se llamaría como el Alias de MySQL (total).

Con lo cual con:
Código PHP:
Ver original
  1. $sql = mysql_query("SELECT COUNT(*) AS total FROM comentarios WHERE idnoticia = '$idnoticia'");
  2. while($row = mysql_fetch_assoc($sql)) {
  3.   echo $row[total];
  4. }

Sacarias el total de comentarios de la noticia con el ID que tenga la variable $idnoticia.
  #4 (permalink)  
Antiguo 27/05/2010, 03:55
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: Incrementar en una unidad el valor de un campo

Gracias chicos pero creo que no me habéis entendido. Yo no quiero saber cuantos hay. yo lo que quiero es lo siguiente:

tabla noticias:

idnoticias-autonumerico
noticia-la noticia en sí
codnoticias-el codigo aleatorio que se genera para cada noticia

tabla comentarios:
idcomentario-autonumerico
comentario-el comentario en sí
codnoticiascom-el codigo codnoticias que relaciona el comentario con la noticia en cuestión
count-contador. recoge el númeor que hace ese comentario para esa noticia en concreto

¿qué quiero hacer? pues que count me recoja eso: cuando yo meto un comentario a la noticia de codnoticias=52638ef por ejemplo, que en count me recoja el número que hace ese comentario para esa noticia, por ejemplo el 1. si ahora vuelvo a meter otro comentario relacionado con esa noticia de codnoticias=52638ef, me deberá aparecer en count el número que hace ese comentario en esa noticia, es decir, el 2 (o sea, el valor del count del anterior comentario (de idcomentario=1) + 1). Pero si yo meto un comentario en una noticia de codnoticias diferente, el count de ese comentario deberá ser 1 porque es el primero en esa noticia.

idea que había pensado:

tras añadir un comentario, sacamos con una consulta el idcom de ese comentario que acabamos de añadir: supongamos que el idcom de ese comentario es el 50.
una vez lo tenemos, con ese idcom, sacamos el count del comentario de esa misma noticia (es decir, con ese mismo codnoticiascom) anterior a él (o sea, el idcom-1 pero dentro de ese codnoticiascom). una vez tenemos ese count, ya sabemos el valor del count del comentario anterior a este que acabamos de introducir respecto a esa noticia.
ya sólo queda actualizar con update sumándole a ese count 1 (count + 1).

Pero nada, no logro hacerlo funcionar
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #5 (permalink)  
Antiguo 27/05/2010, 04:10
Avatar de Flow89  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años
Puntos: 1
Respuesta: Incrementar en una unidad el valor de un campo

Creo que no les has entendido tu a ellos, si haces un count te dice cuantos hay, si metes el valor de el count en el campo que tu quieres, ya tienes el numero de los comentario en ese campo .. xD

Has entendido?


Lo que tienes que hacer es que la respuesta que te devuelva el count, la metas en el campo que corresponda.



Respecto a lo que has planteado tu sobre como hacerlo pues creo que sería algo así como..

Código PHP:
$sqlmysql_query("Select numcomentarios from comentarios where id='$id'");

while(
$row mysql_fetch_array($sql)) {

  
$comentarios$row[numcomentarios];
  if (
$comentarios == 0){
  
$comentarios $comentarios 1;
  
mysql_query("Insert into comentarios(numcomentarios) values ($comentarios) where id='$id'");
  }else {
  
$comentarios $comentarios 1;
  
mysql_query("Update comentarios Set numcomentarios='$comentarios' where id='$id'");


PD: Soy bastante nuevo en esto del php, pero creo que algo así funcionaria.. ;S
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.

Última edición por Flow89; 27/05/2010 a las 04:24
  #6 (permalink)  
Antiguo 27/05/2010, 08:33
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: Incrementar en una unidad el valor de un campo

Efectivamente, era yo la que os había malinterpretado. La solución es tal y como la planteáis. es fácil:

con count saco cuantos comentarios hay de cada noticia y lo recojo en una variable, por ejemplo $totales, de tal modo que el campo count del comentario tendrá como valor $totales +1.

Eso es todo. Con lo fácil que era y lo complicado que lo estaba haciendo yo.

Gracias a todos nuevamente :cora zon:
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #7 (permalink)  
Antiguo 31/05/2010, 03:57
Avatar de Flow89  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años
Puntos: 1
Respuesta: Incrementar en una unidad el valor de un campo

Cita:
Iniciado por estibaliz2006 Ver Mensaje
Efectivamente, era yo la que os había malinterpretado. La solución es tal y como la planteáis. es fácil:

con count saco cuantos comentarios hay de cada noticia y lo recojo en una variable, por ejemplo $totales, de tal modo que el campo count del comentario tendrá como valor $totales +1.

Eso es todo. Con lo fácil que era y lo complicado que lo estaba haciendo yo.

Gracias a todos nuevamente :cora zon:
Ves? ejejeje.

Me alegro de que te saliese ^^

Un saludo.
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.

Etiquetas: incrementar, unidad, campos
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 00:16.