Foros del Web » Programando para Internet » PHP »

Premio para el comentario nºxxx

Estas en el tema de Premio para el comentario nºxxx en el foro de PHP en Foros del Web. Hola, estoy empezando con un sistema de comentarios y me gustaría hacer que cuando el comentario nº 25 sea publicado se le añada de alguna ...
  #1 (permalink)  
Antiguo 04/11/2010, 12:25
 
Fecha de Ingreso: julio-2009
Mensajes: 117
Antigüedad: 15 años, 4 meses
Puntos: 0
Premio para el comentario nºxxx

Hola, estoy empezando con un sistema de comentarios y me gustaría hacer que cuando el comentario nº 25 sea publicado se le añada de alguna manera un mensaje por ser el nº 25, pero de igual manera que podría ser el 25 también fuera el 1 O el 67.

hasta el momento tengo esto que lo unico que he conseguido hacer que si hay un comentario numero 25 salga el mensaje y sale en todos los comentarios.
Código PHP:
<?php
    
<--- aqui se conecta a la base de datos --->
    
    
$res=mysql_query($sql="SELECT * FROM comentarios ORDER BY id DESC");
$res2=mysql_query($sql="SELECT usuario FROM comentarios WHERE ID=24");

while(
$row=mysql_fetch_array($res)){
        
$id $row["id"];
        
$usuario $row["usuario"];
        
$fecha $row["fecha"];
        
$noticia $row["noticia"];
        
$email $row["email"];
        
$imagen $row["imagen"];
        
        if(
$usuario $res2 ) {
echo 
"te ha tocado el premio";
} else {
echo 
"$noticia<br>
         Comentario numero $id Publicado por <a href='mailto:$email?subject='from $email''><b>$usuario</b></a> el <b>$fecha</b><br>
        <hr>

        "
;
}}
        
    
?>
  #2 (permalink)  
Antiguo 04/11/2010, 12:31
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 9 meses
Puntos: 55
Respuesta: Premio para el comentario nºxxx

