Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Condiciones en una consulta

Estas en el tema de Condiciones en una consulta en el foro de PHP en Foros del Web. Hola amigos, por favor quien me ayuda con este consulta: Les resumo lo que necesito. Tengo un sistema de registro de articulos que debe ser ...
  #1 (permalink)  
Antiguo 07/04/2020, 19:23
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Condiciones en una consulta

Hola amigos, por favor quien me ayuda con este consulta:

Les resumo lo que necesito. Tengo un sistema de registro de articulos que debe ser validado primero para que sea dado de alta en un sistema, Entonces lo que quiero es que cuando la persona realice la consulta de sus articulos, les diga mediante una condicional el estado de su articulo, cuando se 1 que diga que esta pendiente de publicación, cuando sea 2 que está publicado y cuando sea 3 que está pausado.

Yo tengo este ejemplo y no me ha dado resultado. Les agradezco por favor su ayuda

Código PHP:
<?php
   
if ('".$registro['estado']."' == 1):
                            echo 
'Pendiente';
                        elseif (
'".$registro['estado']."' == 2): 
                            echo 
'Publicado';
                        else:
                            echo 
'Pausado';
                        endif;
                        
                        
?>
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #2 (permalink)  
Antiguo 07/04/2020, 19:51
 
Fecha de Ingreso: diciembre-2013
Mensajes: 10
Antigüedad: 10 años, 3 meses
Puntos: 4
Respuesta: Condiciones en una consulta

Lo de las comillas no entiendo porqué están ahí o cuál es su función, pero creo que así debería andarte.

Código PHP:

<?php

    
if ($registro['estado'] == 1) {
        echo 
'Pendiente';
    }
    elseif (
$registro['estado'] == 2) {
        echo 
'Publicado';
    }
    else {
        echo 
'Pausado';
    }
    
?>
  #3 (permalink)  
Antiguo 07/04/2020, 19:55
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Condiciones en una consulta

Cita:
Iniciado por Dreyfuz Ver Mensaje
Lo de las comillas no entiendo porqué están ahí o cuál es su función, pero creo que así debería andarte.

Código PHP:

<?php

    
if ($registro['estado'] == 1) {
        echo 
'Pendiente';
    }
    elseif (
$registro['estado'] == 2) {
        echo 
'Publicado';
    }
    else {
        echo 
'Pausado';
    }
    
?>

Me sale este error
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #4 (permalink)  
Antiguo 07/04/2020, 19:59
 
Fecha de Ingreso: diciembre-2013
Mensajes: 10
Antigüedad: 10 años, 3 meses
Puntos: 4
Respuesta: Condiciones en una consulta

Es un problema de comillas simples y dobles. Deberías fijarte que las comillas estén bien puestas dependiendo de tu código.
  #5 (permalink)  
Antiguo 07/04/2020, 20:03
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Condiciones en una consulta

Cita:
Iniciado por Dreyfuz Ver Mensaje
Es un problema de comillas simples y dobles. Deberías fijarte que las comillas estén bien puestas dependiendo de tu código.
Ya lo intenté y nada
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #6 (permalink)  
Antiguo 07/04/2020, 20:05
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Condiciones en una consulta

Lo hago asi pero me sale en blanco

Código PHP:
Ver original
  1. <?php
  2.  
  3.                             if (".$registro['estado']." == 1) {
  4.                                 echo 'Pendiente';
  5.                             }
  6.                             else if (".$registro['estado']." == 2) {
  7.                                 echo 'Publicado';
  8.                             }
  9.                             else {
  10.                                 echo 'Pausado';
  11.                             }
  12.  
  13.                         ?>
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #7 (permalink)  
Antiguo 07/04/2020, 21:42
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Condiciones en una consulta

Tengo la misma duda que Dreyfuz: ¿para qué usas comillas en los if?
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 08/04/2020, 09:31
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Condiciones en una consulta

Porque intenté del otro método indicado por él y nada, no me ha dado resultados, por favor si pueden ayudarme se los agradecería
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #9 (permalink)  
Antiguo 08/04/2020, 09:51
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Condiciones en una consulta

A ver, intenta con el código que dijo Dreyfuz:

Código PHP:
Ver original
  1. <?php
  2.  
  3.     if ($registro['estado'] == 1) {
  4.         echo 'Pendiente';
  5.     }
  6.     elseif ($registro['estado'] == 2) {
  7.         echo 'Publicado';
  8.     }
  9.     else {
  10.         echo 'Pausado';
  11.     }
  12.    
  13. ?>

Si te da error, por favor cópialo y pégalo completo aquí, junto con el número de línea y el código de al menos 10 líneas previas y 10 líneas posteriores a esto, porque me da la impresión de que tienes un problema de concatenación y apertura/cierre de etiquetas PHP o combinación de ambas, pero no lo estás mostrando aquí.
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 08/04/2020, 10:19
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Condiciones en una consulta

