Foros del Web » Programando para Internet » PHP »

Ayuda SELECT

Estas en el tema de Ayuda SELECT en el foro de PHP en Foros del Web. Hola tengo la siguiente consulta. Código PHP: tabla animales: aid int(11) NOT NULL auto_increment, raza_id int(11) default NULL, nombre_del_animal varchar(50) NOT NULL default '', tabla razas: raza_id int(11) NOT NULL auto_increment, nombre_raza varchar(50) NOT NULL default '', AQUI SELECCIONO PARA ENVIAR LA CONSULTA A LA TEXTERA <label for="ids"></label> <select name="aid"  id="ids" onChange="R()"> <option selected="selected"> Seleccion:</option> <? // ID de la categoria seleccionada mi caso 1 $CULO  =  mysql_query ( "SELECT * FROM animales LEFT JOIN razas ON animales.raza_id=razas.raza_id where razas.raza_id=1" ...
  #1 (permalink)  
Antiguo 14/01/2011, 16:39
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Ayuda SELECT

Hola tengo la siguiente consulta.


Código PHP:

tabla animales:
aid int(11) NOT NULL auto_increment,
raza_id int(11) default NULL,
nombre_del_animal varchar(50) NOT NULL default '',


tabla razas:
raza_id int(11) NOT NULL auto_increment,
nombre_raza varchar(50) NOT NULL default '',


AQUI SELECCIONO PARA ENVIAR LA CONSULTA A LA TEXTERA
<label for="ids"></label>
<select name="aid"  id="ids" onChange="R()">
<option selected="selected"> Seleccion:</option>
<?
// ID de la categoria seleccionada mi caso 1
$CULO mysql_query("SELECT * FROM animales LEFT JOIN razas ON animales.raza_id=razas.raza_id where razas.raza_id=1"); 

while (
$consulta mysql_fetch_array($CULO)) {
$NAnimal $consulta["nombre_del_animal"];
$raza_id $consulta["raza_id"];
$aid $consulta["aid"];
$nombre_raza $consulta["nombre_raza"];
echo 
"<option value=$aid>$NAnimal :  Nombre $NAnimal , Raza $nombre_raza , ID $raza_id</option>";  
// Despues de los dos puntos la respuesta va en la textera
}
?>  
</select>
<textarea name="agente-agente-arresteme-pronto" cols="100" rows="6" id="R"></textarea>


En la Tabla de animales tengo por el momento tres animales

ID 1 Fify
ID 2 Pericles
ID 3 Fifulais

En la Tabla de razas tengo por el momento tres razas

ID 1 Chipsu
ID 2 Billy
ID 3 Bulldog

En los campos del DB tango asi:

Animales) ----------------- (Razas)
aid -- nombre_del_animal --- raza_id
ID-1-- Fify ---------------- 1 ->"Chipsu"
ID-2-- Pericles ------------ 2 ->"Billy"
ID-3-- Fifulais ------------ 3 ->"Bulldog"

Respuesta seria asi si selecciono a Fify:
<textarea name="agente-agente-arresteme-pronto" cols="100" rows="6" id="R">
Nombre Fify , Raza Chipsu , ID 1
</textarea>

Pero cuando selecciono a Fify me sale esto:
<textarea name="agente-agente-arresteme-pronto" cols="100" rows="6" id="R">
Nombre Pericles , Raza Billy , ID 2
</textarea>

Y si selecciono otra opcion:

Pero cuando selecciono a Fifulais me sale esto:
<textarea name="agente-agente-arresteme-pronto" cols="100" rows="6" id="R">
Nombre Fify , Raza Chipsu , ID 1
</textarea>

Pueden decirme donde estoy mal?
  #2 (permalink)  
Antiguo 14/01/2011, 17:58
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: Ayuda SELECT

