Foros del Web » Programando para Internet » PHP »

Un problema con selects + PHP

Estas en el tema de Un problema con selects + PHP en el foro de PHP en Foros del Web. Miren,tengo un simple y bulgar script en HTML,pero es bastante largo,así que directamente voy a plantear el problema que tengo...tengo un formulario,con 15 SELECTS,cada select ...
  #1 (permalink)  
Antiguo 06/10/2005, 20:23
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Un problema con selects + PHP

Miren,tengo un simple y bulgar script en HTML,pero es bastante largo,así que directamente voy a plantear el problema que tengo...tengo un formulario,con 15 SELECTS,cada select tiene los mismos contenidos entre los 15..pero cambia de acuerdo al que lo esté mirando. Es decir.. la idea...es que cada select refleje el numero y los nombres de los JUGADORES que tiene cada USUARIO. Cada USUARIO tiene un X numero de JUGADORES. Este numero es diferente entre otros usuarios. Es decir "Saldu" puede tener 23 jugadores,pero "Pepito" puede tener 12... bueno... el problema está en que no sé cómo hacer la sentencia en php,y demás... necesito hacer que los 15 selects muestren la cantidad de jugadores que tiene el usuario que está mirando esa sección,y los nombres de ellos. Osea,si "saldu" tiene 23 jugadores,la idea es que los 15 selects muestren todos 23 jugadores,y los nombres de ellos mismos... Pero,si "pepito" está mirando,no tendría que mostrar 23,ya que el tiene 12,entonces tendría que mostrar 12 options values con 12 sus respectivos nombres...

Yo en HTML,a los 15 selects los hize todos así:

<SELECT name="">
<OPTION VALUE="">JUGADOR1</OPTION><OPTION VALUE="">JUGADOR2</OPTION><OPTION VALUE="">JUGADOR3</OPTION><OPTION VALUE="">JUGADOR4</OPTION><OPTION VALUE="">JUGADOR5</OPTION><OPTION VALUE="">JUGADOR6</OPTION><OPTION VALUE="">JUGADOR7</OPTION><OPTION VALUE="">JUGADOR8</OPTION><OPTION VALUE="">JUGADOR9</OPTION><OPTION VALUE="">JUGADOR10</OPTION><OPTION VALUE="">JUGADOR11</OPTION><OPTION VALUE="">JUGADOR12</OPTION><OPTION VALUE="">JUGADOR13</OPTION><OPTION VALUE="">JUGADOR14</OPTION><OPTION VALUE="">JUGADOR15</OPTION>
</SELECT>

Pensando como si el usuario que está mirando eso,tiene 15 jugadores,pero en realidad de mostrar JUGADOR15 tendría que mostrar su nombre,y el numero de ls jugadores de los selects cambia de acuerdo al usuario que lo esté mirando...

Cómo lo hago? qué sentencias? qué query y demás? cómo lo hago? estoy desesperado,y no sé cómo empezar..

Estas son las tablas JUGADORES y USUARIOS:


CREATE TABLE `jugadores` (
`id_jugador` int(10) unsigned NOT NULL auto_increment,
`id_pais` int(11) NOT NULL default '0',
`id_equipo` int(11) NOT NULL default '0',
`nombre` varchar(255) NOT NULL default '',
`apellidos` varchar(255) NOT NULL default '',
`edad` int(2) NOT NULL default '0',
`pases` int(2) NOT NULL default '0',
`tackle` int(2) NOT NULL default '0',
`fisico` int(2) NOT NULL default '0',
`patada` int(2) NOT NULL default '0',
`velocidad` int(2) NOT NULL default '0',
PRIMARY KEY (`id_jugador`)
)


CREATE TABLE `usuarios` (
`codigo` int(4) unsigned NOT NULL auto_increment,
`nombre` varchar(255) default NULL,
`apellido` varchar(255) default NULL,
`pais` varchar(255) default NULL,
`ciudad` varchar(255) default NULL,
`telefono` varchar(255) default NULL,
`domicilio` varchar(255) default NULL,
`username` varchar(255) NOT NULL default '',
`user_password` varchar(255) NOT NULL default '',
`user_email` varchar(255) NOT NULL default '',
`activo` tinyint(1) unsigned NOT NULL default '0',
`equipo` int(4) unsigned NOT NULL,
PRIMARY KEY (`codigo`)
)TYPE=MyISAM
  #2 (permalink)  
