Foros del Web » Programando para Internet » PHP »

realizar una consulta especifica con php

Estas en el tema de realizar una consulta especifica con php en el foro de PHP en Foros del Web. buenos dias, tengo el codigo PHP que me realiza una consulta a la BD mysql, para ver los pacientes y las imagenes correspondientes de estos ...
  #1 (permalink)  
Antiguo 20/03/2009, 11:14
Avatar de Nickolas28  
Fecha de Ingreso: enero-2009
Mensajes: 70
Antigüedad: 15 años, 3 meses
Puntos: 0
realizar una consulta especifica con php

buenos dias,

tengo el codigo PHP que me realiza una consulta a la BD mysql, para ver los pacientes y las imagenes correspondientes de estos pacientes. la consulta la realiza bien...pero me piden que la consulta sea de esta forma:

que el doctor solo pueda ver los pacientes que estan con ese Doctor y no ver los demas pacientes de los otros doctores...

¿como podria limitar la consulta d esta manera?

las tablas son:

doctor

id_doctor int(11)
id_clinica int(11)
doctor
cod_doctor
apellido
especial_doc
fecha_ingreso

paciente

id_clinica
id_doctor
id_tipo
cedula
nombre
apellido
estado
tramite
detalle
fecha
general
observaciones

el codigo para la consulta que llama en un select a la clinica, doctores y tipod e clinica es este:

<?php
require("../../estilos/cabeza.html");
?>
<?
//si ya se presiono el boton submit
if (!empty($_POST['enviado'])){
$id_categoria = $_POST['id_categoria'];
$id_subcategoria = $_POST['id_subcategoria'];
$id_marca = $_POST['id_marca'];
$referencia=$_POST['referencia'];

require ("../../cfg/conexion.cfg.php");
echo "<h1>CONSULTAR PACIENTE</h1>";
$resultado= mysql_query("SELECT id_categoria, id_subcategoria, id_marca, referencia, nombre, apellido, detalle, fecha, observaciones FROM `productos` WHERE (id_categoria = '$id_categoria' && id_subcategoria = '$id_subcategoria' && id_marca = '$id_marca' && referencia = '$referencia')") or die ("Fallo en la seleccion de los registross");
$i = 1;
$cont = 0;
$por[0]= "C&Eacute;DULA";
$por[1]= "NOMBRE";
$por[2]= "APELLIDO";
$por[3]= "TIPO DE EX&Aacute;MEN";
$por[4]= "FECHA DE INGRESO";
$por[5]= "OBSERVACIONES";
while ($registro = mysql_fetch_row($resultado)){
foreach($registro as $clave){
if ($i == 1){

// se cambia id_categoria por el nombre de la categoria
$resultados= mysql_query("SELECT categoria FROM `categoria` WHERE (id_categoria = '$clave')") or die ("Fallo en la seleccion de los registross");

$datosca = mysql_fetch_array($resultados);//contiene el nombre de la categoria
//$datos[0] devuelve el nombre de la categoria
////fin se cambia id_categoria por el nombre de la categoria////////////////////
echo "<br><b>Cl&iacute;nica</b><br/>".$datosca[0]."<br>";
$i = 2;
}
elseif ($i == 2){
// se cambia id_subcategoria por el nombre de la categoria
$resultadosub= mysql_query("SELECT subcategoria FROM `subcategoria` WHERE (id_subcategoria = '$clave')") or die ("Fallo en la seleccion de los registros");

$datossubca = mysql_fetch_array($resultadosub);//contiene el nombre de la categoria
//$datos[0] devuelve el nombre de la categoria
////fin se cambia id_subcategoria por el nombre de la categoria////////////////////
echo "<br><B>Doctor</B><br>".$datossubca[0]."<br>";
$i = 3;
}
elseif($i == 3){
// se cambia id_marca por el nombre de la categoria
$resultadomar= mysql_query("SELECT marca FROM `marca` WHERE (id_marca = '$clave')") or die ("Fallo en la seleccion de los registros");

$datosmarca = mysql_fetch_array($resultadomar);//contiene el nombre de la categoria
//$datos[0] devuelve el nombre de la categoria
////fin se cambia id_marca por el nombre de la categoria////////////////////
echo "<br><B> Tipo de cl&iacute;nica</B><br>".$datosmarca[0]."<br>";
$i = 0;

}
else{


echo "<br><b>".$por[$cont]."</b><br>".$clave."</br>";
$cont++;


}
}
}


}