Debe ser lo que dices, aveces me enredo con esto, aqui está el codigo completo
Código PHP:
<?php 
                        
include('../config/conexion.php'); 
                        
$query "select * from table_public_article where user_id=".$_SESSION['user_id']." ORDER BY article_id DESC";     // Esta linea hace la consulta
                        
$result mysql_query($query); 

                        while (
$registro mysql_fetch_array($result)){ 

                        echo 
"
                        
                      <tr>
                        <td>"
.$registro['article_title']."</td>
                        <td>"
.$registro['precio']."</td>
                        <td><img src='"
.$registro['image1']."' width='50px'></td>
                        <td>
                        <?php
 
                        if ($registro['estado'] == 1) {
                            echo 'Pendiente';
                        }
                        elseif ($registro['estado'] == 2) {
                            echo 'Publicado';
                        }
                        else {
                            echo 'Pausado';
                        }

                    ?>
                        
                        
                        </td>
                        <td>"
.$registro['fecha']."</td>
                        <td align='center'><img src='img/edit.png' width='30px'/></td>
                        <td align='center'><img src='img/pausa.png' width='30px'/></td>
                        <td align='center'><img src='img/delete2.png' width='30px'/></td>  
                      </tr>
                        
                       "
;
                        } 
                        
?>
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #11 (permalink)  
Antiguo 08/04/2020, 11:08
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Condiciones en una consulta

Efectivamente, estabas concatenando y queriendo incluir condiciones, la solución era:
Código Javascript:
Ver original
  1. "; // Cerrar la salida del echo
  2.     // Incluir las condiciones aquí
  3.     if($registro['estado']) {
  4.          // echo y otras condiciones
  5.     }
  6.     // echo para finalizar el resto de la salida
  7.     echo "
  8.      <!-- aquí las imágenes para editar, pausar y borrar -->
  9. ";


La opción más fácil, según yo, es crear un array con las opciones disponibles para estado:

Código PHP:
Ver original
  1. <?php
  2.                         include('../config/conexion.php');
  3.                         // Estados disponibles
  4.                         $estados = [1 => 'Pendiente', 2 => 'Publicado', 3 => 'Pausado'];
  5.                         $query = "select * from table_public_article where user_id=".$_SESSION['user_id']." ORDER BY article_id DESC";     // Esta linea hace la consulta
  6.                         $result = mysql_query($query);
  7.  
  8.                         while ($registro = mysql_fetch_array($result)){
  9.  
  10.                         echo "
  11.                        
  12.                      <tr>
  13.                        <td>".$registro['article_title']."</td>
  14.                        <td>".$registro['precio']."</td>
  15.                        <td><img src='".$registro['image1']."' width='50px'></td>
  16.                        <td>" . $estados[$registro['estado']] . "</td>
  17.                        <td>".$registro['fecha']."</td>
  18.                        <td align='center'><img src='img/edit.png' width='30px'/></td>
  19.                        <td align='center'><img src='img/pausa.png' width='30px'/></td>
  20.                        <td align='center'><img src='img/delete2.png' width='30px'/></td>  
  21.                      </tr>
  22.                        
  23.                       ";
  24.                         }
  25.                         ?>

Hay mejores formas de hacer esto para que quede más legible, como la estructura HEREDOC que inicia con <<<IDENTIFICADOR y termina con el mismo identificador, en la primera posición, seguido de punto y coma: IDENTIFICADOR;

Los elementos de arreglos deben ir entre llaves:

Código PHP:
Ver original
  1. echo <<<SALIDA
  2.                       <tr>
  3.                         <td>{$registro['article_title']}</td>
  4.                         <td>{$registro['precio']}</td>
  5.                         <td><img src='{$registro['image1']}' width='50px'></td>
  6.                         <td>{$estados[$registro['estado']]}</td>
  7.                         <td>{$registro['fecha']}</td>
  8.                         <td align='center'><img src='img/edit.png' width='30px'/></td>
  9.                         <td align='center'><img src='img/pausa.png' width='30px'/></td>
  10.                         <td align='center'><img src='img/delete2.png' width='30px'/></td>  
  11.                       </tr>
  12. SALIDA; // No debe haber espacios antes, siempre en la primera posición
__________________
- León, Guanajuato
- GV-Foto
  #12 (permalink)  
Antiguo 08/04/2020, 11:26
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Condiciones en una consulta

Cita:
Iniciado por Triby Ver Mensaje
Efectivamente, estabas concatenando y queriendo incluir condiciones, la solución era:
Código Javascript:
Ver original
  1. "; // Cerrar la salida del echo
  2.     // Incluir las condiciones aquí
  3.     if($registro['estado']) {
  4.          // echo y otras condiciones
  5.     }
  6.     // echo para finalizar el resto de la salida
  7.     echo "
  8.      <!-- aquí las imágenes para editar, pausar y borrar -->
  9. ";


