Foros del Web » Programando para Internet » PHP »

<input type="radio">

Estas en el tema de <input type="radio"> en el foro de PHP en Foros del Web. Pensaba q era un problema de HTML , pero es algo mas por eso reporto el hilo de este tema a esta sección haber si ...
  #1 (permalink)  
Antiguo 14/06/2003, 20:07
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 874
Antigüedad: 14 años, 6 meses
Puntos: 2
<input type="radio">

Pensaba q era un problema de HTML , pero es algo mas por eso reporto el hilo de este tema a esta sección haber si alguien me echa una mano , gracias

http://www.forosdelweb.com/showthrea...982#post413982
  #2 (permalink)  
Antiguo 14/06/2003, 20:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. pues ya q estamos en el foro PHP .. mejor será que pongas el código completo que usas para ver por donde puede estar el fallo.

Si usas encuestas típo:

pregunta 1: opción 1 (o) opción 2 (o) opción 3 (o)
pregunta 2: opción 1 (o) opción 2 (o) opción 3 (o)
pregunta 3: opción 1 (o) opción 2 (o) opción 3 (o)
pregunta N: opción 1 (o) opción 2 (o) opción 3 (o)

Los nombres de tus option de radio Buttons deberan ser diferentes o usar un array típo:

<input type="radio" name="pregunta[1]" value="opcion1">
<input type="radio" name="pregunta[1]" value="opcion2">
<input type="radio" name="pregunta[1]" value="opcion3">

<input type="radio" name="pregunta[2]" value="opcion1">
<input type="radio" name="pregunta[2]" value="opcion2">
<input type="radio" name="pregunta[2]" value="opcion3">

<input type="radio" name="pregunta[N]" value="opcion1">
<input type="radio" name="pregunta[N]" value="opcion2">
<input type="radio" name="pregunta[N]" value="opcion3">

y así todos los bloques de "radio" con tus preguntas ..

En PHP obtendras el array pregunta que lo puedes recorrer con un bucle foreach() por ejemplo obteniendo la única opción seleccionada de cada bloque:

Código PHP:
foreach($_POST['pregunta'] as $pregunta =>$opcion){
   echo 
"Pregunta nº: ".$pregunta." --> ".$opcion."<br>";

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 15/06/2003, 04:16
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 874
Antigüedad: 14 años, 6 meses
Puntos: 2
Bueno pues aqui pongo el codigo:

<?php

if(isset($submit)):

$db = mysql_pconnect("localhost", "root") or die("No pudo conectar");
mysql_select_db("encuestas",$db) or die("No se encuentra la base usuarios");

$sql = "INSERT INTO chicas (opc1, opc2, opc3) VALUES('$opc1','$opc2','$opc3')";
mysql_query($sql) or die("La query no funciona: ".mysql_error());

print("<h3><b>Resultado:</b></h3><p>");


$sql1 = "SELECT SUM(opc1) FROM chicas";
$result1 = mysql_query($sql1) or die("La query no funciona: ".mysql_error());
$uno = mysql_fetch_row($result1);

$sql2 = "SELECT SUM(opc2) FROM chicas";
$result2 = mysql_query($sql2) or die("La query no funciona: ".mysql_error());
$dos = mysql_fetch_row($result2);

$sql3 = "SELECT SUM(opc3) FROM chicas";
$result3 = mysql_query($sql3) or die("La query no funciona: ".mysql_error());
$tres = mysql_fetch_row($result3);

$sql4 = "SELECT id from chicas";
$result4 = mysql_query($sql4) or die("La query no funciona: ".mysql_error());
$total = mysql_num_rows($result4);

print("<b>Rocio</b>, concursante de la 4ª edición de gran hermano. Votos <b>$uno[0]</b><br>");
print("<b>Malena</b>, concursante del Hotel Glam. Votos <b>$dos[0]</b><br>");
print("<b>Marta</b>, colaboradora de VitaminaN, programa de Citytv, televisión local de Barcelona. Votos <b>$tres[0]</b><p>");
print("<center>Total de votos <b>$total</b></center>");

endif;


?>

<form name="f1" action="encuesta.php" method="post">
<h3><b>Que chica te gusta mas?:</b></h3><p>
<b>Rocio</b>, concursante de la 4ª edición de gran hermano.<input type="radio" name="punto" id="opc1" value="1"><br>
<b>Malena</b>, concursante del Hotel Glam.<input type="radio" name="punto" id="opc2" value="1"><br>
<b>Marta</b>, colaboradora de VitaminaN, programa de Citytv, televisión local de Barcelona.<input type="radio" name="punto" id="opc3" value="1"><br>
<input type="submit" name="submit" value=¡Enviar!>

Yna correccion el form va sin el "id":

<form name="f1" action="encuesta.php" method="post">
<h3><b>Que chica te gusta mas?:</b></h3><p>
<b>Rocio</b>, concursante de la 4ª edición de gran hermano.<input type="radio" name="opc1" value="1"><br>
<b>Malena</b>, concursante del Hotel Glam.<input type="radio" name="opc2" value="1"><br>
<b>Marta</b>, colaboradora de VitaminaN, programa de Citytv, televisión local de Barcelona.<input type="radio" name="opc3" value ="1"><br>
<input type="submit" name="submit" value=¡Enviar!>
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #4 (permalink)  
Antiguo 15/06/2003, 12:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Fijate bien en la explicación que te dí ..

Tus Opciones (<option>) deben ser del mismo nombre .. en su value envias lo que actualmente defines como opc1, opc2 .. Si no non del mismo nombre podrás seleccionar mas de un <option> ..

El valor que recibes en PHP será el del mobre de esa variable (option) y con el valor "opc1" u "opc2"

Por otro lado .. no entiendo bien como organizas los datos en tus tablas ..

Debería ser:

Tabla Chicas:

id|nombre|votacion
1|Rocio|1
2|Malena|34
3|Marta|10

El campo votación lo incrementas en una unidad a cada voto ..

Para eso harías consultas de UPDATE típo:
UPDATE chicas SET votacion=votacion+1 WHERE id='$votaciones'

Y para eso .. tu formulario de votación sería:

Vota a Rocio <option name="votaciones" value="1">
Vota a Malena <option name="votaciones" value="2">
Vota a la otra <option name="votaciones" value="3">

Cuando quieras obtener las votaciones de cada Opción .. tan sólo tienes que hacer un simple SELECT a la tabla "chicas"

SELECT * FROM chicas
(sin necesidad de sumar ni nada más extra .. Pues eso ya lo haces a cada voto incrementando el valor de ese campo).

Por la misma filosofía .. puedes tener un numero indeterminado de "opciones" y por supuesto hacer un SELECT a tu tabla chicas para generar tu formulario de votación ...

Un saludo
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 15/06/2003, 15:59
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 874
Antigüedad: 14 años, 6 meses
Puntos: 2
he modificado la tabla como tu me has a aconsejado y e introducido la cunsuta

UPDATE chicas SET votacion=votacion+1 WHERE id='$votaciones'

y me da el siguiente error:

Parse error: parse error in

en la linea de la consulta, yo creo q hay un problema en :

id='$votaciones'

no lo veo claro, la consulta la e realizado en la base de datos y funciona, pero aplicada al php, falla y creo q es pq no pasa bien los valores
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #6 (permalink)  
Antiguo 15/06/2003, 21:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. si hay "error de parser" ... lo que deberías poner es el código completo que estás usando (completo .. incluido tu formulario de votación e indicando la línea concreto y cual es la que dá el problema)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 16/06/2003, 06:15
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 874
Antigüedad: 14 años, 6 meses
Puntos: 2
<?php

if(isset($submit)):

$db = mysql_pconnect("localhost", "root") or die("No pudo conectar");
mysql_select_db("encuestas",$db) or die("No se encuentra la base usuarios");

$sql = "UPDATE chicas SET votacion=votacion+1 WHERE id='$voto';
mysql_query($sql) or die("La query no funciona: ".mysql_error());

print("<h3><b>Resultado:</b></h3><p>");


$sql1 = "SELECT SUM(opc1) FROM chicas";
$result1 = mysql_query($sql1) or die("La query no funciona: ".mysql_error());
$uno = mysql_fetch_row($result1);

$sql2 = "SELECT SUM(opc2) FROM chicas";
$result2 = mysql_query($sql2) or die("La query no funciona: ".mysql_error());
$dos = mysql_fetch_row($result2);

$sql3 = "SELECT SUM(opc3) FROM chicas";
$result3 = mysql_query($sql3) or die("La query no funciona: ".mysql_error());
$tres = mysql_fetch_row($result3);

$sql4 = "SELECT id from chicas";
$result4 = mysql_query($sql4) or die("La query no funciona: ".mysql_error());
$total = mysql_num_rows($result4);

print("<b>Rocio</b>, concursante de la 4ª edición de gran hermano. Votos <b>$uno[0]</b><br>");
print("<b>Malena</b>, concursante del Hotel Glam. Votos <b>$dos[0]</b><br>");
print("<b>Marta</b>, colaboradora de VitaminaN, programa de Citytv, televisión local de Barcelona. Votos <b>$tres[0]</b><p>");
print("<center>Total de votos <b>$total</b></center>");

endif;


?>

<form name="f1" action="encuesta.php" method="post">
<h3><b>Que chica te gusta mas?:</b></h3><p>
<b>Rocio</b>, concursante de la 4ª edición de gran hermano.<option name="voto" value="1"><br>
<b>Malena</b>, concursante del Hotel Glam.<option name="voto" value="2"><br>
<b>Marta</b>, colaboradora de VitaminaN, programa de Citytv, televisión local de Barcelona.<option name="voto" value="3"><br>
<input type="submit" name="submit" value=¡Enviar!>

El error es: el siguiente: Parse error: parse error in linia 28 la linea 28 es:

mysql_query($sql) or die("La query no funciona: ".mysql_error());


Las otras consultas no te fijes, pq aun las tengo q modificar, el error esta en la primera consulta, los campos de la tabla son id, chicas y votacion, no se q mas datos pasarte, el id es not null, auto_increment y el campo de votacion todos empiezan en 0
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #8 (permalink)  
Antiguo 16/06/2003, 06:24
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Te falta cerrar las comillas de la consulta:

$sql = "UPDATE chicas SET votacion=votacion+1 WHERE id='$voto'";

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #9 (permalink)  
Antiguo 16/06/2003, 06:47
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 874
Antigüedad: 14 años, 6 meses
Puntos: 2
ostia, q error mas tonto, gracias

Ya me funciona a la perfección
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
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.
Tema Cerrado

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




La zona horaria es GMT -6. Ahora son las 10:12.