//sino se ha presionado el boton submit
else {
echo "<h1>CONSULTAR PACIENTE</h1>";
echo"<form action=\"p_ag_consulta.php\" method=\"post\">Seleccione la cl&iacute;nica para el paciente:<br>";
$id_categoria=$_POST['id_clinica'];
$id_subcategoria=$_POST['id_doctor'];
$id_marca=$_POST['id_tipo'];

// Select categoria
echo "<select name=\"id_categoria\" onChange=\"this.form.submit()\"><option value=\"-\">--</option>";
require ("../../cfg/conexion.cfg.php");
$resultado= mysql_query("SELECT id_clinica,clinica FROM `categoria` ORDER BY clinica ASC") or die ("Fallo en la seleccion de los registros");
$i = 1;
while ($registro = mysql_fetch_row($resultado)){
foreach($registro as $clave){

if ($i == 1){
// selecciona la que escogio con anterioridad
if ($id_clinica == $clave){
echo "<option value=\"".$clave."\" selected>";
$i = 2;
}
else{
echo "<option value=\"".$clave."\">";
$i = 2;
}

}
else{
echo $clave."</option>";
$i = 1;
}


}
}


echo "</select><br>";
//fin de select clinica





// si ya se selecciono una clinica
//selleciona un doctor
echo "<br/>Seleccione el Doctor asignado para el paciente:<br/>";
echo "<select name=\"id_doctor\" onChange=\"this.form.submit()\"><option value=\"-\">--</option>";

$resultado= mysql_query("SELECT id_doctor,doctor FROM `doctor` WHERE (id_doctor = '$id_clinica')ORDER BY doctor ASC") or die ("Fallo en la seleccion de los registros");
$i = 1;
while ($registro = mysql_fetch_row($resultado)){
foreach($registro as $clave){

if ($i == 1){
// selecciona la que escogio con anterioridad
if ($id_doctor == $clave){
echo "<option value=\"".$clave."\" selected>";
$i = 2;
}
else{
echo "<option value=\"".$clave."\">";
$i = 2;
}

}
else{
echo $clave."</option>";
$i = 1;
}


}
}
echo "</select><br/><br/>";
//fin seleccione undoctor
//fin si ya selecciono una clinica

//si ya selecciono una doctor
//selecciona un tipo

echo "Seleccione el Tipo de cl&iacute;nica para el paciente:<br>";
echo "<select name=\"id_tipo\" onChange=\"this.form.submit()\">";
echo "<option value=\"-\">--</option>";

$resultado= mysql_query("SELECT id_marca FROM `productos` where (id_clinica= '$id_clinica' && id_doctor='$id_doctor') GROUP BY Id_marca") or die ("Fallo en la seleccion de los registros");

while ($registro = mysql_fetch_row($resultado)){
foreach($registro as $clave){


if ($id_marca == $clave){
echo "<option value=\"".$clave."\" selected>";
}
else{
echo "<option value=\"".$clave."\">";
}


$resultadom= mysql_query("SELECT tipo FROM `tipo` where (id_tipo = '$clave')") or die ("Fallo en la seleccion de los registros");
$nom_marca = mysql_fetch_array($resultadom);

echo $nom_tipo[0]."</option>";





}
}


echo "</select><br><br/>";


//fin selecciona una tipo
//fin si ya selecciono un doctor


//si ya selecciono una tipo
//selecciona una cedula

echo "Seleccione una c&eacute;dula para el paciente:<br>";
echo "<select name=\"cedula\">";
echo "<option value=\"-\">--</option>";


$resultado= mysql_query("SELECT cedula FROM `pacientes` where (id_clinica = '$id_clinica' && id_doctor = '$id_doctor' && id_tipo = '$id_tipo') ORDER BY cedula ASC") or die ("Fallo en la seleccion de los registros");
$i = 1;
while ($registro = mysql_fetch_row($resultado)){

foreach($registro as $clave){
echo "<option value=\"".$clave."\">".$clave."</option>";
}
}


echo "</select>";


//fin selecciona un tipo
//fin si ya selecciono un doctor



echo "<br><br><input type=\"submit\" value=\"Consultar\" name=\"enviado\"></form>";
}
?>



agracederia su ayuda.
  #2 (permalink)  
Antiguo 20/03/2009, 11:23
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Información Respuesta: realizar una consulta especifica con php

La consulta para ...

Cita:
Iniciado por Nickolas28 Ver Mensaje
que el doctor solo pueda ver los pacientes que estan con ese Doctor y no ver los demas pacientes de los otros doctores...
sería...

Código PHP:
SELECT FROM paciente WHERE id_doctor 'el_id_del_doctor'
Saludos!
  #3 (permalink)  
Antiguo 20/03/2009, 11:32
 
Fecha de Ingreso: febrero-2009
Ubicación: Cusco - Peru
Mensajes: 142
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: realizar una consulta especifica con php

Lo basico seria realizar un JOIN entre tu tabla paciente y tu tabla doctor donde el id del doctor sea el iddoctor del paciente y que este iddoctor sea el id del doctor que estas seleccionando:

osea

Código PHP:
$iddoctor // id del doctor que buscas

$sql="SELECT * FROM doctor INNER JOIN paciente ON doctor.id_doctor=paciente.id_doctor WHERE doctor.id_doctor=".$iddoctor
Luego remplazas el * por los campos que necesites.
  #4 (permalink)  
Antiguo 20/03/2009, 11:36
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Pregunta Respuesta: realizar una consulta especifica con php

Cita:
Iniciado por kerverin Ver Mensaje
Lo basico seria realizar un JOIN entre tu tabla paciente y tu tabla doctor donde el id del doctor sea el iddoctor del paciente y que este iddoctor sea el id del doctor que estas seleccionando:

osea

Código PHP:
$iddoctor // id del doctor que buscas

$sql="SELECT * FROM doctor INNER JOIN paciente ON doctor.id_doctor=paciente.id_doctor WHERE doctor.id_doctor=".$iddoctor
Luego remplazas el * por los campos que necesites.
Demasiado rebuscado no crees?

En la tabla paciente ya tenemos la clave foranea 'id_doctor', no sería mas sencillo hacer un

Código PHP:
where id_doctor 'el_id_del_matasanos' 
La consulta completa, sería la que publiqué en mi anterior POST.


PD: Que opinas amigo?

Saludos!
  #5 (permalink)  
Antiguo 20/03/2009, 13:39
Avatar de Nickolas28  
Fecha de Ingreso: enero-2009
Mensajes: 70
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: realizar una consulta especifica con php

bien amigo...ya voy entendiendo mejor.

entonces lo que hago es realizar el form de y luego llamo esta consulta SELECT * FROM paciente WHERE id_doctor = 'el_id_del_doctor'; de que manera... o la implemento dentro de la que ya esta? me podrias explicar mas detallado.

te agradezco.
  #6 (permalink)  
Antiguo 20/03/2009, 13:44
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: realizar una consulta especifica con php

Mira, si tienes un sistema asi, quiere decir que cada doctor tiene su cuenta, cierto?
Bueno si guardas su id en una variable de sessión, puedes hacer el select para mostrar solo sus pacientes.
De la forma que te ha dicho el amigo.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #7 (permalink)  
Antiguo 20/03/2009, 13:49
Avatar de Nickolas28  
Fecha de Ingreso: enero-2009
Mensajes: 70
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: realizar una consulta especifica con php

Cita:
Iniciado por the_web_saint Ver Mensaje
Mira, si tienes un sistema asi, quiere decir que cada doctor tiene su cuenta, cierto?
Bueno si guardas su id en una variable de sessión, puedes hacer el select para mostrar solo sus pacientes.
De la forma que te ha dicho el amigo.

Saludos
es que en el sistema se puede crear el usuario y la contraseña con un nivel de acceso( no se si han visto el script de cluster)...entonces lo que me dices es que se tendria que crear un usuario y contraseña para cada doctor? si fuese asi como lamacenaria ese id en una variable de session como dices.
  #8 (permalink)  
Antiguo 20/03/2009, 14:06
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: realizar una consulta especifica con php

Mira, cada doctor tendrá acceso a la aplicación, cierto?, es decir que tendra que acceder por medio de un user y pass, obviamente cuando se creo su usuario se le asigno su nivel de acceso(admin, etc). Cuando se registre al sistema, que verifiques que tanto el user y pass es correcto y le des acceso a la aplicación, guardas su id en una variable de sesión, este id, por lo general es el resultado de la consulta a la DB con el user y pass que se introdujo:
Código php:
Ver original
  1. $_SESSION['id_doctor']=$resultado['id'];

Además puedes guardar otros datos para usarlos despúes.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #9 (permalink)  
Antiguo 20/03/2009, 14:26
Avatar de Nickolas28  
Fecha de Ingreso: enero-2009
Mensajes: 70
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: realizar una consulta especifica con php

Cita:
Iniciado por the_web_saint Ver Mensaje
Mira, cada doctor tendrá acceso a la aplicación, cierto?, es decir que tendra que acceder por medio de un user y pass, obviamente cuando se creo su usuario se le asigno su nivel de acceso(admin, etc). Cuando se registre al sistema, que verifiques que tanto el user y pass es correcto y le des acceso a la aplicación, guardas su id en una variable de sesión, este id, por lo general es el resultado de la consulta a la DB con el user y pass que se introdujo:
Código php:
Ver original
  1. $_SESSION['id_doctor']=$resultado['id'];

Además puedes guardar otros datos para usarlos despúes.

Saludos
ya entiendo mejor la solucion, es que la verdad no soy tan experto y no he manejado muy bien lo de sessiones...entonces segun esto la variable de session la defino en el archivo al que se accesa... en este caso al archivo donde va la consulta?
  #10 (permalink)  
Antiguo 20/03/2009, 14:36
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: realizar una consulta especifica con php

Normalmente se hace despues de verificar que los datos introducidos en la pantalla de ingreso son correctos y existe un usuario con estos, así se trae el id del usuario que correspondio con estos datos y se guarda en sesión.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
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 04:08.