Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrar campo solo si esta lleno

Estas en el tema de Mostrar campo solo si esta lleno en el foro de PHP en Foros del Web. Hola Amigos quiero su ayuda, resulta que estoy sacando datos de mi BD pero quiero que se imprima solo si 5 post pero solo si ...
  #1 (permalink)  
Antiguo 05/02/2016, 12:46
Avatar de webelgrillo  
Fecha de Ingreso: marzo-2008
Mensajes: 142
Antigüedad: 16 años, 1 mes
Puntos: 0
Mostrar campo solo si esta lleno

Hola Amigos quiero su ayuda, resulta que estoy sacando datos de mi BD

pero quiero que se imprima solo si 5 post pero solo si el campo $p_foto_uno esta lleno

como seria ayuda por favor.

Código PHP:
<?

$resp 
mysql_query("SELECT * FROM  `weblog` WHERE  `estado_publicado` = 1 AND  `publicar_inicio` = 0 AND  `tipo_contenido` NOT IN ('vid',  'blog',  'company') LIMIT 0 , 5");

while(
$row mysql_fetch_array($resp)){
        
$p_tipocontenido $row['tipo_contenido'];
        
$p_tipo2 str_replace ("_""-"$p_tipocontenido);
        
$p_titulo utf8_encode($row['titulo']);
        
$p_url $row['url_web'];
        
$p_foto_uno $row['foto_uno'];
        
$p_id $row['id'];

echo 
'

<img src="'
.$p_foto_uno.'" alt="'.$p_titulo.'">
'
;
}
?>
Gracias ante todo por la ayuda.
  #2 (permalink)  
Antiguo 05/02/2016, 12:55
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 3 meses
Puntos: 24
Respuesta: Mostrar campo solo si esta lleno

hola, saludos prueba a ver si te sirve así:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $resp = mysql_query("SELECT * FROM  `weblog` WHERE  `estado_publicado` = 1 AND  `publicar_inicio` = 0 AND  `tipo_contenido` NOT IN ('vid',  'blog',  'company') LIMIT 0 , 5");
  4.  
  5. while($row = mysql_fetch_array($resp)){
  6.         $p_tipocontenido = $row['tipo_contenido'];
  7.         $p_tipo2 = str_replace ("_", "-", $p_tipocontenido);
  8.         $p_titulo = utf8_encode($row['titulo']);
  9.         $p_url = $row['url_web'];
  10.         $p_foto_uno = $row['foto_uno'];
  11.         $p_id = $row['id'];
  12.  
  13. if(!empty($p_foto_uno)){
  14. echo '
  15.  
  16. <img src="'.$p_foto_uno.'" alt="'.$p_titulo.'">
  17. ';
  18. }
  19.  
  20. }
  21. ?>
  #3 (permalink)  
Antiguo 05/02/2016, 13:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar campo solo si esta lleno

Puedes usar un if() y empty() para verificarlo, consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 05/02/2016, 13:11
Avatar de webelgrillo  
Fecha de Ingreso: marzo-2008
Mensajes: 142
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Mostrar campo solo si esta lleno

Gracias por su ayuda lo que pasa es que si use esa opción pero al momento de imprimir solo muestra 3 o cuatro o a veces 5 pero yo quiero que siempre sea los 5 post

por eso pedi ayuda.

siempre agradeciéndoles por su tiempo.
  #5 (permalink)  
Antiguo 05/02/2016, 13:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar campo solo si esta lleno

Cita:
Gracias por su ayuda lo que pasa es que si use esa opción pero al momento de imprimir solo muestra 3 o cuatro o a veces 5 pero yo quiero que siempre sea los 5 post
Pues eso no lo solucionas con código PHP porque primero tendrías que hacer la validación a nivel de la base de datos: es decir, tu problema es entonces 100% de SQL.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 05/02/2016, 13:23
Avatar de webelgrillo  
Fecha de Ingreso: marzo-2008
Mensajes: 142
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Mostrar campo solo si esta lleno

Mi código ahorita esta así

Código PHP:
<?