La opción más fácil, según yo, es crear un array con las opciones disponibles para estado:

Código PHP:
Ver original
  1. <?php
  2.                         include('../config/conexion.php');
  3.                         // Estados disponibles
  4.                         $estados = [1 => 'Pendiente', 2 => 'Publicado', 3 => 'Pausado'];
  5.                         $query = "select * from table_public_article where user_id=".$_SESSION['user_id']." ORDER BY article_id DESC";     // Esta linea hace la consulta
  6.                         $result = mysql_query($query);
  7.  
  8.                         while ($registro = mysql_fetch_array($result)){
  9.  
  10.                         echo "
  11.                        
  12.                      <tr>
  13.                        <td>".$registro['article_title']."</td>
  14.                        <td>".$registro['precio']."</td>
  15.                        <td><img src='".$registro['image1']."' width='50px'></td>
  16.                        <td>" . $estados[$registro['estado']] . "</td>
  17.                        <td>".$registro['fecha']."</td>
  18.                        <td align='center'><img src='img/edit.png' width='30px'/></td>
  19.                        <td align='center'><img src='img/pausa.png' width='30px'/></td>
  20.                        <td align='center'><img src='img/delete2.png' width='30px'/></td>  
  21.                      </tr>
  22.                        
  23.                       ";
  24.                         }
  25.                         ?>

Hay mejores formas de hacer esto para que quede más legible, como la estructura HEREDOC que inicia con <<<IDENTIFICADOR y termina con el mismo identificador, en la primera posición, seguido de punto y coma: IDENTIFICADOR;

Los elementos de arreglos deben ir entre llaves:

Código PHP:
Ver original
  1. echo <<<SALIDA
  2.                       <tr>
  3.                         <td>{$registro['article_title']}</td>
  4.                         <td>{$registro['precio']}</td>
  5.                         <td><img src='{$registro['image1']}' width='50px'></td>
  6.                         <td>{$estados[$registro['estado']]}</td>
  7.                         <td>{$registro['fecha']}</td>
  8.                         <td align='center'><img src='img/edit.png' width='30px'/></td>
  9.                         <td align='center'><img src='img/pausa.png' width='30px'/></td>
  10.                         <td align='center'><img src='img/delete2.png' width='30px'/></td>  
  11.                       </tr>
  12. SALIDA; // No debe haber espacios antes, siempre en la primera posición
Excelente Me funciono perfectamente, Muchas gracias mi amigo. Bendiciones
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #13 (permalink)  
Antiguo 24/04/2020, 12:50
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Condiciones en una consulta

Amigos disculpen, pero vuelvo nuevamente al tema ya que aunque me funcionó, ahora tengo otro requerimiento y es que cuando se cumpla un estado, por ejemplo que cuando sea 1, se deshabilite el boton guardar. Ayudemne por favor. Se los agradezco mucho
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #14 (permalink)  
Antiguo 24/04/2020, 13:14
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Condiciones en una consulta

Cita:
Iniciado por karenlorenadg Ver Mensaje
Amigos disculpen, pero vuelvo nuevamente al tema ya que aunque me funcionó, ahora tengo otro requerimiento y es que cuando se cumpla un estado, por ejemplo que cuando sea 1, se deshabilite el boton guardar. Ayudemne por favor. Se los agradezco mucho
Asi tengo mi codigo. Entonces lo que quiero es que cuando estado sea igual a 1 me deshabilite el boton Guardar cambios

Código HTML:
<?php 
                        include('../config/conexion.php'); 
    
    
                        $estado = [2 => '<font color="#6A0888"><b>Publicado</b>', 3 => '<font color="green"><b>Pausado</b></font>', 1 => '<font color="green"><b>Pendiente</b></font>'];
    
    
                        $query = "select * from table_public_article where article_id=".$_GET['article_id']." and user_id=".$_SESSION['user_id']."";     // Esta linea hace la consulta
                        $result = mysql_query($query); 
 
                        while ($registro = mysql_fetch_array($result)){ 
 
                        echo "    
                    
                    
                    
                    
                <form action='reg_edit_estatus.php' method='post' enctype='multipart/form-data'>
                    <div class='form-group'>
                      <label for='exampleFormControlSelect1'>Condicion del Articulo</label>
                      <select class='form-control' name='estado' id='exampleFormControlSelect1' required>
                        <option value='".$registro['estado']."'>" . $estado[$registro['estado']] . "</option>
                        <option value='2'>Publicar</option>
                        <option value='3'>Pausar</option>
                        
                      </select>
                    </div>
                      
                    <input type='hidden' name='article_id' value='".$registro['article_id']."'> 
                       
                    <div class='form-group'>
                      <button type='submit' id='estado' class='btn btn-primary btn-block'>GUARDAR CAMBIOS</button>
                    </div>  
                        ";
                        } 
                        ?> 
                  </form> 
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS

Etiquetas: condiciones
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 23:31.