el if($usuario = $res2 ) {

esta malo para comprar usa ==

pero la consulta no deberia ser

if($id == 25){
echo "Premio";
}
  #3 (permalink)  
Antiguo 04/11/2010, 12:32
 
Fecha de Ingreso: julio-2009
Mensajes: 117
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Premio para el comentario nºxxx

gracias por responder, pero si le pongo "==" lo hace el mostrarme los comentarios sin mas.
  #4 (permalink)  
Antiguo 04/11/2010, 12:35
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 9 meses
Puntos: 55
Respuesta: Premio para el comentario nºxxx

$res2 es la consulta de mysql no un resultado

podrias cambiar
$res2=mysql_query($sql="SELECT usuario FROM comentarios WHERE ID=24");
por
$res2=mysql_fetch_row(mysql_query($sql="SELECT usuario FROM comentarios WHERE ID=24"));

y en el if preguntas por $res2[0]
  #5 (permalink)  
Antiguo 04/11/2010, 12:46
 
Fecha de Ingreso: julio-2009
Mensajes: 117
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Premio para el comentario nºxxx

Gracias, con lo que me has puesto solo me muestra los comentarios como anteriormente, tiene que ser algo en lo que deba estar involucrado mas cosas.
  #6 (permalink)  
Antiguo 04/11/2010, 14:00
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 14 años, 4 meses
Puntos: 55
Respuesta: Premio para el comentario nºxxx

bueno si tu con ese while estas trayendo todos los comentarios que hay entonces debes crear una variable que te vaya guardando el numero de comentario y luego en una comparacion revisas si es el comentario que tu dices


Código PHP:
<?php
    
<--- aqui se conecta a la base de datos --->
    
    
$res=mysql_query($sql="SELECT * FROM comentarios ORDER BY id DESC");
$res2=mysql_query($sql="SELECT usuario FROM comentarios WHERE ID=24");

$gana=25//aqui puedes colocar cualquier numero o generarlo de una base de datos
$i=1//variable para revisar el numero de comentario

while($row=mysql_fetch_array($res)){
        
$id $row["id"];
        
$usuario $row["usuario"];
        
$fecha $row["fecha"];
        
$noticia $row["noticia"];
        
$email $row["email"];
        
$imagen $row["imagen"];
        
        if(
$gana == $i ) {
echo 
"te ha tocado el premio";
} else {
echo 
"$noticia<br>
         Comentario numero $id Publicado por <a href='mailto:$email?subject='from $email''><b>$usuario</b></a> el <b>$fecha</b><br>
        <hr>

        "
;
$i++;
}}
        
    
?>
prueba asi y nos dices que tal
  #7 (permalink)  
Antiguo 04/11/2010, 17:43
 
Fecha de Ingreso: julio-2009
Mensajes: 117
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Premio para el comentario nºxxx

Cita:
Iniciado por johhan16 Ver Mensaje
bueno si tu con ese while estas trayendo todos los comentarios que hay entonces debes crear una variable que te vaya guardando el numero de comentario y luego en una comparacion revisas si es el comentario que tu dices


Código PHP:
<?php
    
<--- aqui se conecta a la base de datos --->
    
    
$res=mysql_query($sql="SELECT * FROM comentarios ORDER BY id DESC");
$res2=mysql_query($sql="SELECT usuario FROM comentarios WHERE ID=24");

$gana=25//aqui puedes colocar cualquier numero o generarlo de una base de datos
$i=1//variable para revisar el numero de comentario

while($row=mysql_fetch_array($res)){
        
$id $row["id"];
        
$usuario $row["usuario"];
        
$fecha $row["fecha"];
        
$noticia $row["noticia"];
        
$email $row["email"];
        
$imagen $row["imagen"];
        
        if(
$gana == $i ) {
echo 
"te ha tocado el premio";
} else {
echo 
"$noticia<br>
         Comentario numero $id Publicado por <a href='mailto:$email?subject='from $email''><b>$usuario</b></a> el <b>$fecha</b><br>
        <hr>

        "
;
$i++;
}}
        
    
?>
prueba asi y nos dices que tal
Muchas gracias por tu respuesta me a servido de mucho ahora te explico lo que hace: tengo un total de 4 comentarios pero en la base de datos figuran en el campo id como 25, 26, 27, 28

En la variable $gana he puesto el numero 26 (coincidiendo con la consulta previa) y en la variable $i lo he dejado en 1, pero no me daba ni error ni respuesta.

Acto seguido le he cambiado el valor a $gana por un 2 (aun no habiendo ningún 2 en el campo id de la base de datos) y todo lo demás en su sitio y me a mostrado el comentario numero 2 siendo el numero 26 pero el segundo en la lista de comentarios y justo debajo en la posición del comentario número 25 y siendo el número 1 en la lista me muestra el cartelito de “premio”.

Yo lo he dejado asi…
Código PHP:
$res=mysql_query($sql="SELECT * FROM comentarios ORDER BY id DESC");
    
$res2=mysql_fetch_row(mysql_query($sql="SELECT usuario FROM comentarios WHERE ID=26")); 

$gana=26//aqui puedes colocar cualquier numero o generarlo de una base de datos

while($row=mysql_fetch_array($res)){
        
$id $row["id"];
        
$usuario $row["usuario"];
        
$fecha $row["fecha"];
        
$noticia $row["noticia"];
        
$email $row["email"];
        
$imagen $row["imagen"];
        
        if(
$gana == $id ) {
echo 
"te ha tocado el premio";
} else {
echo 
"$noticia<br>
         Comentario numero $id Publicado por <a href='mailto:$email?subject='from $email''><b>$usuario</b></a> el <b>$fecha</b><br>
        <hr>

        "
;
$i++;
}} 
Esto me muestra todos los comentarios y donde debería estar el comentario numero 25 lo sustituye por el mensaje de “te ha tocado un premio”.
Más o menos funciona.

edito: he conseguido que funcione la variable $i no hacia falta y el resultado es este...
Código PHP:
$res=mysql_query($sql="SELECT * FROM comentarios ORDER BY id DESC");
    
$res2=mysql_fetch_row(mysql_query($sql="SELECT usuario FROM comentarios WHERE ID=26")); 

$gana=26//aqui puedes colocar cualquier numero o generarlo de una base de datos

while($row=mysql_fetch_array($res)){
        
$id $row["id"];
        
$usuario $row["usuario"];
        
$fecha $row["fecha"];
        
$noticia $row["noticia"];
        
$email $row["email"];
        
$imagen $row["imagen"];
        
        if(
$gana == $id ) {
echo 
"<div id='hjk'>te ha tocado el premio</div><br>
$noticia<br>
         Comentario numero $id Publicado por <a href='mailto:$email?subject='from $email''><b>$usuario</b></a> el <b>$fecha</b><br>
        <hr>"
;
} else {
echo 
"$noticia<br>
         Comentario numero $id Publicado por <a href='mailto:$email?subject='from $email''><b>$usuario</b></a> el <b>$fecha</b><br>
        <hr>

        "
;
$i++;
}} 



y ahora que vuelvo a mirar el codigo no hace falta la segunda consulta sql
Pd: para que sirve?: $i++

Última edición por taoshi; 04/11/2010 a las 18:05

Etiquetas: comentario, premio
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:18.