$resp 
mysql_query("SELECT * FROM  `weblog` WHERE  `estado_publicado` = 1 AND  `publicar_inicio` = 0 AND  `tipo_contenido` NOT IN ('vid',  'blog',  'company') ORDER BY  RAND() LIMIT 0 , 5");

while(
$row mysql_fetch_array($resp)){
        
$p_tipocontenido $row['tipo_contenido'];
        
$p_tipo2 str_replace ("_""-"$p_tipocontenido);
        
$p_titulo utf8_encode($row['titulo']);
        
$p_url $row['url_web'];
        
$p_foto_uno $row['foto_uno'];
        
$p_id $row['id']; 

echo 
'

<img src="'
.$p_foto_uno.'" alt="'.$p_titulo.'">
'
;
}
?>
si se fijan estoy haciendo Randon.

quiero que me imprima 5 post pero si el campo $p_foto_uno esta vacio
de alguno de ellos que vuelva hacer el conteo o algo asi.

pero que siempre me imprima 5 si o si.

gracias.
  #7 (permalink)  
Antiguo 05/02/2016, 13:27
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 3 meses
Puntos: 24
Respuesta: Mostrar campo solo si esta lleno

Que imprima siempre 5 pero si esta uno vació no lo imprima? pues tendrás que aplicarle fuerza bruta jajaja:


ojo no eh probado esto, ni tampoco se si funciona solo lo coloco como referencia y si solo si la pego:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $resp = mysql_query("SELECT * FROM  `weblog` WHERE  `estado_publicado` = 1 AND  `publicar_inicio` = 0 AND  `tipo_contenido` NOT IN ('vid',  'blog',  'company') LIMIT 0 , 5");
  4.  
  5. for($i = 1; $i < 5; $i++){
  6. row = mysql_fetch_array($resp)
  7.         $p_tipocontenido = $row['tipo_contenido'];
  8.         $p_tipo2 = str_replace ("_", "-", $p_tipocontenido);
  9.         $p_titulo = utf8_encode($row['titulo']);
  10.         $p_url = $row['url_web'];
  11.         $p_foto_uno = $row['foto_uno'];
  12.         $p_id = $row['id'];
  13.  
  14. if(!empty($p_foto_uno)){
  15. echo '
  16.  
  17. <img src="'.$p_foto_uno.'" alt="'.$p_titulo.'">
  18. ';
  19. }
  20.  
  21. }
  22. ?>
  #8 (permalink)  
Antiguo 05/02/2016, 13:43
Avatar de webelgrillo  
Fecha de Ingreso: marzo-2008
Mensajes: 142
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Mostrar campo solo si esta lleno

Mi código esta así actualmente pero no me muestra nada no se en que estoy fallando

Código PHP:
<?

$resp 
mysql_query("SELECT * FROM  `weblog` WHERE  `estado_publicado` = 1 AND  `publicar_inicio` = 0 AND  `tipo_contenido` NOT IN ('vid',  'blog',  'company') ORDER BY  RAND()");

for(
$i 1$i 5$i++){
    
$row mysql_fetch_array($resp);
        
$p_tipocontenido $row['tipo_contenido']; 
        
$p_tipo2 str_replace ("_""-"$p_tipocontenido); 
        
$p_titulo utf8_encode($row['titulo']); 
        
$p_url $row['url_web']; 
        
$p_foto_uno $row['foto_uno']; 
        
$p_id $row['id'];

        if(!empty(
$p_foto_uno)){
        echo 
'
                <img src="'
.$p_foto_uno.'" alt="'.$p_titulo.'">
                '

        }
}
?>
gracias por su ayuda.
  #9 (permalink)  
Antiguo 05/02/2016, 13:48
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 3 meses
Puntos: 24
Respuesta: Mostrar campo solo si esta lleno

Quitale el "!" al empty() y prueba, ya que supuse te funcionaria de la forma lo coloque.
  #10 (permalink)  
Antiguo 05/02/2016, 13:56
Avatar de webelgrillo  
Fecha de Ingreso: marzo-2008
Mensajes: 142
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Mostrar campo solo si esta lleno

