Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] evitar que se muestren campos vacíos de base de datos

Estas en el tema de evitar que se muestren campos vacíos de base de datos en el foro de PHP en Foros del Web. Hola a todos! os cuento mi problema tengo una lista menú la cual al desplegarla me muestra todos los campos de una base de datos, ...
  #1 (permalink)  
Antiguo 21/09/2015, 05:40
 
Fecha de Ingreso: marzo-2011
Mensajes: 105
Antigüedad: 13 años, 1 mes
Puntos: 3
evitar que se muestren campos vacíos de base de datos

Hola a todos! os cuento mi problema

tengo una lista menú la cual al desplegarla me muestra todos los campos de una base de datos, el problema es que también me muestra los campos vacíos y solo quiero que me muestre los campos en los que hay algo escrito.

alguien sabe como lo puedo solucionar?

os dejo el código que tengo asta ahora:


<label for="selpoblacion"></label>
<select name="selpoblacion" style="width:130px" id="selpoblacion" class="listamenu">
<option value="" selected="selected">Todas:</option>

<?php
$tablapoblacion = mysql_query("SELECT DISTINCT propiedades.poblacion FROM propiedades ORDER BY poblacion ASC");

while ($registropoblacion = mysql_fetch_array($tablapoblacion)) {
?>
<option value="<?php echo $registropoblacion['poblacion']; ?>"><?php echo $registropoblacion['poblacion']; ?></option>
<?php
}
mysql_free_result($tablapoblacion);
?>
</select>


Gracias de antemano!
  #2 (permalink)  
Antiguo 21/09/2015, 06:03
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: evitar que se muestren campos vacíos de base de datos

Coloca un if que evalúe si el campo está vacío:

Código PHP:
Ver original
  1. If (!$registropoblacion['poblacion']=="")
  2. {
  3. echo "<option value='{$registropoblacion['poblacion']}'> {$registropoblacion['poblacion']}</option>";
  4. }

Algo así sería. Trata de adaptarlo pq lo estoy haciendo desde el celular y no sé si funcione tal cual como está.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #3 (permalink)  
Antiguo 21/09/2015, 07:11
 
Fecha de Ingreso: marzo-2011
Mensajes: 105
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: evitar que se muestren campos vacíos de base de datos

hola chronos682! lo primero de todo muchas gracias por responder.

he probado lo que me has dicho, pero una de dos.. o no funciona o yo no se colocar el código correctamente..

me lo he mirado y remirado y no consigo hacer que funcione
  #4 (permalink)  
Antiguo 21/09/2015, 07:42
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: evitar que se muestren campos vacíos de base de datos

Cómo colocaste el código? Ponlo aquí para verlo. Otra cosa, tienes que asegurarte que el valor del campo sea una cadena vacía, me imagino que el campo es tipo varchar cierto?
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #5 (permalink)  
Antiguo 21/09/2015, 08:27
 
Fecha de Ingreso: marzo-2011
Mensajes: 105
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: evitar que se muestren campos vacíos de base de datos

el código lo he puesto así:

<label for="selpoblacion"></label>
<select name="selpoblacion" style="width:130px" id="selpoblacion" class="listamenu">
<option value="" selected="selected">Todas:</option>

<?php
$tablapoblacion = mysql_query("SELECT DISTINCT propiedades.poblacion FROM propiedades ORDER BY poblacion ASC ");

if (!$registropoblacion['poblacion']=="")
{
echo "<option value='{$registropoblacion['poblacion']}'> {$registropoblacion['poblacion']}</option>";
}

while ($registropoblacion = mysql_fetch_array($tablapoblacion)) {
?>
<option value="<?php echo $registropoblacion['poblacion']; ?>"><?php echo $registropoblacion['poblacion']; ?></option>
<?php
}
mysql_free_result($tablapoblacion);
?>
</select>


puede que lo este haciendo mal, por que estoy un poco verde con php ya que solo llevo un mes dandole caña jeje


el campo es tipo varchar 250
  #6 (permalink)  
Antiguo 21/09/2015, 08:41
Avatar de baldaweb  
Fecha de Ingreso: septiembre-2010
Ubicación: Barco pirata
Mensajes: 244
Antigüedad: 13 años, 7 meses
Puntos: 20
Respuesta: evitar que se muestren campos vacíos de base de datos

Mételo dentro del while
__________________
CHOOO COOO LAAA TEEEEEEEEE
  #7 (permalink)  
Antiguo 21/09/2015, 08:50
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: evitar que se muestren campos vacíos de base de datos

Como dice baldaweb mételo en el while:

Código PHP:
Ver original
  1. <?php
  2. $tablapoblacion = mysql_query("SELECT DISTINCT propiedades.poblacion FROM propiedades ORDER BY poblacion ASC ");
  3.  
  4. while ($registropoblacion = mysql_fetch_array($tablapoblacion)) {
  5. if (!$registropoblacion['poblacion']=="")
  6. {
  7. echo "<option value='{$registropoblacion['poblacion']}'> {$registropoblacion['poblacion']}</option>";
  8. }
  9. }
  10. mysql_free_result($tablapoblacion);
  11. ?>
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #8 (permalink)  
Antiguo 21/09/2015, 09:24
 
Fecha de Ingreso: marzo-2011
Mensajes: 105
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: evitar que se muestren campos vacíos de base de datos

siii

ahora si funciona! muchas gracias chronos682! jeje

solo una pregunta mas.
tengo el mismo problema con otra lista menu que me coge varios campos de un registro, que hago? le aplico el mismo if? como seria la manera correcta?
este es el codigo:

<?php
$listacaracteristicas = array();
$tablacaracuno = mysql_query("SELECT DISTINCT propiedades.caracuno FROM propiedades ORDER BY caracuno ASC");
$tablacaracdos = mysql_query("SELECT DISTINCT propiedades.caracdos FROM propiedades ORDER BY caracdos ASC");


