PDA

Ver la Versión Completa : Consulta en mas de una tabla con PHP


DARKSISTEMS
10-04-2012, 05:02:22
Muy buenas, necesito una gran ayuda ya que tengo que generar una consulta impresa de una base de datos pero he podido realizara solo usando una tabla pero no entrelazándolas la base de datos se denomina constik, y consta de 3 tablas
la primera es paciente, con 9 campos (con, tipdoc,numdoc, priape, segape, prinom,segnom,eps,fecha)
la segunda se denomina stiker con 3 campos (con,fecha, paciente)
la tercera es tipdoc solo con 2 campos (con, decri)
con en todas es el consecutivo o numero de verificación, la idea es car impresos tres veces en forma horizontal los siguientes datos

nombre completo (priape, segape, prinom,segnom)
numero de documento (numdoc) tipo de documento (decrip)
eps (eps) y fecha de creacion del stiker (stiker.fecha)

intente con este php pero solo toma los datos de paciente
<?PHP

include("conlec.php");

$listdoc = mysql_query("SELECT * FROM paciente WHERE numdoc like '%".$_POST["selectbox"]."%'");

While ($consulta = mysql_fetch_array($listdoc)){
echo '<br>Documento Numero:'.$consulta ["numdoc"].'-'.$consulta["tipdoc"].
'<br>Nombre:'.$consulta["prinom"].'-'.$consulta["segnom"].'-'.$consulta["priape"].'-'.$consulta["segnom"].
'<br>EPS:'.$consulta["eps"].
'<br>Fecha De Creacion:'.$consulta["fecha"];
};

?>

y trate con este para consultar todos pero me arroja error ( ! ) Parse error: syntax error, unexpected '.' in C:\wamp\www\constik\consulta2.php on line 8


<?PHP

include("conlec.php");

$conpaciente = mysql_query("SELECT * FROM paciente WHERE numdoc like '%".$_POST["selectbox"]."%'");

while ($consulta = mysql_fetch_array($conpaciente)){
$numdoc = .$consulta["numdoc"].
$tipdoc = .$consulta["tipdoc"].
$prinom = .$consulta["prinom"].
$segnom = .$consulta["segnom"].
$priape = .$consulta["priape"].
$segape = .$consulta["segape"].
$eps = .$consulta["eps"].
$fecha = .$consulta["fecha"];
};

$constiker = mysql_query("SELECT * FROM stiker WHERE paciente like '%".$_POST["selectbox"]."%'");
while ($stik = mysql_fetch_array($constiker)){
$costik = .$stik["con"].
$fecstik = .$stik["fecha"];
};

$contdoc = mysql_query("select * from tipdoc where con='$tipdoc'");
while ($tdocu = mysql_fetch_array($contdoc)){
$decrip = .$tdocu["decrip"];
};

echo '<br>Documento Numero:'.$numdoc.'-'.$tipdoc.
'<br>Nombre:'.$prinom.'-'.$segnom.'-'.$priape.'-'.$segape.
'<br>EPS:'.$eps.'-stiker:'.$costik.
'<br>Fecha De Creacion:'.$fecstik;

?>

gracias de antemano por la ayuda intente con el "inner join on"

Casimiro Notevi
10-04-2012, 14:55:13
Hola, recuerda poner los tags al código fuente, ejemplo:

http://neftali.clubdelphi.com/images/UtilizarTAGs.png


Gracias :)

Ñuño Martínez
11-04-2012, 14:07:21
Te sobran "puntos" por todas partes. Por ejemplo, aquí:
$numdoc = .$consulta["numdoc"].¿Por qué los pones? :confused: Da la sensación de que no sabes programar PHP todavía, o que al menos no sabes para qué sirve el punto.

El operador "punto" realiza la concatenación de cadenas. Es decir, la expresión:
'Hola a todos. ' . "Hoy hace un buen día." devuelve la cadena "Hola a todos. Hoy hace un buen día".

Por lo tanto, en el siguiente código:$costik = .$stik["con"].
$fecstik = .$stik["fecha"]; Primero, hay un error de sintaxis porque hay dos puntos a los que les falta un operando. Si los eliminas y lo dejas así:$costik = $stik["con"].
$fecstik = $stik["fecha"]; no hay error de sintaxis, pero dudo que obtengas el resultado deseado ya que $fecstik contendrá $stik["fecha"] pero $costik contendrá $stik["con] . $stik["fecha"]. Recuerda que el final del comando lo marca el punto y coma, no el salto de línea.

Te sugiero que des un buen repaso a tus apuntes de PHP.