Lo modifique y ahora esta asi mi codigo pero me muestra hay veces dos otra veces 3 pero unca los cinco "Quiero que me muestres siempre cinco"

aqui mi codigo

Código PHP:
<?

$resp 
mysql_query("SELECT * FROM  `weblog` WHERE  `estado_publicado` = 1 AND  `publicar_inicio` = 0 AND  `tipo_contenido` NOT IN ('vid',  'blog',  'company') ORDER BY  RAND() LIMIT 0 , 5");

for(
$i 1$i 5$i++){
    
$row mysql_fetch_array($resp);
        
$p_tipocontenido $row['tipo_contenido']; 
        
$p_tipo2 str_replace ("_""-"$p_tipocontenido); 
        
$p_titulo utf8_encode($row['titulo']); 
        
$p_url $row['url_web']; 
        
$p_foto_uno $row['foto_uno']; 
        
$p_id $row['id'];

        if(!empty(
$p_foto_uno)){
        echo 
'
                <img src="'
.$p_foto_uno.'" alt="'.$p_titulo.'">
                '

        }
}
?>
Porfa como seria quiero que haga randon de mis post y me nuestre 5 si o si pero si el campo $p_foto_uno esta lleno.

gracias por tu tiempo.
  #11 (permalink)  
Antiguo 05/02/2016, 14:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar campo solo si esta lleno

Alto a todos.

¿No observan bien cual es el problema? ¡No tiene nada que ver con PHP!

El problema es que el LIMIT siempre se aplica a 5, sin importar que la columna p_foto_uno tenga valor o no.

Entonces el motor de base de datos siempre devolverá 5 resultados al azar, pero sin la condición de dicha columna.

¿Solución?

Agrega una clausula WHERE donde especifiques que dicha columna no debe venir vacía.

Cierro el tema porque debería ir en el foro de base de datos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 05/02/2016, 14:15
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Mostrar campo solo si esta lleno

Pues añade dicha condicion al WHERE de tu consulta sql
  #13 (permalink)  
Antiguo 05/02/2016, 14:22
Avatar de webelgrillo  
Fecha de Ingreso: marzo-2008
Mensajes: 142
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Mostrar campo solo si esta lleno

pero como se le pone esta condición al campo en where

que debo decirle
https://www.dropbox.com/s/h7ltis5ipk6vxc6/mysql.png


ok gracias.
  #14 (permalink)  
Antiguo 05/02/2016, 14:35
Avatar de webelgrillo  
Fecha de Ingreso: marzo-2008
Mensajes: 142
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Mostrar campo solo si esta lleno

Cita:
Iniciado por pateketrueke Ver Mensaje
Alto a todos.

¿No observan bien cual es el problema? ¡No tiene nada que ver con PHP!

El problema es que el LIMIT siempre se aplica a 5, sin importar que la columna p_foto_uno tenga valor o no.

Entonces el motor de base de datos siempre devolverá 5 resultados al azar, pero sin la condición de dicha columna.

¿Solución?

Agrega una clausula WHERE donde especifiques que dicha columna no debe venir vacía.

Cierro el tema porque debería ir en el foro de base de datos.
como digo que no este vacio foto_uno???

Código PHP:
$resp mysql_query("SELECT * FROM  `weblog` WHERE  `estado_publicado` = 1 AND  `publicar_inicio` = 0 AND  `foto_uno` = NO Este Vacio ORDER BY  RAND() LIMIT 0 , 5"); 
Gracias.
  #15 (permalink)  
Antiguo 05/02/2016, 14:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar campo solo si esta lleno

Cita:
como digo que no este vacio foto_uno???
Eso lo deberías consultar en una referencia de SQL, es básico:

Cita:
... WHERE columna != '' ...
Diferente de vacío significa "que no esté vacío, o que tenga algún valor".
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 05/02/2016, 14:50
Avatar de webelgrillo  
Fecha de Ingreso: marzo-2008
Mensajes: 142
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Mostrar campo solo si esta lleno

Gracias a todo ya lo resolvi

Etiquetas: campo, lleno, mysql, select
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:58.