Antiguo 06/10/2005, 21:18
 
Fecha de Ingreso: abril-2005
Ubicación: zürich, la rica suiza
Mensajes: 212
Antigüedad: 19 años
Puntos: 2
hola saldu!!

en resumen entendi que si yo tengo 15 jugadores salgan 15 options, tu tienes 3, ves 3. no?
Código PHP:
<?
mysql_select_db
('tubasededatos');
$query "SELECT nombre FROM jugadores ORDER BY RAND()";
$result mysql_query($query);
$xfilas mysql_num_rows($result);

print    (
"<select name='jugador'>");
    for(
$i=0$i<$xfilas$i++){
    
$ResultQuery mysql_fetch_array($result);
    print(
"
    <option value='"
.$ResultQuery['nombre']."'>".$ResultQuery['nombre']."
    "
);
    }
print    (
"</select>");
?>
esto te bota todas tus opciones que tienes en tu base de datos en random. yo tambien uso este script para un juego que estoy haciendo :P y me va perfecto. avisas cualquier cosa

chauu

pd. no mire tus tablas, pero ya acomodalo como quieras
  #3 (permalink)  
Antiguo 06/10/2005, 21:50
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Si..me viene muy bien ..pero yo no c cómo reducir todo esto a depende del usuario... osea..que verifique qué usuario es... si tiene equipo,y qué jugadores,pertenecen a ese equipo... ya que... de la forma que me lo haz dado,lo que hace el script es mstrar en forma aleatoria TODOS los jugadres de la tabla jugadores,sin embargo,tiene que ver de quién es el que está mirando,entendes?
  #4 (permalink)  
Antiguo 07/10/2005, 06:14
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Nadie me puede decir cómo se hace para que el contenido del select sea de acuerdo al usuario que lo esté viendo? xque esto que me pasó PERU es muy interesante,muy bueno,pero muestra a TODOS los jugadores,y yo necesito que muestre a los jugadores que tiene X usuario. No se si me explico.
  #5 (permalink)  
Antiguo 07/10/2005, 06:18
 
Fecha de Ingreso: abril-2005
Ubicación: zürich, la rica suiza
Mensajes: 212
Antigüedad: 19 años
Puntos: 2
osea que yo pueda ver cuantos jugadores tienes tu y poder chekear tambien cuantos jugadores tiene el otro sin que se mesclen?

puedes hacer algo asi, cambiando de bbdd:
Código PHP:
<?
if(!isset($_POST['submit'])){
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="nombre_del_jugador">
<input type="submit" name="submit" value="chekear">
</form>

<?
}else{

$nombre_del_jugador $_POST['nombre_del_jugador'];


mysql_select_db($nombre_del_jugador);
$query "SELECT nombre FROM jugadores";
$result mysql_query($query);
$xfilas mysql_num_rows($result);

print    (
"<select name='jugador'>");
    for(
$i=0$i<$xfilas$i++){
    
$ResultQuery mysql_fetch_array($result);
    print(
"
    <option value='"
.$ResultQuery['nombre']."'>".$ResultQuery['nombre']."
    "
);
    }
print    (
"</select>");

}
?>
  #6 (permalink)  
Antiguo 07/10/2005, 06:26
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Cambiando de base de datos? no entendí.. TODOS los usuarios están en una misma tabla ,la tabla usuarios:

CREATE TABLE `usuarios` (
`codigo` int(4) unsigned NOT NULL auto_increment,
`nombre` varchar(255) default NULL,
`apellido` varchar(255) default NULL,
`pais` varchar(255) default NULL,
`ciudad` varchar(255) default NULL,
`telefono` varchar(255) default NULL,
`domicilio` varchar(255) default NULL,
`username` varchar(255) NOT NULL default '',
`user_password` varchar(255) NOT NULL default '',
`user_email` varchar(255) NOT NULL default '',
`activo` tinyint(1) unsigned NOT NULL default '0',
`equipo` int(4) unsigned NOT NULL,
PRIMARY KEY (`codigo`)
)TYPE=MyISAM

