Foros del Web » Programando para Internet » PHP »

Condicionar opcion según campo de la base.

Estas en el tema de Condicionar opcion según campo de la base. en el foro de PHP en Foros del Web. Hola gente, espero que anden de primera. Tengo una duda sobre un sistema de productos. En el administrador, tengo un listado donde se muestran todos ...
  #1 (permalink)  
Antiguo 04/12/2011, 18:46
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Pregunta Condicionar opcion según campo de la base.

Hola gente, espero que anden de primera. Tengo una duda sobre un sistema de productos. En el administrador, tengo un listado donde se muestran todos los productos cargados, y las opciones de modificar, borrar, cargar foto miniatura, borrar foto miniatura, cargar foto grande, y borrar foto grande.
El tema, es que quiero condicionar que las opciones de borrar las fotos, aparezcan solo cuando haya alguna foto cargada, sino, que no este la opción.

Código del listado de productos:

Código PHP:
<?
require("seguridad.php");

$_SESSION["autorizado"];

include(
"config.php");

$link mysql_connect($servidor$usuario$pass) or die(mysql_error());        

$bd mysql_select_db($basedato$link) or die(mysql_error());        

$sql "    SELECT * 
FROM productos 
ORDER BY idProducto DESC"
;

$resultado mysql_query($sql$link) or die(mysql_error());

?>

<html>
<body>
<div class="fondo_header"></div>
<table align="center" cellspacing="10">
    <tr>
        <th colspan="5"><h1>Administrador Productos:</h1></th>
    </tr>
    <tr>
        <th><a href="producto_cargar.php" title="Crear Producto" class="add">Nuevo producto</a></th>
        <th><a href="../index.php" title="Home">Home</a></th>
        <th><a href="salir.php" title="Salir" class="error">Salir</a></th>
    </tr>
    <tr>
        <td colspan="5"><hr /></td>
    </tr>
    <tr>
        <th><span>Nombre</span></th>
        <th><span>Categoría</span></th>
        <th><span>Precio</span></th>
    </tr>
    <tr>
        <td colspan="5"><hr /></td>
    </tr>
<?
if($resultado)
{
while(
$r mysql_fetch_array($resultado))
{
?>    
    <tr>
        <th rowspan="3"><p><? echo "<strong>" $r['nombre'] ;?></p></th>
        <th rowspan="3"><p><? echo "<strong>" $r['cepa'] ;?></p></th>
        <th rowspan="3"><p><span><? echo "$ " $r['precio'] ;?></span></p></th>
        <td><a href="producto_modificar.php?id=<? echo $r['idProducto'];?>" title="Modificar Producto" class="edit">Modificar Producto</a></td>
        <td><a href="producto_borrar.php?id=<? echo $r['idProducto'];?>&&foto=<? echo $r['foto']; ?>&&fotomini=<? echo $r['fotomini']; ?>" title="Borrar Producto" class="delete">Borrar Producto</a></td>
    </tr>
    <tr>
        <td><a href="fotos_crear.php?id=<? echo $r['idProducto'];?>" class="add">Cargar Foto</a></td>
        <td><a href="fotosmini_crear.php?id=<? echo $r['idProducto'];?>" class="add">Cargar Foto Miniatura</a></td>
    </tr>
    <tr>
        <td><a href="fotos_borrar.php?id=<? echo $r['idProducto']; ?>&&foto=<? echo $r['foto']; ?>" class="delete">Borrar Foto</a></td>
        <td><a href="fotosmini_borrar.php?id=<? echo $r['idProducto']; ?>&&fotomini=<? echo $r['fotomini']; ?>" class="delete">Borrar Foto Miniatura</a></td>
    </tr>
    <tr>
        <td colspan="5"><hr /></td>
    </tr>
<?    }
    }
?>
</table>
</body>
</html>
Probé con condicionales, que si el campo foto de la tabla esta vació, en la celda donde aparece la opción de borrar, apareciera un mensaje vació, y de lo contrario, si el campo tenia una foto cargada, el mensaje tuviera la linea de código que aparece en el código que acabo de subir, pero no funciono.
No creo estar muy lejos de la verdadera solución. Espero que puedan ayudarme.
Gracias de antemano, un abrazo.

<< niko >>
  #2 (permalink)  
Antiguo 04/12/2011, 18:48
Avatar de AeroSilver  
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 12 años, 5 meses
Puntos: 15
Respuesta: Condicionar opcion según campo de la base.

