Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Codigo php de echos no funciona bien

Estas en el tema de Codigo php de echos no funciona bien en el foro de PHP en Foros del Web. Buenas tardes a todo@s. El dia de hoy les vengo a pedir ayuda con algo, miren tengo un sistema de noticias con comentarios, en la ...
  #1 (permalink)  
Antiguo 17/02/2016, 15:22
 
Fecha de Ingreso: julio-2015
Ubicación: Distrito Federal
Mensajes: 97
Antigüedad: 9 años, 4 meses
Puntos: 2
Codigo php de echos no funciona bien

Buenas tardes a todo@s.
El dia de hoy les vengo a pedir ayuda con algo, miren tengo un sistema de noticias con comentarios, en la pág principal se muestra una pequeña reseña de la noticia, el creador, la fecha y el número de comentarios, la cuestión es que quiero:
1. que cuando haya 0 comentarios se muestre os.
2. que cuando haya 1 comentario se muestre o.
3. que cuando haya más de un comentario se muestre os.

Básicamente tengo este código, pero no funciona bien.
Código PHP:
Ver original
  1. <?php
  2.  if($vN['id'] == 1){
  3. echo 'o';
  4. }elseif($vN['id'] == NULL){
  5. echo 'os';
  6. }else{
  7. echo 'o';
  8. }
  9. ?>

Desde ya, muchas gracias por su ayuda.
  #2 (permalink)  
Antiguo 17/02/2016, 15:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Codigo php de echos no funciona bien

Cita:
pero no funciona bien.
¿Lo tenemos que ejecutar mentalmente así como adivinar los valores de $vN para entender lo que sucede verdad?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/02/2016, 15:48
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: Codigo php de echos no funciona bien

A ver, imagino que por ['id'] obtienes los datos de alguna consulta sql. Tienes que saber primero qué valor recibes de tu campo, porque NULL no es lo mismo que tener 0.

Si pudieras decir por qué no funciona bien, y que es lo que recibes en $vn['id'] estaría mucho mejor, saludos
  #4 (permalink)  
Antiguo 17/02/2016, 17:16
 
Fecha de Ingreso: julio-2015
Ubicación: Distrito Federal
Mensajes: 97
Antigüedad: 9 años, 4 meses
Puntos: 2
Respuesta: Codigo php de echos no funciona bien

Mis disculpas no me supe explicar.

la variable $vN obtiene los comentarios, y con el id obtengo el número de comentarios de cada noticia.

Supongamos que una noticia tiene 0 comentarios, otra 1 y otra 3.

lo que hace $vN es mostrar el núm. de comentarios por noticia en el campo que dice cuantos comentarios hay.

y con el codigo que les he puesto, lo que trato de hacer es que del núm. de comentarios, se le agregue o, u os para que al leerse se escuche mejor, por ejemplo.

la palabra comentari ya se encuentra en el código
cuando hay 0 comentarios, debe agregarsele os
cuando hay 1 comentario, se le agregue o
cuando hay mas de 1 comentario, dos o tres se agregue os
__________________________________________________ ______________________

y la razón de que no funcione bien es que no me agrega os u o cuando debe ser.

espero me haya explicado bien, y mis disculpas
  #5 (permalink)  
Antiguo 17/02/2016, 17:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Codigo php de echos no funciona bien

Cita:
y la razón de que no funcione bien es que no me agrega os u o cuando debe ser.
Bueno, y tampoco muestras más código, así tampoco se entiende dónde lo usas y cómo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 17/02/2016, 17:26
 
Fecha de Ingreso: julio-2015
Ubicación: Distrito Federal
Mensajes: 97
Antigüedad: 9 años, 4 meses
Puntos: 2
Respuesta: Codigo php de echos no funciona bien

Cita:
Iniciado por pateketrueke Ver Mensaje
Bueno, y tampoco muestras más código, así tampoco se entiende dónde lo usas y cómo.
Este es el código que tengo para que se muestre el número de comentarios y os u o.
Código PHP:
Ver original
  1. <?php echo vCOMMENTS($vN['id']) ?> comentari<?php if($vN['id'] == 1){echo 'os';}elseif($vN['id'] == NULL){echo 'os';}else{echo 'o';} ?>

Esto es lo que tengo en la funcion vCOMMENTS
Código PHP:
Ver original
  1. # OBTENEMOS TOTAL DE COMENTARIOS POR NOTICIA
  2.     function vCOMMENTS($vI){
  3.         $vARTS = SQL::vB("SELECT * FROM article_comments WHERE artid = '$vI'");
  4.         $vR = vNUM($vARTS);
  5.        
  6.         return $vR;
  7.     }

Código de la variable $vN
Código PHP:
Ver original
  1. # OBTENEMOS EN LA URL EL ARCHIVO PHP
  2.     function vPHP($vN){
  3.         if($vN == NULL){
  4.             $vU = $_SERVER['REQUEST_URI'];
  5.         }else{
  6.             $vU = $_SERVER['REQUEST_URI'];
  7.             # APARTIR DE DONDE BORRAMOS
  8.             $vC= "?";
  9.             # LOCALIZMAOS POSICION DE ESTE CARACTER
  10.             $vPC = strpos ($vU, $vC);
  11.             # ELIMINAMOS DESDE LA POSICION LOCALIZADA HACIA LA IZQUIERDA + 1 PARA BORRAR EL MISMO CARACTER
  12.             $vU = substr ($vU, 0,($vPC));
  13.         }
  14.             return $vU;
  15.     }

Si necesitas más código avísame por favor y gracias de antemano.
  #7 (permalink)  
Antiguo 17/02/2016, 17:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Codigo php de echos no funciona bien

Según entiendo vCOMMENTS() toma un ID y devuelve un número que viene de vNum() ¿cierto?

Bien, pues entonces definitivamente estás haciendo mal algo.

Debes comparar dicho valor, no el ID.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 17/02/2016, 17:37
 
Fecha de Ingreso: julio-2015
Ubicación: Distrito Federal
Mensajes: 97
Antigüedad: 9 años, 4 meses
Puntos: 2
Respuesta: Codigo php de echos no funciona bien

Cita:
Iniciado por pateketrueke Ver Mensaje
Según entiendo vCOMMENTS() toma un ID y devuelve un número que viene de vNum() ¿cierto?
Así es, lo que hace es obtener los id de la tabla y devolverlos para después imprimirlos.

Por lo demás no entendí muy bien si pudieras explicarme mejor te agradecería.
  #9 (permalink)  
Antiguo 17/02/2016, 18:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Codigo php de echos no funciona bien

Cita:
Iniciado por Silenn Ver Mensaje
Así es, lo que hace es obtener los id de la tabla y devolverlos para después imprimirlos.

Por lo demás no entendí muy bien si pudieras explicarme mejor te agradecería.
En tu código estás tratando de pluralizar usando el ID ($vN['id']), no un valor que refleje la cantidad de comentarios (que eso devuelve vComments).

Código PHP:
Ver original
  1. $c = vCOMMENTS($vN['id']);
  2.  
  3. // MAL
  4. if($vN['id'] == 1){echo 'os';}elseif($vN['id'] == NULL){echo 'os';}else{echo 'o';}
  5.  
  6. // BIEN
  7. if($c == 1){echo 'os';}elseif($c == NULL){echo 'os';}else{echo 'o';}
  8.  
  9. // MEJOR
  10. echo $c <> 1 ? 'os' : 'o';

¿De verdad no se entiende?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 17/02/2016, 20:11
 
Fecha de Ingreso: julio-2015
Ubicación: Distrito Federal
Mensajes: 97
Antigüedad: 9 años, 4 meses
Puntos: 2
Respuesta: Codigo php de echos no funciona bien

Cita:
Iniciado por pateketrueke Ver Mensaje

¿De verdad no se entiende?
La verdad no entendía muy bien jaja.

Muchas gracias por tu ayuda, y ojalá a alguien más le pueda servir, un saludo!.
  #11 (permalink)  
Antiguo 17/02/2016, 20:17
 
Fecha de Ingreso: septiembre-2008
Mensajes: 38
Antigüedad: 16 años, 2 meses
Puntos: 2
Echo ((Intval($id)) == 0) ? "o" : "os";

Etiquetas: fecha
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 21:33.