Foros del Web » Programando para Internet » PHP »

Select dinámico con multiconsulta

Estas en el tema de Select dinámico con multiconsulta en el foro de PHP en Foros del Web. ¡Buenas a todos! Veréis, tengo 3 tablas relacionas de la forma siguiente: personas : IdPersona, Nombre usuarios : IdUsuario, Nombre, IdPersona aplicaciones : IdAplicacion, Nombre, ...
  #1 (permalink)  
Antiguo 26/05/2011, 04:22
 
Fecha de Ingreso: mayo-2011
Mensajes: 5
Antigüedad: 13 años, 6 meses
Puntos: 0
Select dinámico con multiconsulta

¡Buenas a todos!

Veréis, tengo 3 tablas relacionas de la forma siguiente:

personas: IdPersona, Nombre
usuarios: IdUsuario, Nombre, IdPersona
aplicaciones: IdAplicacion, Nombre, IdUsuario

El select dinámico lo hago así:

Código PHP:
<div>
    <form name="formpersonas" action="webusers/personas.php" method="post">
    <label>Personas</label>
    <select name="selpersonas">
    <option value="blank1" selected="selected"></option>
    <?php
        $consulta1 
mysql_query("SELECT IdPersona, Nombre FROM personas");
        while(
$row1 mysql_fetch_array($consulta1)) 
        {
            
//$idp=$row1[0];
            //$nombrep=$row1[1];
                        //echo "<option value='" .$idp."'>" .$nombrep."</option>";
            
echo "<option value='" .$row1['IdPersonas']."'>" .$row1['Nombre']."</option>";    
        }
    
?>
    <input type="submit" name="buscar" value="Buscar" />
    </select></br>
    </form>
Lo que no consigo hacer es pasar los valores por POST para efectuar la consulta y además hacer que si selecciono la persona "1", me lo relacione con el usuario y a su vez, las aplicaciones que estén relacionadas con ese usuario.

Código PHP:
$sql="SELECT * FROM personas INNER JOIN (usuarios) ON (personas.IdPersona = usuarios.IdPersona) where personas.IdPersona = '".$_POST[¿?]."'" or die(mysql_error());
    
    
$result mysql_query($sql$con);
    
$total mysql_num_rows($result);
    if (
$row mysql_fetch_array($result))
    {
        echo(
"".$row['Nombre']."");
    } 
A ver si me podéis echar una mano.

Saludos
  #2 (permalink)  
Antiguo 26/05/2011, 04:47
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: Select dinámico con multiconsulta

Bueno... pues básicamente tu quieres que se seleccione todo a partir de la primera tabla? es decir, al cambiar el primer select?

Puedes hacer un onchange="this.submit()"

La select la haría así:

Código PHP:
Ver original
  1. $idPersona = false;
  2. if(isset($_POST['selpersonas'])) {
  3. $idPersona = $_POST['selpersonas'];
  4. }
  5. $sql = 'SELECT * FROM ((personas p NATURAL JOIN usuarios u) NATURAL JOIN aplicaciones a)';
  6. if($idPersona) {
  7. $sql .= ' where p.IdPersona =  ' . $idPersona;
  8. }

Verifica la consulta que esta hecha de memoriaa

Un saludo!

Última edición por miktrv; 26/05/2011 a las 04:53
  #3 (permalink)  
Antiguo 27/05/2011, 03:45
 
Fecha de Ingreso: mayo-2011
Mensajes: 5
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Select dinámico con multiconsulta

Buenas miktrv,

Gracias por tu respuesta. He puesto el código que me has pasado y no veo nada al printar, te pego como lo he dejado.

Código PHP:
<?php
    $con
=mysql_connect("localhost","root","");
    
$base=mysql_select_db("gestionusuarios"$con);
    
    
$idPersona false;
    if(isset(
$_POST['selpersonas'])) {
    
$idPersona $_POST['selpersonas'];
    }
    
$sql 'SELECT * FROM ((personas p NATURAL JOIN usuarios u) NATURAL JOIN aplicaciones a)';
    if(
$idPersona) {
        
$sql .= ' where p.IdPersona =  ' $idPersona;
    }
    
$result mysql_query($sql$con);
    
$total mysql_num_rows($result);
    if (
$row mysql_fetch_array($result))
    {
        echo(
"".$row[0]."");
    }
?>
A lo mejor he hecho algún fallo, aún soy algo novato con PHP.

Saludos
  #4 (permalink)  
Antiguo 27/05/2011, 05:12
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: Select dinámico con multiconsulta

Hola buenas,

Puedes hacer un echo mysql_error();

Si no te devuelve nada, el error estará por el código... díme algo y lo miramos

Un saludo!
  #5 (permalink)  
Antiguo 30/05/2011, 03:51
 
Fecha de Ingreso: mayo-2011
Mensajes: 5
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Select dinámico con multiconsulta

Hola,

Perdona que te conteste tan tarde pero estuve fuera durante el fin de semana.

Probé a poner el mysql_error()

Código PHP:
$sql 'SELECT * FROM ((personas p NATURAL JOIN usuarios u) NATURAL JOIN aplicaciones a)' or die(mysql_error()); 
Y no me aparece ningún mensaje de error.

No sé que puede ser :/

Saludos
  #6 (permalink)  
Antiguo 30/05/2011, 06:43
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: Select dinámico con multiconsulta

porque no pruebas esa consulta en tu phpmyadmin para saber que te devuelve?

Un saludo!
  #7 (permalink)  
Antiguo 30/05/2011, 07:19
 
Fecha de Ingreso: mayo-2011
Mensajes: 5
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Select dinámico con multiconsulta

Buenas,

En phpmyadmin he puesto
Código PHP:
SELECT FROM ((personas p NATURAL JOIN usuarios uNATURAL JOIN aplicaciones awhere p.IdPersona 
y me muestra la tabla con los resultados correctamente.

Es posible que el error está en los valores que vienen por POST?


PD: Coño, menuda pajara llevo. Le estaba pasando mal el nombre desde el select. En la consulta me printa bien la IdPersona, lo que me da error es en el print.

¡Ya me printa todos los valores!

Muchas gracias miktrv

Última edición por daf0; 30/05/2011 a las 07:35
  #8 (permalink)  
Antiguo 30/05/2011, 07:36
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: Select dinámico con multiconsulta

Cita:
Iniciado por daf0 Ver Mensaje
Buenas,

En phpmyadmin he puesto
Código PHP:
SELECT FROM ((personas p NATURAL JOIN usuarios uNATURAL JOIN aplicaciones awhere p.IdPersona 
y me muestra la tabla con los resultados correctamente.

Es posible que el error está en los valores que vienen por POST?


PD: Coño, menuda pajara llevo. Le estaba pasando mal el nombre desde el select. En la consulta me printa bien la IdPersona, lo que me da error es en el print.

¡Ya me printa todos los valores!

Muchas gracias miktrv
Puedes mostrar los campos de las tablas y decirme los que quieres mostrar?

NOTA: Puedes hacer un print_r de tu resultado para ver lo que te devuelve.

Creo que ya lo tienes solucionado, no? de nadaa! :)

Un saludo!

Última edición por miktrv; 30/05/2011 a las 07:45

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 12:12.