Foros del Web » Programando para Internet » PHP »

Problemas para mostrar un resultado

Estas en el tema de Problemas para mostrar un resultado en el foro de PHP en Foros del Web. Bueno no se mucho de php, me las ingenio mas que nada, resulta que tengo el siguiente problema: Yo tengo un array $group_id, y con ...
  #1 (permalink)  
Antiguo 01/11/2011, 08:04
Avatar de demeNcys  
Fecha de Ingreso: junio-2009
Ubicación: Buenos Aires
Mensajes: 147
Antigüedad: 15 años, 5 meses
Puntos: 9
Pregunta Problemas para mostrar un resultado

Bueno no se mucho de php, me las ingenio mas que nada, resulta que tengo el siguiente problema:

Yo tengo un array $group_id, y con un campo personalizado en wordpress pongo el numero del grupo por ej. $group_id = 1 y asi aparecen ciertos usuarios.

El tema es que si yo dejo el campo personalizado vacio, me aparece un error:

Cita:
Un error ha ocurrido!
Wrong value type sent to the database. Integer expected. (id_group)
Entonces quería saber, como agregarle al siguiente codigo una funcion que si $group_id tiene numero se muestre la lista, pero si $group_id esta vacio , que el mismo $group_id se ponga en 0 y aparesca un mensaje que diga 'no hay lista'

o otra opción es

que $group_id venga por default en 0 con un mensaje que diga 'no hay lista' y se cambie con el campo personalizado y apareciendo el codigo html para mostrar la lista

El codigo es este :

Código:
$group_id = $data['publica1'] ;
$users = ssi_fetchGroupMembers($group_id,  'array');
		
echo '<ul class="lista_publicas">';
foreach($users as $member){
echo '
<li class="tittle" title="Nombre: ', $member['name'], '"><a href="', $member['href'], '">', $member['avatar']['image'], '</a></li>
';
} echo '</ul>';
  #2 (permalink)  
Antiguo 01/11/2011, 10:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problemas para mostrar un resultado

Tu mismo te estas contestando, usa un simple if:
Código PHP:
Ver original
  1. if (empty($group_id)) {
  2.       echo "no hay lista";
  3. } else {
  4.       // otras cosas
  5. }

Saludos.
  #3 (permalink)  
Antiguo 01/11/2011, 11:40
Avatar de demeNcys  
Fecha de Ingreso: junio-2009
Ubicación: Buenos Aires
Mensajes: 147
Antigüedad: 15 años, 5 meses
Puntos: 9
Respuesta: Problemas para mostrar un resultado

y como hago para que ademas se le asigne el valor 0 a group_id ? por que si esta vacio tendria que mostrar "no hay lista" pero al estar vacio tampoco se conecta con la base de datos y me sigue tirando el error

"Un error ha ocurrido!
Wrong value type sent to the database. Integer expected. (id_group)"

Nose si me hago entender, si queda id_group vacio no conecta a la base de datos y me tira el error, entonces lo que quiero es que ademas del echo 'no hay lista' agregar que group_id se ponga en 0, es posible ?
  #4 (permalink)  
Antiguo 01/11/2011, 11:45
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Problemas para mostrar un resultado

si esta vacío no deberías de hacer la conexión con la base de datos ni siquiera para eso esta el condicional,
Código PHP:
Ver original
  1. if(empty($group_id)) {
  2.     echo 'no hay nada';
  3. } else {
  4.    //la consulta y todo el proceso que debes de hacer con el $group_id
  5. }
saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 01/11/2011, 12:08
Avatar de demeNcys  
Fecha de Ingreso: junio-2009
Ubicación: Buenos Aires
Mensajes: 147
Antigüedad: 15 años, 5 meses
Puntos: 9
Respuesta: Problemas para mostrar un resultado

El problema es que si yo lo dejo vacio, me tira error de conexcion de base de datos, y lo que estoy haciendo es incluir un grupo de usuarios de un foro SMF, osea no sabria como solucionarlo de otro modo que no sea este.

El codigo que me pasaron lo escribi de la siguiente manera:

Código:
$group_id = $data['publica1'] ;
$users = ssi_fetchGroupMembers($group_id,  'array');
		
if (empty($group_id)) {
      echo "no hay lista";
} else {
echo '<ul class="lista_publicas">';
foreach($users as $member){
echo '
<li class="tittle" title="Nombre: ', $member['name'], '"><a href="', $member['href'], '">', $member['avatar']['image'], '</a></li>
';
} echo '</ul>'; 
}
y sigue apareciendo el error de conexcion al estar el campo vacio.

Entonces me quedan dos opciones:

1- Que group_id al estar vacio se ponga en 0 (asi se conecta a la base de datos y no tira error)

2- Que $group_id venga por default en 0 con un mensaje que diga 'no hay lista' y se cambie con el campo personalizado y apareciendo el codigo html para mostrar la lista.

O nose, otra forma no se me ocurre.
  #6 (permalink)  
Antiguo 01/11/2011, 12:24
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Problemas para mostrar un resultado

un poquito de lógica hermano
Código PHP:
Ver original
  1. $group_id = $data['publica1'] ;    
  2. if (empty($group_id)) {
  3.       echo "no hay lista";
  4. } else {
  5.     $users = ssi_fetchGroupMembers($group_id,  'array');
  6.     echo '<ul class="lista_publicas">';
  7.     foreach($users as $member){
  8. echo '
  9. <li class="tittle" title="Nombre: ', $member['name'], '"><a href="', $member['href'], '">', $member['avatar']['image'], '</a></li>
  10. ';
  11. } echo '</ul>';
verifica y dinos si te sirvio, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 01/11/2011, 12:33
Avatar de demeNcys  
Fecha de Ingreso: junio-2009
Ubicación: Buenos Aires
Mensajes: 147
Antigüedad: 15 años, 5 meses
Puntos: 9
Respuesta: Problemas para mostrar un resultado

RESUELTO !!
muchas gracias, te agradesco mucho, se que para vos es 'logica' pero yo que recien estoy aprendiendo por ahi no me doy cuenta de lo que es obvio para vos :P

Etiquetas: resultados, usuarios
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 22:26.