Foros del Web » Programando para Internet » PHP »

Problema con selects

Estas en el tema de Problema con selects en el foro de PHP en Foros del Web. Hola. Tengo un problema con el rellenado de mis selects desde mi base de datos, la cuestion es que los rellena aparentemente de forma correcta, ...
  #1 (permalink)  
Antiguo 12/12/2012, 03:31
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 2 meses
Puntos: 7
Problema con selects

Hola.

Tengo un problema con el rellenado de mis selects desde mi base de datos, la cuestion es que los rellena aparentemente de forma correcta, pero al intentar seleccionar algo en el select me doy cuenta que falta la primera option, para esplicarme mejor pondre un ejemplo:
En mi tabla colorcabello tengo en el campo ColorCabello los siguientes datos:
Código:
Castaño
Negro
Pelirrojo
El resultado en el select es:
Código:
Color del Cabello
Negro
Pelirrojo
Como veis falta CASTAÑO, siempre falla la primera de las opciones en todos los selects que tengo puestos

Y este es mi select a ver si veis porque me pasa eso.

Código PHP:
Ver original
  1. <select name="selcolorcabello" id="selcolorcabello" class="Guias3" Onchange="cargarContenido('Contenido.php')">
  2.         <option value="-1" selected>&nbsp;Color del Cabello&nbsp;&nbsp;&nbsp;&nbsp;</option>
  3. <?php
  4.     $tablacolorcabello = mysql_query("SELECT * FROM colorcabello ORDER BY ColorCabello ASC");
  5.     while ($registrocolorcabello = mysql_fetch_array($tablacolorcabello))
  6.         if(empty($_GET['selcolorcabello']))
  7.         {
  8.           ($_GET['selcolorcabello'] = '-1');
  9.         }elseif
  10.           ($_GET["selcolorcabello"]==$registrocolorcabello['ColorCabello'])
  11.         {
  12.            echo "<option value='".$registrocolorcabello['ColorCabello']."' selected>&nbsp;&nbsp;".$registrocolorcabello['ColorCabello']."</option>";
  13.        }else{
  14.           echo "<option value='".$registrocolorcabello['ColorCabello']."' >&nbsp;&nbsp;".$registrocolorcabello['ColorCabello']."</option>";
  15.       }
  16.     mysql_free_result($tablacolorcabello);
  17.         ?>
  18.     </select>
No veo donde esta el problema, me podeis ayudar.
Gracias
__________________
¿Hay algo mas hermoso que ayudar.?

Última edición por unexes; 12/12/2012 a las 03:37
  #2 (permalink)  
Antiguo 12/12/2012, 03:44
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Problema con selects

Esta pregunta es de PHP no de MySQL pero apostaría porque tienes un error a la hora de colocar las llaves después del elseif
  #3 (permalink)  
Antiguo 12/12/2012, 04:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con selects

Movido desde MySQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 12/12/2012, 04:10
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Problema con selects

Gracias Heimish2000, por tu respuesta.
Puedes apostar que hay un error seguro pero no lo veo de ninguna manera.
He revisado en la red la implementacion del elseif y veo todas las llaves correctamente puestas.
Si tu ves el error te agradeceria me lo dijeras.
Un saludo
Gracias gnzsoloyo por moverlo.
__________________
¿Hay algo mas hermoso que ayudar.?

Última edición por unexes; 12/12/2012 a las 04:24
  #5 (permalink)  
Antiguo 12/12/2012, 04:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con selects

Es probable que el problema sea la forma en que recorres el resultado de la consulta, y no un error de sintaxis.
Un foreach() sería más sencillo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 12/12/2012, 08:03
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Problema con selects

Gracias gnzsoloyo, nunca he utilizado el foreach() y no se como implementarlo en mi select, he estado mirando en la red pero no entiendo como hacerlo, así que no lo puedo probar, si me puedes ayudar te quedaria muy agradecido.
Gracias.
__________________
¿Hay algo mas hermoso que ayudar.?
  #7 (permalink)  
Antiguo 12/12/2012, 08:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema con selects

