Foros del Web » Programando para Internet » PHP »

ayuda con PHP-bases de datos-consultas de registros

Estas en el tema de ayuda con PHP-bases de datos-consultas de registros en el foro de PHP en Foros del Web. Hola: Tengo una base de datos creada, de personas. Quiero realizar una consulta "discriminatoria", es decir, que se pueda seleccionar las personas Hombres o las ...
  #1 (permalink)  
Antiguo 21/02/2005, 11:27
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
ayuda con PHP-bases de datos-consultas de registros

Hola:
Tengo una base de datos creada, de personas. Quiero realizar una consulta "discriminatoria", es decir, que se pueda seleccionar las personas Hombres o las personas Mujeres.
En la base de datos el campo se llama sexo y es un ENUM que puede tener los valores "M" para hombres" y "F" para mujeres.
Para ello tengo un formulario con dos radio buttons (en realidad con uno solo ya que tengo puesto el mismo name para las dos opciones), para seleccionar si la consulta es para mostrar todos los hombres o todas las muejeres.
Entonces, mi pregunta es, a la hora de realizar la consulta en otro archivo (que recoge los valores del formulario), ¿cómo hago para que "discrimine", es decir, para que recoja bien la consulta?
  #2 (permalink)  
Antiguo 21/02/2005, 11:52
Avatar de eft0  
Fecha de Ingreso: junio-2003
Ubicación: Santiago - Chile
Mensajes: 635
Antigüedad: 20 años, 10 meses
Puntos: 9
Si es un formulario de tipo POST:

$sexo = $_POST['nombre_del_radiobutton']

(Si es GET utilizar $_GET)

Y en la consulta: SELECT * FROM [tabla] WHERE sexo='$sexo'

Lindo y simple.

Saludos!
  #3 (permalink)  
Antiguo 21/02/2005, 13:38
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Nada. No hay manera. Lo curioso es que después de poner el comienzo de lo que me cuentas ($sexo=$_POST['cate'];) hago:
echo $sexo;

y en el resultado no pone nada... O sea, que parece que no pasa la variable del radio button. ¿Por qué?
Tengo definido el radio_button tal que así: (Tal como me han enseñado....)

<input type="radio" name="cate" value="M">
hombres
<input type="radio" name="cate" value="F">

También he probado a probar el value numérico, o bien "hombres" y "mujeres", pero nada.... ¡No hay manera! Estoy muy extrañado, pq la consulta la hace, es decir, lista TODOS los registros, sin ningun tipo de discriminacion, además de no indicarme nada acerca del "echo $sexo" que he puesto...
  #4 (permalink)  
Antiguo 21/02/2005, 13:58
Avatar de eft0  
Fecha de Ingreso: junio-2003
Ubicación: Santiago - Chile
Mensajes: 635
Antigüedad: 20 años, 10 meses
Puntos: 9
Supongo que lo tienes dentro de un formulario ?:

<form name="frm1" method="POST" action="archivo.php">
<input type="radio" name="cate" value="M">
hombres
<input type="radio" name="cate" value="F">
</form>

Ve si es así como lo tienes, y nos cuentas.

Saludos.
  #5 (permalink)  
Antiguo 21/02/2005, 14:05
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Eso es, así lo tengo.
El archivo del action se llama consulta1.php y lo tengo puesto. (En mi ordenador lo tengo en un subdirectorio llamado "consultas")

<form name="form1" method="post" action="consultas/consulta1.php">

Y luego, lo ya comentado, la definicion del radio button.

<input type="radio" name="cate" value="M">hombres
<input type="radio" name="cate" value="F">mujeres
  #6 (permalink)  
Antiguo 21/02/2005, 14:45
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
He intentado hacermelo bien sencillo para ver si asi encontraba la forma, pero sigue sin pasarse el valor del radio... A continuacion pongo que tengo puesto en el codigo del formulario y en el codigo del archivo que recoge los valores:

FORMULARIO (Todo en HTML):

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="vengayados.php">
<input type="radio" name="cate" value="F" checked>mujeres
<input type="radio" name="cate" value="M">hombres
<br />
<input type="submit" name="Submit" value="ENVIAR">

</form>
</body>
</html>

Y ahora, el archivo que se llama "vengayados.php":

<?php
$link=mysql_connect("localhost","root","jon") or die("No se conectó con el servidor");

$base="pruebas";
$tabla="demo4";
mysql_select_db($base,$link);
$cate=$POST['cate'];
echo $cate;
?>
  #7 (permalink)  
Antiguo 21/02/2005, 14:48
Avatar de eft0  
Fecha de Ingreso: junio-2003
Ubicación: Santiago - Chile
Mensajes: 635
Antigüedad: 20 años, 10 meses
Puntos: 9
Aqui esta el problema:

$cate=$POST['cate'];

Tiene que ser:
$cate = $_POST['cate'];
(OJO con el "_")

Saludos!
  #8 (permalink)  
Antiguo 22/02/2005, 02:24
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
por fin!!!!

Hola!
Ante todo gracias por la ayuda. Pero debo comentar que no era ese el problema. Bueno, sí lo era, pero eso en el segundo caso que comenté más simplificado. Originalmente lo tenía bien. ¿Qué pasaba? Como siempre, un error bastante estúpido, que son siempre los más difíciles de encontrar... Resulta que para enviar los valores, solamente habia puesto un enlace. En lugar de un botón para "submit", solo puse un simple enlace, y claro, el enlace no pasa ningún valor... ¡Por eso no me salía nada al hacer el echo!

Gracias a la inspiración divina en la cama, pensando en ello, me di cuenta.

Lo dicho, gracias por la ayuda!
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 07:25.