Foros del Web » Programando para Internet » PHP »

Consulta a la base de datos que recoja opciones de botón de radio

Estas en el tema de Consulta a la base de datos que recoja opciones de botón de radio en el foro de PHP en Foros del Web. hola a tod@s, mi pregunta es la siguiente, tengo un frmulario en el que una de las opciones es un botón de radio que tiene ...
  #1 (permalink)  
Antiguo 17/11/2004, 03:57
 
Fecha de Ingreso: marzo-2004
Mensajes: 50
Antigüedad: 20 años, 1 mes
Puntos: 0
Pregunta Consulta a la base de datos que recoja opciones de botón de radio

hola a tod@s,
mi pregunta es la siguiente, tengo un frmulario en el que una de las opciones es un botón de radio que tiene las siguientes opciones:

<INPUT TYPE="radio" NAME="nuevaViejo" value="nuevo"><FONT face="Verdana, Arial, Helvetica, sans-serif" size="2"><B>Nuevo</B></FONT>

<INPUT TYPE="radio" NAME="nuevaViejo" value="viejo"><FONT face="Verdana, Arial, Helvetica, sans-serif" size="2"><B> Viejo</B></FONT>

<INPUT TYPE="radio" NAME="nuevaViejo" value="todos"><FONT face="Verdana, Arial, Helvetica, sans-serif" size="2"><B>Todos </B></FONT>

El problema surge al hacer la consulta a la base de datos cuando se ha elegido la opción "todos", pues esta incluiría que en el resultado se visualicen las dos, tanto los elementos en cuyo registro ponga "nuevo" como en los que ponga "viejo", he pensado poner :

if($_POST[nuevaViejo]=nuevo)
$coche1=nuevo
if($_POST[nuevaViejo]=viejo)
$coche2=viejo
if($_POST[nuevaViejo]=todos)
$coche=$coche1 And $coche2

no estoy segura de si se popdría concatenar así, en el caso de que se pueda hacer esto no tengo claro como realizar luego la consulta:

$sql = "SELECT id, campo1,campo2,campo3,campo4,nuevoUsado FROM Particulares where nuevoUsado=$coche1 Or nuevoUsado=$coche2 Or nuevoUsado=$coche";
¿esto sería correcto?
un saludo,
  #2 (permalink)  
Antiguo 17/11/2004, 04:36
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 10 meses
Puntos: 0
Hola vanax, tienes un par de fallitos en tu código, te comento...

* Tienes los if's mal formados...
En php las comparaciones son con == y las asignaciones con =
* Las cadenas de texto van entre comillas y las variables con $variable
* Para el último if tendrías que concatenar las variables a la cadena de texto and, para concatenar usamos el .

Quedaría así:
if($_POST[nuevaViejo]=="nuevo")
$coche1=nuevo;
if($_POST[nuevaViejo]=="viejo")
$coche2=viejo;
if($_POST[nuevaViejo]=="todos")
$coche=$coche1."And".$coche2;

No sé si me dejo algo por alto, prueba y di que resultado obtienes para seguir ayundandote...

Hasta luego,
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #3 (permalink)  
Antiguo 17/11/2004, 04:53
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 19 años, 6 meses
Puntos: 0
También aprovechando lo que dijo Enea, en vez de hacer tres if's hacer un if, luego elseif, otro elseif y finalmente un else diciendo si hay algun error. Es otro opción.
  #4 (permalink)  
Antiguo 17/11/2004, 05:14
 
Fecha de Ingreso: marzo-2004
Mensajes: 50
Antigüedad: 20 años, 1 mes
Puntos: 0
hola Enea,
tienes razón con lo de los "==" y las comillas es que lo he escrito rápido y se me ha pasado, lo del símbolo $ si te fijas si que está. Voy a probar a concatenar como dices a ver si funciona, ya te cuento.
Gracias,
ana
  #5 (permalink)  
Antiguo 17/11/2004, 07:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Vanax

if($_POST['nuevaViejo']=="nuevo")

Es recomendable que uses como referencia para el indice de tu array 'comilas', pues sino .. podría ser tomado como constante y no lo es.

Por lo demás .. lo que debería quedar de tus condicionales es una sóla sentencia SQL:

Código PHP:
if($_POST['nuevaViejo']=='nuevo'){
  
$sql_condicional="WHERE nuevoUsado='nuevo'";
} elseif (
$_POST[nuevaViejo]=='viejo'){
   
$sql_condicional="WHERE nuevoUsado='viejo'";
} elseif (
$_POST[nuevaViejo]=='todos'){
   
$sql_condicional='';
} else {
   
"Error: No se ha seleccionado nada";
    
// Opcional . .terminar la ejecución del script ...
    
exit;
}

$sql "SELECT id, campo1,campo2,campo3,campo4,nuevoUsado FROM Particulares ".$sql_condicional
Si no tienes otro caso más para "nuevoUsado" que puede ser sólo "nuevo" o "viejo" .. si pides todos los registros .. no es necesario que hagas una condicion tipo "si es nuevo o es viejo" si consultando SIN condición (sin WHERE) ya los tienes todos .. Por eso se trata de formar esa parte de SQL "condicional" sólo si corresponde.

Haz un echo a $sql y verifica que toma el valor esperado tu sentencia SQL.

Un saludo,

Última edición por Cluster; 17/11/2004 a las 07:28
  #6 (permalink)  
Antiguo 17/11/2004, 11:18
 
Fecha de Ingreso: marzo-2004
Mensajes: 50
Antigüedad: 20 años, 1 mes
Puntos: 0
Sonrisa Consulta a la base de datos que recoja opciones de botón de radio

Cita:
Iniciado por Cluster
Vanax


Es recomendable que uses como referencia para el indice de tu array 'comilas', pues sino .. podría ser tomado como constante y no lo es.
Es verdad la consulta no funcionaba bien por eso.
En realidad si que tengo los casos de solo "nuevo" o solo "viejo" además de "todos", por eso he puesto la condición "si es nuevo o es viejo" pero creo que ya me funciona bien voy a hacer otra comprobación por hay algún problema, y si es así... aquí estaré otra vez preguntando.
gracias
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 16:31.