Cada Usuario tiene 1 EQUIPO,y cada equipo jugadores... bueno.. te muestro la tabla EQUIPO,y la Tabla JUGADORES


CREATE TABLE `equipos` (
`id_equipo` int(10) unsigned NOT NULL auto_increment,
`nombre_equipo` varchar(255) NOT NULL default '',
`id_liga` int(11) NOT NULL default '0',
`id_division` int(11) NOT NULL default '0',
`id_entrenador` int(11) NOT NULL default '0',
PRIMARY KEY (`id_equipo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;



CREATE TABLE `jugadores` (
`id_jugador` int(10) unsigned NOT NULL auto_increment,
`id_pais` int(11) NOT NULL default '0',
`id_equipo` int(11) NOT NULL default '0',
`nombre` varchar(255) NOT NULL default '',
`apellidos` varchar(255) NOT NULL default '',
`edad` int(2) NOT NULL default '0',
`pases` int(2) NOT NULL default '0',
`tackle` int(2) NOT NULL default '0',
`fisico` int(2) NOT NULL default '0',
`patada` int(2) NOT NULL default '0',
`velocidad` int(2) NOT NULL default '0',
`hookeo` int(2) NOT NULL default '0',
`scrum` int(2) NOT NULL default '0',
`potencia` int(2) NOT NULL default '0',
`precio` int(11) NOT NULL default '0',
`venta` int(1) NOT NULL default '0',
`id_entrenamiento` int(11) NOT NULL default '0',
PRIMARY KEY (`id_jugador`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  #7 (permalink)  
Antiguo 07/10/2005, 07:43
 
Fecha de Ingreso: abril-2005
Ubicación: zürich, la rica suiza
Mensajes: 212
Antigüedad: 19 años
Puntos: 2
mmmmm, pense que era con diefrentres bases de datos, yo que tu lo haria en un futuro asi, mas comodo y no tan confuso.

pero bueno, entonces usa el WHERE

cambiando el codigo de arriba, seria en resuemn asi.

$query = "SELECT nombre FROM jugadores WHERE id_jugador=$nombre_del_jugador";

no lo he probao, pero deberia funcionar, y le quitas la linea que selectea la bd.

si no es eso, no te entendi :P chauu
  #8 (permalink)  
Antiguo 07/10/2005, 09:47
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Per me refiero que tendría que mostrar por usuario.. no sé cómo explicarlo..pero es que... los usuarios están todos en la tabla USUARIOS,y los jugadores en latabla JUGADORES..la cosa es que muestre los jugadores,de acuerdo de qué usuario l esté viendo..pero $query = "SELECT nombre FROM jugadores WHERE id_jugador=$nombre_del_jugador"; esto no..xque estaría buscando dentro de la tabla jugadores..y la idea es que muestre los jugadores que tiene, X usuario,no sé cómo hacer
  #9 (permalink)  
Antiguo 07/10/2005, 10:07
Avatar de vevni  
Fecha de Ingreso: julio-2005
Ubicación: cancun mexico
Mensajes: 598
Antigüedad: 18 años, 9 meses
Puntos: 3
mmmmm dices tu que si yo pongo "pepe" me saldra la lista de jugadores para ese usuario¡????
ok por lo que veo necesitas hacer una relacion, asi, 1 usuario tiene varios jugadores, para que cuando hagas la consulta, mediante la relacion puedas especificar que a tal usuario le corresponde los jugadores.....


espero que sepas un poco de ER-
digo esa seria mi propuesta, uds que dicen?
  #10 (permalink)  
Antiguo 07/10/2005, 13:35
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Exacto..La cosa está ahí..tiene que verse,no sé cómo hacer la relacion desde php de jugadores con el usuario... xque son 3 tablas.. USUARIOS,EQUIPOS,Y JUGADORES cada usuario tiene 1 equipo,cada equipo tiene jugadores,entiendes? entonces,cómo hago el query para que muestre los jugadores que tiene x ejemplo "Pepe"...??? esa es mi duda..
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 03:36.