si te sirve yo lo haria asi para seleccionar desde el select :
Código PHP:
Ver original
  1. <?php
  2. $dbhost='localhost';
  3.  
  4. $dbname='NOMBRE BASE DATOS';
  5.  
  6. $dbuser='USUAROIO';
  7.  
  8. $dbpass='CONTRASEÑA';
  9.     $sql=mysql_connect($dbhost,$dbuser,$dbpass);
  10.     if(!$sql) {
  11.         echo "<h1>NO CONEXION!!</h1><hr noshade size=2 color=#000000>";
  12.         exit();
  13.     }
  14.     $db_sel=mysql_select_db($dbname,$sql);
  15.     if(!$db_sel) {
  16.         echo "<h1>NO EXISTE LA BASE DATOS!</h1><hr noshade size=2 color=#000000>";
  17.         exit();
  18.     }
  19. /*tabla animales:
  20. CREATE TABLE IF NOT EXISTS `animales` (
  21.   `raza_id` int(11) NOT NULL auto_increment,
  22.   `nombre_del_animal` varchar(50) NOT NULL default '',
  23.   PRIMARY KEY  (`raza_id`)
  24. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
  25.  
  26. tabla razas:
  27. CREATE TABLE IF NOT EXISTS `razas` (
  28.   `raza_id` int(11) NOT NULL auto_increment,
  29.   `nombre_raza` varchar(50) NOT NULL default '',
  30.   PRIMARY KEY  (`raza_id`)
  31. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
  32.  
  33. AQUI SELECCIONO PARA ENVIAR LA CONSULTA A LA TEXTERA */
  34. ?>
  35. <label for="ids">seleccionar raza</label>
  36.  
  37. <?php
  38.  
  39.     $consulta="select * from animales where raza_id=1";
  40.     $respuesta=mysql_query($consulta);
  41. ?>
  42.       <select size="1" name="category_id">
  43.      <option value="all">animales</option>
  44.           <?php
  45.             while($row2=mysql_fetch_array($respuesta))
  46.            {
  47.          ?>
  48.           <option value="<?php echo $row2['raza_id'];?>"><?php echo $row2['nombre_del_animal']; ?></option>
  49.           <?php
  50.             } ?>
  51.         </select>

el id de la consulta dede ser pasado desde otro form y la respuesta debe recibirla
otro campo del formulario, eso se llama select dependientes ...

bueno ahi tenes un select simple pero efectivo ahora falta que tu sepas administrar los parametros...

saludos!!
  #3 (permalink)  
Antiguo 14/01/2011, 20:08
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayuda SELECT

estoy usando un LEFT JOIN y lo que esta ahi no me sirve ya lo probe de todos modos gracias
  #4 (permalink)  
Antiguo 14/01/2011, 22:44
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Ayuda SELECT

Código SQL:
Ver original
  1. -- Consulta sobre raza o sobre animales?
  2. SELECT * FROM animales LEFT JOIN razas ON animales.raza_id=razas.raza_id WHERE razas.raza_id=1
  3.  
  4. -- Si quieres todos los animales de una misma raza
  5. -- Entonces haz el filtro con la tabla "animales"
  6. SELECT * FROM animales LEFT JOIN razas ON animales.raza_id=razas.raza_id WHERE animales.raza_id=1
  7.  
  8. -- Si quieres todas las razas de un mismo animal
  9. -- Imposible... pero la consulta seria asi:
  10. SELECT * FROM razas LEFT JOIN animales ON razas.raza_id=animales.raza_id WHERE razas.raza_id=1

En FROM coloca la tabla "primaria" de tu consulta, en JOIN las "secundarias" y el filtro aplicado en campos de la "primaria".

No estoy seguro de que esto corrija el problema con los resultados, pero al menos es mas logico y facil de entender cuando se requiera modificar la consulta.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 15/01/2011, 12:54
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayuda SELECT

Hola Triby

Gracias siempre de gran ayuda, resulta que probe asi.

Código PHP:
<?
// CAMBIE ESTE 
$CULO mysql_query("SELECT * FROM animales LEFT JOIN razas ON animales.raza_id=razas.raza_id where razas.raza_id=1"); 
// POR ESTE
$CULO mysql_query("SELECT * FROM animales LEFT JOIN razas ON animales.raza_id=razas.raza_id WHERE animales.raza_id=1"); 
while (
$consulta mysql_fetch_array($CULO)) {
$NAnimal $consulta["nombre_del_animal"];
$raza_id $consulta["raza_id"];
$aid $consulta["aid"];
$nombre_raza $consulta["nombre_raza"];
echo 
"<option value=$aid>$NAnimal :  Nombre $NAnimal , Raza $nombre_raza , ID $raza_id</option>";  
// Despues de los dos puntos la respuesta va en la textera
}
?>
Y SIGUE IGUAL

Tengo dos select, en el segundo selecc copio todo el php y cambio de esta forma "raza_id_=2" y funciona bien sin problemas hago la seleccion y me da la respuesta que necesito, y eso que estoy usando el mismo codigo, pero en el primero es el problema, la pregunta es por que la segunda seleccion funciona bien y la primera no..? donde estoy mal...

Etiquetas: select
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 10:20.