Si te fijas, en la línea 6 haces una comprobación de si selcolorcabello (recibido por GET) está vacía; ten en cuenta que si está condición es verdadera no imprimirá la opción correspondiente. Es probable que eso sea lo que está pasando.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 12/12/2012, 09:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con selects

Por si quieres verlo:
Foreach()::Manual de PHP on-line
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 12/12/2012, 09:22
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Problema con selects

David, creo que el problema esta en la linea que comentas, y en el planteamiento del elseif, pero lo he cambiado de mil formas y no consigo que funcione, tu ayuda seria bien recibida.
Gracias adelantadas.

Un saludo
__________________
¿Hay algo mas hermoso que ayudar.?
  #10 (permalink)  
Antiguo 12/12/2012, 09:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema con selects

Si entendí, lo que quieres hacer es algo así:
Código PHP:
Ver original
  1. echo '<option value="' . $registrocolorcabello['ColorCabello'] .
  2.             ((isset($_GET['selcolorcabello']) && $_GET['selcolorcabello'] == $registrocolorcabello['ColorCabello']) ? ' selected="selected"' : '') .
  3.             '>&nbsp;&nbsp;' . $registrocolorcabello['ColorCabello'] . '</option>';
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 12/12/2012, 10:07
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Problema con selects

David, muchas gracias pero ya lo resolvi.
la solución es esta:
Código PHP:
Ver original
  1. <select name="selcolorcabello" id="selcolorcabello" class="Guias3" Onchange="cargarContenido('Contenido.php')">
  2.         <option value="-1" selected>&nbsp;Color del Cabello&nbsp;&nbsp;&nbsp;&nbsp;</option>
  3. <?php
  4.     $tablacolorcabello = mysql_query("SELECT * FROM colorcabello ORDER BY ColorCabello ASC");
  5.     while ($registrocolorcabello = mysql_fetch_array($tablacolorcabello))
  6.         if (empty($_GET["selcolorcabello"])<> '-1')
  7.         {
  8.             echo "<option value='".$registrocolorcabello['ColorCabello']."' selected>&nbsp;&nbsp;".$registrocolorcabello['ColorCabello']."</option>";
  9.         }else{
  10.             echo "<option value='".$registrocolorcabello['ColorCabello']."' >&nbsp;&nbsp;".$registrocolorcabello['ColorCabello']."</option>";
  11.         }
  12.     mysql_free_result($tablacolorcabello);
  13.         ?>
  14.     </select>
De todas formas muchisimas gracias, te debo una por tu esfuerzo y tiempo.
Voy a probar tu código es lo menos que puedo hacer y te dire algo.
Un saludo.
__________________
¿Hay algo mas hermoso que ayudar.?
  #12 (permalink)  
Antiguo 12/12/2012, 10:23
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Problema con selects

David El código que me pusiste no me funciona, te lo comento para que mires como lo resolvi.
gnzsoloyo, gracias por el Manual de Foreach() en cuanto tenga un rato me voy a poner con el ya que nunca lo he utilizado en mi código, suena raro verdad, jaja.

Un saludo a ambos.
__________________
¿Hay algo mas hermoso que ayudar.?
  #13 (permalink)  
Antiguo 12/12/2012, 10:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema con selects

Cierto, se me pasó una comilla:
Código PHP:
Ver original
  1. echo '<option value="' . $registrocolorcabello['ColorCabello'] . '"' .
  2.     ((isset($_GET['selcolorcabello']) && $_GET['selcolorcabello'] == $registrocolorcabello['ColorCabello']) ? ' selected="selected"' : '') .
  3.     '>&nbsp;&nbsp;' . $registrocolorcabello['ColorCabello'] . '</option>';
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #14 (permalink)  
Antiguo 12/12/2012, 14:49
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Problema con selects

No me habia dado cuenta como ya lo habia resuelto no profundice.
Eres grande.
Un saludo
__________________
¿Hay algo mas hermoso que ayudar.?

Etiquetas: select, selects, sql, tabla, campos
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 01:31.