Regresar a la página www.ComoCrearTuWeb.com
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 15 de 27

Tema: mostrar imagen segun datos encontrados en la base de datos dependiendo del valor

  1. #1
    Me va gustando esto... Habitante
    Fecha de Ingreso
    27 ago, 11
    Ubicación
    Santiago
    Mensajes
    38
    Poder de Reputación
    13

    mostrar imagen segun datos encontrados en la base de datos dependiendo del valor

    Hola a todos hago la siguiente consulta a ver si me podria ayudar.

    Supongamos que tengo una tabla en la base de datos con el nombre de id_sexo el cual es un dato que se envia desde un select option donde al persona elije el sexo, por ejemplo Indefinido, Mujer o Hombre y este dato se guarda en la base de datos, pero ya luego de guardado en el archivo donde puedo ver los registros gardados quiero mostrarlo como se hace en los foros con una imagen que identifique el sexo y ya teniendo los codigos para mostrar los demas valores solo quisiera traer la imagen que corresponda a cada sexo guardado en el servidor por ejemplo en al ruta asi

    /imagenes/indefinido.gif
    /imagenes/Mujer.gif
    /imagenes/iHombre.gif

    <img src="aqui iria la ruta para traer la imagen segun el nombre guardado en la base de datos" >Como debo hacerlo?

  2. #2
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    21
    Prueba así:

    Código:
    $generodb = mysql_query("SELECT id_sexo FROM `tubasededatos`.`tabla` WHERE nick='$nick'");
    
    $genero = imagenes/indefinido.gif;
    
    if ($generodb==Indefinido) {
    $genero = /imagenes/indefinido.gif;
    }
    
    if ($generodb==Mujer) {
    $genero = /imagenes/Mujer.gif;
    }
    
    if ($generodb==Hombre) {
    $genero = /imagenes/Hombre.gif;
    }
    Y donde quieras mostrar el sexo de la persona, pones esto:
    Código:
    <img src="$genero" />
    Recuerda primero que tienes que conectar a la base de datos y sustituir el primer código, el de $generodb, lo que está en rojo

  3. #3
    Me va gustando esto... Habitante
    Fecha de Ingreso
    27 ago, 11
    Ubicación
    Santiago
    Mensajes
    38
    Poder de Reputación
    13
    Cita Iniciado por Doodleo Ver Mensaje
    Prueba así:

    Código:
    $generodb = mysql_query("SELECT id_sexo FROM `tubasededatos`.`tabla` WHERE nick='$nick'");
    
    $genero = imagenes/indefinido.gif;
    
    if ($generodb==Indefinido) {
    $genero = /imagenes/indefinido.gif;
    }
    
    if ($generodb==Mujer) {
    $genero = /imagenes/Mujer.gif;
    }
    
    if ($generodb==Hombre) {
    $genero = /imagenes/Hombre.gif;
    }
    Y donde quieras mostrar el sexo de la persona, pones esto:
    Código:
    <img src="$genero" />
    Recuerda primero que tienes que conectar a la base de datos y sustituir el primer código, el de $generodb, lo que está en rojo

    Ok he hecho lo siguiente ya que tengo creado algunos codigos.

    <?php

    $id=$_GET["id"];
    $connect = mysql_connect("rererere","arererer","rerere");
    mysql_select_db("rererreree",$connect);
    $result=mysql_query("select * from contactos where id='$id'",$connect);
    $generodb = mysql_query("SELECT id_sexo FROM contactos where id='$id'");
    $genero = files/unknown.gif;
    if ($generodb==Desconocido) {
    $genero = files/unknown.gif;
    }
    if ($generodb==Mujer) {
    $genero = files/female.gif;
    }
    if ($generodb==Hombre) {
    $genero = files/male.gif;
    }
    while($row=mysql_fetch_array($result))
    {?>

    Asi obtengo los resultados para los otros campos:

    nombre: <?php echo $row['nombres'];?>
    Apellidos: <?php echo $row['apellidos'];?>
    Sexo: <img src="$genero" style="margin-bottom: 5px;"> aqui puse el codigo de buscar la imagen.


    ahora veo un error que dice lo siguiente:


    Warning: Division by zero in /home/erererere/public_html/sitioweb/contacto.php on line 152

    que es esta: $genero = files/unknown.gif;
    Última edición por Dramidom; 30/08/2011 a las 00:11

  4. #4
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    21
    El problema es que al poner la barra diagonal, piensa que estás diviendo la palabra files entre unknown (Lo mismo pasará con el de Mujer y Hombre) y eso no da valor (No se puede dividir una palabra xD)

    Prueba a dejar el código así:
    Código:
    <?php 
    
    $id=$_GET["id"]; 
    $connect = mysql_connect("rererere","arererer","rerere"); 
    mysql_select_db("rererreree",$connect); 
    $result=mysql_query("select * from contactos where id='$id'",$connect);
    $generodb = mysql_query("SELECT id_sexo FROM contactos where id='$id'");
    $genero = files\"/\"unknown.gif;
    if ($generodb==Desconocido) {
    $genero = files\"/\"unknown.gif;
    }
    if ($generodb==Mujer) {
    $genero = files\"/\"female.gif;
    }
    if ($generodb==Hombre) {
    $genero = files\"/\"male.gif;
    }
    while($row=mysql_fetch_array($result)) 
    {?>
    En fin, el error es ese, pero la solución no creo que funcione, pero por probar...

  5. #5
    Me va gustando esto... Habitante
    Fecha de Ingreso
    27 ago, 11
    Ubicación
    Santiago
    Mensajes
    38
    Poder de Reputación
    13
    Da el siguiente error:

    Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/------------- linea 152

    Parse error: syntax error, unexpected '"' in /home/------------- linea 152

    $genero = files\"/\"unknown.gif;

  6. #6
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    21
    Lo que suponía jeje

    Y si pruebas poniendo las imágenes en el mismo directorio del archivo, y pones esto de código?
    Código:
    <?php 
    
    $id=$_GET["id"]; 
    $connect = mysql_connect("rererere","arererer","rerere"); 
    mysql_select_db("rererreree",$connect); 
    $result=mysql_query("select * from contactos where id='$id'",$connect);
    $generodb = mysql_query("SELECT id_sexo FROM contactos where id='$id'");
    $genero = unknown.gif;
    if ($generodb==Desconocido) {
    $genero = unknown.gif;
    }
    if ($generodb==Mujer) {
    $genero = female.gif;
    }
    if ($generodb==Hombre) {
    $genero = male.gif;
    }
    while($row=mysql_fetch_array($result)) 
    {?>
    Y donde quieras ponerlo, pones: <img src="$genero" />

  7. #7
    Me va gustando esto... Habitante
    Fecha de Ingreso
    27 ago, 11
    Ubicación
    Santiago
    Mensajes
    38
    Poder de Reputación
    13
    ya probe, no da error pero no se muestra el link de la imagen usando chrome queda asi:

    http://www.mipaginaweb/site/$genero

  8. #8
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    21
    Entonces, donde tienes que poner el link, ponlo así, todo este código:

    Código:
    <?php
    
    $connect = mysql_connect("rererere","arererer","rerere"); 
    mysql_select_db("rererreree",$connect); 
    $result=mysql_query("select * from contactos where id='$id'",$connect);
    $generodb = mysql_query("SELECT id_sexo FROM contactos where id='$id'");
    $genero = unknown.gif;
    if ($generodb==Desconocido) {
    $genero = unknown.gif;
    }
    if ($generodb==Mujer) {
    $genero = female.gif;
    }
    if ($generodb==Hombre) {
    $genero = male.gif;
    }
    
    echo "<img src='$genero' />";
    
    ?>

  9. #9
    Me va gustando esto... Habitante
    Fecha de Ingreso
    27 ago, 11
    Ubicación
    Santiago
    Mensajes
    38
    Poder de Reputación
    13
    He hecho una prueba a modo de ver si funciona, en las propiedades de la imagen se muestra algo asi unknowngif si el punto y veo que aunque cambie el sexo se queda igual.

    Por otra parte tengo una duda respecto a esta parte

    id_sexo FROM contactos where id='$id'"); aqui que es lo que debe ir por si acaso esta parte este mal

  10. #10
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,079
    Poder de Reputación
    25
    Hola:

    Lo que pasa es que estan comparando valores erróneos. Los archivos deben estar entre comillas simples o dobles:

    Código PHP:
    <?php

    $connect 
    mysql_connect("rererere","arererer","rerere"); 
    mysql_select_db("rererreree",$connect); 
    $result=mysql_query("select * from contactos where id='$id'",$connect);
    $generodb mysql_query("SELECT id_sexo FROM contactos where id='$id'");  // Aquí estas preguntando a la base de datos: "selecciona la columna id_sexo de la tabla contactos donde la columna id sea idéntico al contenido de la variable $id. Si las columnas existen en la tabla, entonces esta bien.
    $genero "unknown.gif";
    if (
    $generodb == "desconocido") {
    $genero "unknown.gif";
    }
    if (
    $generodb == "mujer") {
    $genero "female.gif";
    }
    if (
    $generodb == "hombre") {
    $genero "male.gif";
    }

    // Si es hombre (male), entonces, en el código fuente de la página, se mostrará <img src="male.gif" />
    echo "<img src='$genero' />";

    ?>
    Debes tener en cuenta que, en este caso, las imágenes tendrán que estar en la raíz del sitio, o sea, la url sería http://www.misitio.com/male.gif. La mejor forma de especificar la ruta es hacer lo siguiente:

    Código PHP:
    <?php

    $connect 
    mysql_connect("rererere","arererer","rerere"); 
    mysql_select_db("rererreree",$connect); 
    $result=mysql_query("select * from contactos where id='$id'",$connect);
    $generodb mysql_query("SELECT id_sexo FROM contactos where id='$id'");  /* Aquí estas preguntando a la base de datos: "selecciona la columna id_sexo de la tabla contactos donde la columna id sea idéntico al contenido de la variable $id. Si las columnas existen en la tabla, entonces esta bien. */

    /* Si no quieres que las imagenes esten en la raíz del sitio, sino en una carpeta, entonces tienes que añadir la ruta: $genero = base_url() . "carpeta_uno/sub_carpeta/sub_carpeta/carpeta_imagenes"; */
    $genero base_url();
    if (
    $generodb == "mujer") {
     
    $genero .= "unknown.gif";
    }
    else if (
    $generodb == "hombre") {
        
    $genero .= "male.gif";
    }
    else {
      
    $genero .= "unknown.gif";
    }

    // Ahora en lugar de mostrar solo el nombre de la imágen, se mostrará toda la ruta: http://www.misitio.com/male.gif.
    echo "<img src='$genero' />";

    /**
       *  Esta función devuelve una cadena de texto que contiene la url base del sitio web, de forma 
       *  http://dominio:puerto/
       */
    function base_url() {
      
    $url "http";

      if(isset(
    $_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')
          
    $url .= 's';

        
    $url .= '://';
        
    $url .= $_SERVER['SERVER_NAME']. ':' .$_SERVER['SERVER_PORT'];

        return 
    $url "/";
    }

    ?>
    Saludos.
    Última edición por skaparate; 30/08/2011 a las 20:02

  11. #11
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    21
    Viniendo de skaparate seguro que funciona, pero bueno, voy mejorando mi PHP jajaja

    Saludos!

  12. #12
    Me va gustando esto... Habitante
    Fecha de Ingreso
    27 ago, 11
    Ubicación
    Santiago
    Mensajes
    38
    Poder de Reputación
    13
    bueno voy a probar porque ya con tanto codigo estoy con la cabeza mal que no se como hacer tantas cosas jajas

  13. #13
    Me va gustando esto... Habitante
    Fecha de Ingreso
    27 ago, 11
    Ubicación
    Santiago
    Mensajes
    38
    Poder de Reputación
    13
    probe con el primer caso propuesto pero la imagen no cambia, se muestra bien la de desconocido pero aunque cambie el valor sigue igual la imagen.

  14. #14
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    21
    Las opciones del género en la base de datos, cómo están escritas? Tienen la primera letra mayúscula?

    En esta parte:
    Código:
    if ($generodb == "desconocido") {
    $genero = "unknown.gif";
    }
    if ($generodb == "mujer") {
    $genero = "female.gif";
    }
    if ($generodb == "hombre") {
    $genero = "male.gif";
    }
    Fíjate que lo que está en rojo y negrita está tal cual está en la base de datos

  15. #15
    Me va gustando esto... Habitante
    Fecha de Ingreso
    27 ago, 11
    Ubicación
    Santiago
    Mensajes
    38
    Poder de Reputación
    13
    Cita Iniciado por Doodleo Ver Mensaje
    Las opciones del género en la base de datos, cómo están escritas? Tienen la primera letra mayúscula?

    En esta parte:
    Código:
    if ($generodb == "desconocido") {
    $genero = "unknown.gif";
    }
    if ($generodb == "mujer") {
    $genero = "female.gif";
    }
    if ($generodb == "hombre") {
    $genero = "male.gif";
    }
    Fíjate que lo que está en rojo y negrita está tal cual está en la base de datos
    si estan en Mayuscula Inicial pero eso lo note y lo arregle, las imagenes no cambian y creo que se debe a que aqui dice:
    $genero = "unknown.gif";

    por lo tanto aunque haya un if creo que siempre sera la misma imagen del primer caso.
    Última edición por Dramidom; 30/08/2011 a las 17:16

Página 1 de 2 12 ÚltimoÚltimo

Temas Similares

  1. problema para mostrar los resultados de mi base de datos
    Por alam en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 4
    Último Mensaje: 04/04/2011, 14:27
  2. Como mandar datos de un formulario a una base de datos
    Por yunyi en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 13
    Último Mensaje: 18/12/2007, 01:35
  3. ¿como mostrar los datos de la base de datos??
    Por triplem en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 3
    Último Mensaje: 27/11/2007, 21:43

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •