variable php pregunta

Estado
No está abierto para más respuestas.

snekone

Cobre
Usuario de Bronce
Mensajes
626
Puntuación de reacción
0
Hola, estoy modificiando un script y bueno tengo aqui un problema quiero poner una variable que si la base de datos se encuentra a 0 se puestre pero si es diferente no se muestre

if ($post['mod'] == 0) {}

seria asi.. eso lo se pero el problema es que lo que quiero mostrar tiene php y html pongo el pedazo que quiero que aparezca o no

PHP:
 <div class="box">






            <div class="pre">
                   Por <a href="/usuario/<?php echo $this->parse_url($post['username']);?>/<?php echo $post['user_id'];?>"><?php echo $post['username'];?></a>, el <?php echo $this->parse_date($post['post_date']);?> / <a href="/categoria/<?php echo $this->parse_url($post['category_name']);?>"><?php echo $post['category_name'];?></a>
            </div>
            <?php
                if ($post['thumbnail'] !="")
                {
                    $avatar_mini = $post['thumbnail'];
                }else{
                    $avatar_mini = "img/sin_avatar_mini.jpg";
                }
            ?>
            
             <div class="userbox">
                <div class="avatar" style="margin-bottom:10px;">

                    <a href="/usuario/<?php echo $this->parse_url($post['username']);?>/<?php echo $post['user_id'];?>"><img width="25" height="25" src="/<?php echo $avatar_mini;?>"/></a>
                  <a href="/entrada/<?php echo $post['post_id'];?>"><?php echo '#'; echo $post['post_id']; ?>
                </div>
            </div>
            <p>
            <a class="fmllink" href="/entrada/<?php echo $post['post_id'];?>">
                <?php
                    foreach ($_SESSION['site_config']['baned_words'] as $baned)
                    {
                        $post['post'] = str_ireplace($baned,"PVTT",$post['post']);
                    }
                         $post['post'] .="\n".'  #PVTT';
                   $direccion = 'www.putavidatete.com/entrada/';                      
                   $twitter = "  @ttputavida";                
     ?>
                <?php echo substr($post['post'],0,300);?>
                <?php if (strlen($post['post']) > 300): ?>
                    ... <a href="/entrada/<?php echo $post['post_id'];?>">Continuar leyendo</a>
                <?php endif; ?>
            </a>
            </p>
            <div class="meta">
                <img src="/img/comments.gif"> <a href="/entrada/<?php echo $post['post_id'];?>">Comentarios (<?php echo $post['comments'];?>)</a> /
                <span id="me_gusta_<?php echo $post['post_id'];?>">
                    <a href="javascript:;" onclick="vote('<?php echo $post['post_id'];?>','true');">Puta vida tete</a> (<?php echo $post['vote_true'];?>)
                </span> -
                <span id="no_me_gusta_<?php echo $post['post_id'];?>">
                    <a href="javascript:;" onclick="vote('<?php echo $post['post_id'];?>','false');">Haberlo pensado tete</a> (<?php echo $post['vote_false'];?>)
                </span>
              <a href="https://twitter.com/intent/tweet?screen_name=ttputavida" class="twitter-mention-button" data-count="horizontal" data-text="<?php echo $direccion; echo $post['post_id']; ?>">Tweet</a>

              <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
             <br/>
            </div>




            <div class="clear"></div>
        </div>
 
Mensajes
330
Puntuación de reacción
0
Yo lo solucionaría con un if inmediato, así puedes meter todo el chorizo en una sola línea ;)
 

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
Puedes hacerlo de muchas maneras, con if o con switch sería lo más adecuado, if si sólo hay dos posibilidades, puedes hacerlo con goto y saltar a una parte del script también, pero mejor no lo utilices :sisi1:

La manera más simple que creo es lo que buscas sería:
(imaginamos que quieres mostrar el contenido si esa variable es igual a 0)

PHP:
if ( $post['mod'] === 0 ) {
 //mi contenido aquí dentro
}

No hay más, por otro lado si te fijas he puesto ===, si te va a devolver esa variable un integer es mejor que pongas 0 por el contrario si devuelve un string es mejor que pongas '0', el poner === es más rápido que == o =, en un sólo condicional no tiene lugar decir esto xD, pero en códigos largos es un tip más para optimizar.
 

snekone

Cobre
Usuario de Bronce
Mensajes
626
Puntuación de reacción
0
me puedes explicar un poco como se hace? el problema es que esta en php y html y no se como tengo que poner el if para incluir todas estas lineas a ver si me puedes ayudar, gracias
Yo lo solucionaría con un if inmediato, así puedes meter todo el chorizo en una sola línea ;)

- - - Actualización- - -

pero he probado a meter todas las lineas que he puesto y no me funciona asi.. puede ser porque es html y php junto? gracias por la respuesta
Puedes hacerlo de muchas maneras, con if o con switch sería lo más adecuado, if si sólo hay dos posibilidades, puedes hacerlo con goto y saltar a una parte del script también, pero mejor no lo utilices :sisi1:

La manera más simple que creo es lo que buscas sería:
(imaginamos que quieres mostrar el contenido si esa variable es igual a 0)

PHP:
if ( $post['mod'] === 0 ) {
 //mi contenido aquí dentro
}

No hay más, por otro lado si te fijas he puesto ===, si te va a devolver esa variable un integer es mejor que pongas 0 por el contrario si devuelve un string es mejor que pongas '0', el poner === es más rápido que == o =, en un sólo condicional no tiene lugar decir esto xD, pero en códigos largos es un tip más para optimizar.
 

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
me puedes explicar un poco como se hace? el problema es que esta en php y html y no se como tengo que poner el if para incluir todas estas lineas a ver si me puedes ayudar, gracias


- - - Actualización- - -

pero he probado a meter todas las lineas que he puesto y no me funciona asi.. puede ser porque es html y php junto? gracias por la respuesta

Así:

PHP:
<?php if ( $post['mod'] === 0 ) : ?>
 //copia aquí el código que quieres meter tal cual está
<?php endif; ?>

Nótese los dos puntos para abrir el if y el endif; para cerrarlo, esto no cambia nada, es lo mismo que los brackets, sólo que en plantillas queda más entendible
 

snekone

Cobre
Usuario de Bronce
Mensajes
626
Puntuación de reacción
0
he consultado y me han dicho que habria que ponerlo en html para meter todo el codigo que he dejado en el primer post no? a ver si alguien me lo puede confirmar y como seria

- - - Actualización- - -

voy a probar gracias
Así:

PHP:
<?php if ( $post['mod'] === 0 ) : ?>
 //copia aquí el código que quieres meter tal cual está
<?php endif; ?>

Nótese los dos puntos para abrir el if y el endif; para cerrarlo, esto no cambia nada, es lo mismo que los brackets, sólo que en plantillas queda más entendible

- - - Actualización- - -

Así:

PHP:
<?php if ( $post['mod'] === 0 ) : ?>
 //copia aquí el código que quieres meter tal cual está
<?php endif; ?>

Nótese los dos puntos para abrir el if y el endif; para cerrarlo, esto no cambia nada, es lo mismo que los brackets, sólo que en plantillas queda más entendible

ahora si que ha funcionado, muchas gracias por la leccion
 
Mensajes
330
Puntuación de reacción
0
Mil perdones! Tenía puesto el chip C++ y he caido que en Php se llama "operador ternario" cuya sintaxis es:

$resultado = (2 + 2 = 5) ? 'Correcto' : 'Falso';

Se puede anidar quedando por ejemplo: $resultado = (2 + 2 = 5) ? $resultado2 = (1 + 1 = 3) ? 'Correcto' : 'Falso' : 'Falso';

Ventajas: potencia, ya que consumes menos ciclos de reloj, y elegancia porque puedes poner expresiones complejas en una sola línea.

Desventajas: Puede quedar un poco ofuscado si no se tiene mucha práctica.

P.D: Si quieres rizar el rizo, puedes envolver toda la expresión en un ternario más, lo niegas si sabes que la condición a cumplir se da en casos muy concretos, y así puedes arañar algunos ciclos más de reloj.

Enfín, espero que te sirva y que tengas muchos éxitos con cualquiera que sea el proyecto qué estás trabajando :)

Un abrazo.

P.D 2: Intenta que las expresiones que tienen menos probabilidades de cumplirse, queden en las capas más internas si necesitas arañar algún ciclo más de reloj, ya que el compilador/intérprete siempre pregunta de afuera hacía dentro, aunque tienes que hacer un seguimiento de tu diagrama de llaves, o de tu lógica para asegurarte que no la cagas.
 

snekone

Cobre
Usuario de Bronce
Mensajes
626
Puntuación de reacción
0
Gracias, al final como ha dicho lobogris lo he solucionado al ser falso o negativo lo he podido hacer :) aun me queda un poco sobre el proyecto pero vamos la base esta casi hecha pero seguro que alguna duda mas tendre sobre php no sera la ultima, muchas gracias a los dos ;)

Mil perdones! Tenía puesto el chip C++ y he caido que en Php se llama "operador ternario" cuya sintaxis es:

$resultado = (2 + 2 = 5) ? 'Correcto' : 'Falso';

Se puede anidar quedando por ejemplo: $resultado = (2 + 2 = 5) ? $resultado2 = (1 + 1 = 3) ? 'Correcto' : 'Falso' : 'Falso';

Ventajas: potencia, ya que consumes menos ciclos de reloj, y elegancia porque puedes poner expresiones complejas en una sola línea.

Desventajas: Puede quedar un poco ofuscado si no se tiene mucha práctica.

P.D: Si quieres rizar el rizo, puedes envolver toda la expresión en un ternario más, lo niegas si sabes que la condición a cumplir se da en casos muy concretos, y así puedes arañar algunos ciclos más de reloj.

Enfín, espero que te sirva y que tengas muchos éxitos con cualquiera que sea el proyecto qué estás trabajando :)

Un abrazo.

P.D 2: Intenta que las expresiones que tienen menos probabilidades de cumplirse, queden en las capas más internas si necesitas arañar algún ciclo más de reloj, ya que el compilador/intérprete siempre pregunta de afuera hacía dentro, aunque tienes que hacer un seguimiento de tu diagrama de llaves, o de tu lógica para asegurarte que no la cagas.
 
Mensajes
330
Puntuación de reacción
0
A tí por querer aprender. Se vé tan poco en estos días :(
A ver si la próxima pregunta te la puedo explicar mas simplificada, pero es que un if no es sólo un if y ya está! :)

Cuídate y sé feliz...
 
Mensajes
9
Puntuación de reacción
0
Si, recuerda no dejar mucho contenido html dentro de etiquetas PHP.
si hace un if ej:
<?
if ($var==0) {
?>
HTML...
<?
} fin condicion
?>
esto ayudara a no cargar mucha la carga de php
 
Estado
No está abierto para más respuestas.
Arriba