while( $rcaracuno=mysql_fetch_array($tablacaracuno)){
if(!in_array($rcaracuno['caracuno'], $listacaracteristicas)) $listacaracteristicas[]=$rcaracuno['caracuno'];
}
while( $rcaracdos=mysql_fetch_array($tablacaracdos)){
if(!in_array($rcaracdos['caracdos'], $listacaracteristicas)) $listacaracteristicas[]=$rcaracdos['caracdos'];
}


mysql_free_result($tablacaracuno);
mysql_free_result($tablacaracdos);

?>


<div class="contforcarac">
<div class="titulobuscadorcarac">Caracteristicas:</div>
<label for="selcaracuno"></label>
<select name="caracuno" id="selcaracuno" style="width:155px" class="listamenu">
<option value="" selected="selected">Todas</option>
<?php foreach($listacaracteristicas as $carac){ ?>


<option value="<?php echo $carac ?>"><?php echo $carac; ?></option>
<?php } ?>
</select>
</div>

Última edición por tonieet; 21/09/2015 a las 09:43
  #9 (permalink)  
Antiguo 21/09/2015, 13:33
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: evitar que se muestren campos vacíos de base de datos

Es igual solo que lo colocas dentro del for each.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #10 (permalink)  
Antiguo 22/09/2015, 04:11
 
Fecha de Ingreso: marzo-2011
Mensajes: 105
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: evitar que se muestren campos vacíos de base de datos

Cita:
Iniciado por chronos682 Ver Mensaje
Es igual solo que lo colocas dentro del for each.
Hola chronos682!
gracias por tu ayuda pero no consigo hacer que funcione este segundo código.. llevo horas probando y no consigo que deje de mostrarme los campos vacios..

Disculpa mi torpeza, como ya te he dicho hace muy poco tiempo que estoy intentando aprender php

te dejo el código para que veas como he intentado meter el if (seguramente lo he puesto mal)

<?php
$listacaracteristicas = array();
$tablacaracuno = mysql_query("SELECT DISTINCT propiedades.caracuno FROM propiedades ORDER BY caracuno ASC");
$tablacaracdos = mysql_query("SELECT DISTINCT propiedades.caracdos FROM propiedades ORDER BY caracdos ASC");


while( $rcaracuno=mysql_fetch_array($tablacaracuno)){
if(!in_array($rcaracuno['caracuno'], $listacaracteristicas)) $listacaracteristicas[]=$rcaracuno['caracuno'];
}
while( $rcaracdos=mysql_fetch_array($tablacaracdos)){
if(!in_array($rcaracdos['caracdos'], $listacaracteristicas)) $listacaracteristicas[]=$rcaracdos['caracdos'];
}


mysql_free_result($tablacaracuno);
mysql_free_result($tablacaracdos);

?>


<div class="contforcarac">
<div class="titulobuscadorcarac">Caracteristicas:</div>
<label for="selcaracuno"></label>
<select name="caracuno" id="selcaracuno" style="width:155px" class="listamenu">
<option value="" selected="selected">Todas</option>
<?php foreach($listacaracteristicas as $carac){
if (!$tablacaracuno['caracuno']==""){?>


<option value="<?php echo $carac ?>"><?php echo $carac; ?></option>
<?php }} ?>
</select>
</div>


gracias, un saludo!
  #11 (permalink)  
Antiguo 22/09/2015, 06:28
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: evitar que se muestren campos vacíos de base de datos

Intenta así a ver si te funciona:

Código PHP:
Ver original
  1. <?php  
  2.         $listacaracteristicas = array();
  3.         $tablacaracuno = mysql_query("SELECT DISTINCT propiedades.caracuno FROM propiedades ORDER BY caracuno ASC");
  4.         $tablacaracdos = mysql_query("SELECT DISTINCT propiedades.caracdos FROM propiedades ORDER BY caracdos ASC");
  5.        
  6.        
  7.         while( $rcaracuno=mysql_fetch_array($tablacaracuno)){
  8.             if(!in_array($rcaracuno['caracuno'], $listacaracteristicas) && !$rcaracuno['caracuno'] == "") $listacaracteristicas[]=$rcaracuno['caracuno'];
  9.         }
  10.         while( $rcaracdos=mysql_fetch_array($tablacaracdos)){
  11.             if(!in_array($rcaracdos['caracdos'], $listacaracteristicas) && !$rcaracdos['caracdos'] == "") $listacaracteristicas[]=$rcaracdos['caracdos'];
  12.         }
  13.        
  14.        
  15.         mysql_free_result($tablacaracuno);
  16.         mysql_free_result($tablacaracdos);
  17.        
  18.     ?>
  19.  
  20.  
  21.  <div class="contforcarac">
  22.              <div class="titulobuscadorcarac">Caracteristicas:</div>    
  23.                 <label for="selcaracuno"></label>
  24.                 <select name="caracuno" id="selcaracuno"  style="width:155px" class="listamenu">
  25.                 <option value="" selected="selected">Todas</option>
  26.                  <?php foreach($listacaracteristicas as $carac){ ?>
  27.                     <option value="<?php echo $carac ?>"><?php echo $carac; ?></option>
  28.                     <?php } ?>
  29.                 </select>  
  30. </div>
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #12 (permalink)  
Antiguo 22/09/2015, 09:33
 
Fecha de Ingreso: marzo-2011
Mensajes: 105
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: evitar que se muestren campos vacíos de base de datos

ahora si!

muchas gracias chronos682! con personas como tu, da gusto preguntar en los foros jeje

gracias por tu ayuda!

un saludo!

Etiquetas: campos, mysql, registro, select, tabla
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 18:17.