Foros del Web » Programando para Internet » PHP »

Problema condicionales y variables (variable dentro de otra)

Estas en el tema de Problema condicionales y variables (variable dentro de otra) en el foro de PHP en Foros del Web. Buenas amigos tengo un problema que no consigo solucionar y me está dando demasiados quebraderos de cabeza... Les pongo en situación: Tengo unos usuarios que ...
  #1 (permalink)  
Antiguo 02/10/2010, 05:52
Avatar de Tollelle  
Fecha de Ingreso: enero-2005
Mensajes: 64
Antigüedad: 19 años, 4 meses
Puntos: 0
Exclamación Problema condicionales y variables (variable dentro de otra)

Buenas amigos tengo un problema que no consigo solucionar y me está dando demasiados quebraderos de cabeza...

Les pongo en situación:

Tengo unos usuarios que seleccionan una o varias categorías y las eligen desde un campo select multiple.

Este dato lo guardo en una tabla con los identificadores de las categorías separadas por comas tal que así "12,45,34,10"

El problema viene a la hora de editar este campo por parte de los usuarios ya que quiero que en el mismo campo select multiple me aparezcan seleccionadas esas categorias (que ya eligieron en su dia) Mi idea era con un while saco los datos de las categorias (que son unas 80) y con un condicional detecto si el id es igual al array (que previamente separe por las comas) y si es igual lo marco como seleccionado... pero no hay forma....

Les paso el código:

Código PHP:
echo '<select name="id_ofertas[]"  multiple id="id_ofertas[]">';

$id_ofertas='10,14,35';
$id_ofertasastr_replace(",",' || $row[id]==',$id_ofertas);
$id_ofertasa'$row[id]'."==$id_ofertasa";

$select=mysql_query("SELECT * FROM categorias WHERE cat=0 ORDER BY titulo ASC",$conexion);
while (
$row = @mysql_fetch_array($select))
{
if(
"$id_ofertasa"/// <- Aquí tengo el problema if($row[id]==10 || $row[id]==14 || $row[id]==35)
{echo"<option  value=$row[id] selected>$row[titulo]</option>";}
else
{echo
"<option  value=$row[id]>$row[titulo]</option>";}

echo 
'</select>'
si alguien puede ver donde está el fallo se lo agradecería porque llevo semanas trabado en este punto.

Un saludo y gracias

Última edición por Tollelle; 02/10/2010 a las 08:02
  #2 (permalink)  
Antiguo 02/10/2010, 08:10
Avatar de CazaresLuis  
Fecha de Ingreso: septiembre-2010
Ubicación: Distrito Federal
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 2
Sonrisa Respuesta: Problema condicionales y variables (variable dentro de otra)

Hola buenos días, crees que puedas postear la estructurad e tus tablas?, algo no me checa en tu query, viendo tus tablas te podría apoyar

Saludos

Última edición por GatorV; 04/10/2010 a las 16:01
  #3 (permalink)  
Antiguo 02/10/2010, 08:17
Avatar de Tollelle  
Fecha de Ingreso: enero-2005
Mensajes: 64
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Problema condicionales y variables (variable dentro de otra)

La estructura de las tablas esta bien, el problema lo tengo en el condicional.

Si sustituyo a mano if("$id_ofertasa") por if($row[id]==10 || $row[id]==14 || $row[id]==35) hace precisamente lo que quiero el problema es que lo necesito automático no a mano :/ y no consigo enviar una variable sin ejecutar y que luego se ejecute dentro del $id_ofertasa manteniendo otra variable sin ejecutar, es un poco complejo :/
  #4 (permalink)  
Antiguo 02/10/2010, 08:54
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema condicionales y variables (variable dentro de otra)

Mmm.... algo raro encontre en el if....

Código PHP:
echo '<select name="id_ofertas[]"  multiple id="id_ofertas[]">';

$id_ofertas='10,14,35';
$id_ofertasastr_replace(",",' || $row[id]==',$id_ofertas);
$id_ofertasa'$row[id]'."==$id_ofertasa";

$select=mysql_query("SELECT * FROM categorias WHERE cat=0 ORDER BY titulo ASC",$conexion);
while (
$row = @mysql_fetch_array($select))
{
if(
"$id_ofertasa"/// <- Eso siempre sera true... es como preguntar ... if "casa".
{echo"<option  value=$row[id] selected>$row[titulo]</option>";}
else
{echo
"<option  value=$row[id]>$row[titulo]</option>";}

echo 
'</select>'
Pruebas asi

Código PHP:
if($id_ofertasa//sin comillas dobles 
  #5 (permalink)  
Antiguo 02/10/2010, 08:56
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema condicionales y variables (variable dentro de otra)

Mmm... luego de otra leida, creo que me di cuenta de lo que queires hacer... Por favot confirmame

En id_ofertasa estas guardando el codigo php del condicional??? si eso es lo que quieres hacer no te va a funcionar. Debes hacer otra cosa.

Dime si estoy en lo correcto y en ese caso te digo quehacer.

saludos
  #6 (permalink)  
Antiguo 02/10/2010, 08:57
Avatar de Tollelle  
Fecha de Ingreso: enero-2005
Mensajes: 64
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Problema condicionales y variables (variable dentro de otra)

Sin comillas dobles tampoco va... no sé qué puede ser y me tiene un poco desquiciado...

y estás en lo correcto, el di_ofertasa va esto ($row[id]==10 || $row[id]==14 || $row[id]==35) ...
  #7 (permalink)  
Antiguo 02/10/2010, 09:10
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 16 años
Puntos: 5
De acuerdo Respuesta: Problema condicionales y variables (variable dentro de otra)

Ok aqui te dejo una idea... te resumo la solucion:

Tenemos un listado de id's separadas por comas, esas las pasas a un array.
Luego consultas todas las categorias y por iteracion de reusltado ves si existe en el array, si esta en el array escribes selected, sino no xD...

Juguemos un poco con el codigo... ahi lo revisas y me cuentas.

Código PHP:
echo '<select name="id_ofertas[]"  multiple id="id_ofertas[]">';

$id_ofertas='10,14,35';
$array_ofertas explode(',',$id_ofertas);

$select=mysql_query("SELECT * FROM categorias WHERE cat=0 ORDER BY titulo ASC",$conexion);
while (
$row = @mysql_fetch_array($select)){

  if(
in_array($row[id],array_ofertas
{echo
"<option  value=$row[id] selected>$row[titulo]</option>";}
else
{echo
"<option  value=$row[id]>$row[titulo]</option>";}

echo 
'</select>'
Por ahi va la cosa... revisalo y me avisas (que no probe el codigo, pero esa es la logica que podria tener tu solucion)!!
  #8 (permalink)  
Antiguo 02/10/2010, 09:11
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema condicionales y variables (variable dentro de otra)

Ah!! olvide decirte...

explode, te crea un array con las componentes del string separas por un patron, en este caso a coma.

in_array(a,b) te revisa si a esta en b

=)
  #9 (permalink)  
Antiguo 02/10/2010, 10:40
Avatar de Tollelle  
Fecha de Ingreso: enero-2005
Mensajes: 64
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Problema condicionales y variables (variable dentro de otra)

Ole!!! muchas gracias Blex :P ya funciona ^^

Te debo una.

Un saludo.

Etiquetas: condicionales, variables
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 13:01.