Supongo yo que algo por el estilo:

Código PHP:
Ver original
  1. if($r['foto'] != ''){
  2.   echo "<img src...";
  3. }
  #3 (permalink)  
Antiguo 04/12/2011, 20:46
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Condicionar opcion según campo de la base.

La lógica sería que si no hay foto, el msj es vació, pero si hay una foto cargada, tiene que mostrarse la línea:

Código PHP:
Ver original
  1. <a href="fotos_borrar.php?id=<? echo $r['idProducto']; ?>&&foto=<? echo $r['foto']; ?>" class="delete">Borrar Foto</a>

Lo probé de varias formas, y nomas logre que me tire error, o que el msj siempre quede vació.
  #4 (permalink)  
Antiguo 04/12/2011, 20:56
Avatar de efex_  
Fecha de Ingreso: noviembre-2011
Mensajes: 17
Antigüedad: 12 años, 5 meses
Puntos: 4
Respuesta: Condicionar opcion según campo de la base.

Código PHP:
Ver original
  1. <?php
  2. if(!empty($r['foto']) ){
  3.       <a href="fotos_borrar.php?id=<? echo $r['idProducto']; ?>&&foto=<? echo $r['foto']; ?>" class="delete">Borrar Foto</a>
  4. }
  5. ?>

Y utilizando !empty ?
  #5 (permalink)  
Antiguo 04/12/2011, 20:58
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Condicionar opcion según campo de la base.

primero recomendarte que utilices <?php ya que el short_tag no esta recomendado ya que viene desactivado en muchos server y lo que indicas del condicional es lo que debes de realizar pudieras hacer algo como esto
Código PHP:
Ver original
  1. echo empty($r['campo_foto']) ? 'vacio' : '<img src="image.jpg" />';
adaptalo y nos comentas si te funciona, 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
  #6 (permalink)  
Antiguo 04/12/2011, 21:38
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Condicionar opcion según campo de la base.

Primero que nada gracias por las recomendaciones. Y en cuanto al código, estuve probando, pero no lo hago funcionar, probé de mil maneras ya. Como dije antes, o me deja el espacio vació, o el la opción de borrar la foto todo el tiempo.
  #7 (permalink)  
Antiguo 04/12/2011, 22:11
Avatar de ElSiniestro  
Fecha de Ingreso: diciembre-2011
Ubicación: Ibagué
Mensajes: 115
Antigüedad: 12 años, 5 meses
Puntos: 23
Respuesta: Condicionar opcion según campo de la base.

Hola
Nniko, ¿qué error te muestra?

Creo que es bueno que quites los cierres "?>" que hay en medio del ejemplo que muestras

Además es mejor que guardes el resultado en un array con un ciclo while(excepto que la imagen esté guardada en la base de datos)
  #8 (permalink)  
Antiguo 04/12/2011, 22:15
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Condicionar opcion según campo de la base.

Hola ElSiniestro, error no muestra, simplemente me toma siempre que no hay foto guardada, así que la celda con la opción de borrar siempre esta vacía, o al revés, toma como que siempre hay foto, y la opción de borrar presente.

Si, las fotos se guardan en la base de datos, todos los datos son extraídos de la base.
  #9 (permalink)  
Antiguo 04/12/2011, 22:26
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Condicionar opcion según campo de la base.

Primero hacé lo que dice Carlos, reemplazá todos los <? por <?php.
segundo, fijate que tenés errores en las url de los links

&&foto=<? echo $r['foto']; ?>

ahí va un solo signo & y no dos.

Tercero, usá trim() para quitar espacios al dato

if(trim($r['foto']) != ""){


y contanos como te fue


PD: también hay una variable de session por ahí tirada , suelta fijate, $_SESSION["autorizado"];




,
__________________
la la la
  #10 (permalink)  
Antiguo 04/12/2011, 22:40
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Condicionar opcion según campo de la base.

Hola truman, ya reemplace todo por <?php. El tema de los & me funciona correctamente teniendo 2. Y con respecto a lo que consulte desde un principio, no logro hacerlo andar, me muestra en todos los casos que en la base cada producto tiene fotos cargadas.
  #11 (permalink)  
Antiguo 04/12/2011, 22:48
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Condicionar opcion según campo de la base.

y estás seguro de que hay vacíos?


poné como estás haciendo el if para verlo
__________________
la la la
  #12 (permalink)  
Antiguo 04/12/2011, 22:51
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Condicionar opcion según campo de la base.

Probe de varias formas ya, borre todo, deje el codigo pelado nomas, creo que no voy a poner el condicionante, dejo que aparezca siempre la opcion de borrar.
  #13 (permalink)  
Antiguo 04/12/2011, 22:56
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Condicionar opcion según campo de la base.

poné el condicional acá que quiero verlo
__________________
la la la
  #14 (permalink)  
Antiguo 04/12/2011, 23:19
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Condicionar opcion según campo de la base.

Ya borre todo, deje el código como en un principio. Probé poniéndolo luego de la conexión con la base, después dentro del while. Seguro estaba mal la sintaxis, simple, si el espacio de la base estaba vacío, en la celda donde aparecería la opción para borrar la foto ponía un echo con un mensaje vacío, y si en la base estaba la foto cargada, ponía el mismo mensaje pero con el código del link.
  #15 (permalink)  
Antiguo 04/12/2011, 23:21
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Condicionar opcion según campo de la base.

Lo que no entiendo es porque no ponés el condicional para verlo, hace dos mensaje que te lo pido


saludos
__________________
la la la
  #16 (permalink)  
Antiguo 04/12/2011, 23:41
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Condicionar opcion según campo de la base.

Porque probé de 200 maneras:

if($r['foto'] = "")
{
$msjfoto = "";
}
else
{
$msjfoto = Código del link para borrar
}
  #17 (permalink)  
Antiguo 05/12/2011, 09:56
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Condicionar opcion según campo de la base.

debe tener doble signo igual

if($r['foto'] == "")
__________________
la la la
  #18 (permalink)  
Antiguo 05/12/2011, 11:08
Avatar de ElSiniestro  
Fecha de Ingreso: diciembre-2011
Ubicación: Ibagué
Mensajes: 115
Antigüedad: 12 años, 5 meses
Puntos: 23
Respuesta: Condicionar opcion según campo de la base.

Doble = siempre se nos olvida al principio jejejeje ;)
  #19 (permalink)  
Antiguo 05/12/2011, 11:12
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Condicionar opcion según campo de la base.

Con un solo signo es Asignación
if($variable = 1)
Le estas asignando el valor 1 a la variable.

Con dos signos es comparación
if($variable == 1)
Estamos preguntando si $variable es igual a 1.
__________________
la la la
  #20 (permalink)  
Antiguo 05/12/2011, 14:35
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Condicionar opcion según campo de la base.

Gracias por lo consejos, pero lo escribi mal aca, no soy tan novato che ajajaja... Ya lo solucione, de una forma muy rudimentaria:

Código PHP:
Ver original
  1. if($r['foto'] == "")
  2.     {
  3.       $msjfoto = "<!--";
  4.       $msjfoto02 = "-->";
  5.     }
  6.     else
  7.     {
  8.       $msjfoto = "";
  9.       $msjfoto02 = "";
  10.     }

Si en la base hay foto cargada, que se muestre la opción de borrar, en cambio si el campo esta vacío, por medio de los 2 mensajes comento la linea para que no se vea, y funciona perfectamente.
  #21 (permalink)  
Antiguo 05/12/2011, 14:40
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Condicionar opcion según campo de la base.

La verdad no entiendo como algo tan simple se está complicando tanto
__________________
la la la
  #22 (permalink)  
Antiguo 05/12/2011, 15:50
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Condicionar opcion según campo de la base.

Siempre lo mas simple es lo que mas te retrasa un trabajo...
  #23 (permalink)  
Antiguo 05/12/2011, 16:19
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Condicionar opcion según campo de la base.

Cita:
Iniciado por NnikoO Ver Mensaje
Siempre lo mas simple es lo que mas te retrasa un trabajo...
No
__________________
la la la
  #24 (permalink)  
Antiguo 05/12/2011, 20:51
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Condicionar opcion según campo de la base.

En mi caso si..
  #25 (permalink)  
Antiguo 05/12/2011, 20:55
Avatar de ElSiniestro  
Fecha de Ingreso: diciembre-2011
Ubicación: Ibagué
Mensajes: 115
Antigüedad: 12 años, 5 meses
Puntos: 23
Respuesta: Condicionar opcion según campo de la base.

En este caso fue mal expresado ;)

Etiquetas: campolleno, campovacio, condicional, condicionar, fotos
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 04:33.