2017-06-15 70 views
1

我真的是新的网络应用程序和使用关系数据库,我试图从5个表中同时使用这种方法,我看到在一个selectprint YouTube视频,在第一个select我选择一个人并将他的所有数据存储在包括外键的变量中,然后我使用存储在变量中的外键从其他4个表中选择数据,最后我打印表格行上的所有数据。使用mysql从多个表中选择数据fetch_object

我知道该方法是功能我已经用它从一张表中完美地选择,但在这里试图选择形式多个表不起作用,也许我应该尝试在第一个选择和selecto从所有表中的JOIN 。当我运行这个PHP脚本返回该错误:

Undefined variable: db in C:\wamp64\www\sicu\paciente.php on line 71" and this " Fatal error: Call to a member function query() on null in C:\wamp64\www\sicu\paciente.php on line 71

<?php 
    $sql = "SELECT * from `paciente` ORDER BY `ci_p`"; 
    $result = $db-> query ($sql); 

    while ($row = $result ->fetch_object()) { 



    $ci_p = $row -> ci_p; 
    $primer_nombre =htmlentities ($row -> primer_nombre, ENT_QUOTES, "UTF-8"); 
    $segundo_nombre = htmlentities ($row -> segundo_nombre, ENT_QUOTES, "UTF-8"); 
    $primer_apellido = htmlentities ($row ->primer_apellido , ENT_QUOTES, "UTF-8"); 
    $segundo_apellido = htmlentities ($row -> segundo_apellido, ENT_QUOTES, "UTF-8"); 
    $sexo = htmlentities ($row -> sexo, ENT_QUOTES, "UTF-8"); 
    $tipo_p = htmlentities ($row -> tipo_p, ENT_QUOTES, "UTF-8"); 
    $tipo_personal = htmlentities ($row -> tipo_personal, ENT_QUOTES, "UTF-8"); 
    $especialidad= htmlentities ($row -> especialidad, ENT_QUOTES, "UTF-8"); 
    $alergias = htmlentities ($row -> alergias, ENT_QUOTES, "UTF-8"); 
    $correo_id_correo = htmlentities ($row -> correo_id_correo, ENT_QUOTES, "UTF-8"); 
    $telefono_id_telefono = htmlentities ($row -> telefono_id_telefono, ENT_QUOTES, "UTF-8"); 
    $direccion_id_direccion = htmlentities ($row -> direccion_id_direccion , ENT_QUOTES, "UTF-8"); 
    $fecha_id_fecha = htmlentities ($row -> fecha_id_fecha , ENT_QUOTES, "UTF-8"); 

    $sql1 = "SELECT * from `direccion` where id_direccion = '$direccion_id_direccion')"; 
    $result1 = $db-> query ($sql1); 
    while ($row1 = $result1 ->fetch_object()){ 
     $estado =htmlentities ($row -> estado, ENT_QUOTES, "UTF-8"); 
     $ciudad = htmlentities ($row -> ciudad, ENT_QUOTES, "UTF-8"); 
     $municipio = htmlentities ($row ->municipio , ENT_QUOTES, "UTF-8"); 
     $parroquia = htmlentities ($row -> parroquia, ENT_QUOTES, "UTF-8"); 
     $sector = htmlentities ($row -> sector, ENT_QUOTES, "UTF-8"); 
     $edificio = htmlentities ($row -> edificio, ENT_QUOTES, "UTF-8"); 
     $piso= htmlentities ($row -> piso, ENT_QUOTES, "UTF-8"); 
     $numero = $row -> numero; 
     $punto_ref = htmlentities ($row -> punto_ref, ENT_QUOTES, "UTF-8"); 
     $avenida = htmlentities ($row -> fecha_ingre, ENT_QUOTES, "UTF-8"); 

    } 
    $sql2 = "SELECT * from `correo_electronico` where id_correo = '$correo_id_correo')"; 
    $result2 = $db-> query ($sql2); 
    while ($row2 = $result2 ->fetch_object()){ 
     $direccion_correo =htmlentities ($row -> direccion_correo, ENT_QUOTES, "UTF-8"); 

    } 
     $sq3 = "SELECT * from `telefono` where id_telefono = '$telefono_id_telefono')"; 
    $result3 = $db-> query ($sql3); 
    while ($row3 = $result3 ->fetch_object()){ 
    $numero_telefono = $row -> numero_telefono; 

    } 
     $sql5 = "SELECT * from `fecja_naci` where id_fecha_naci = '$fecha_id_fecha')"; 
    $result5 = $db-> query ($sql5); 
    while ($row5 = $result5 ->fetch_object()){ 
    $fecha =htmlentities ($row -> fecha, ENT_QUOTES, "UTF-8"); 

    } 
?> 
    <tbody><tr> 
     <td><?php echo $ci_p?></td> 
     <td><?php echo " $primer_nombre $segundo_nombre $primer_apellido $segundo_apellido "?></td> 
     <td><?php echo $sexo ?></td> 
     <td><?php echo $tipo_p ?></td> 
     <td><?php echo $tipo_personal?></td> 
     <td><?php echo $especialidad?></td> 
     <td><?php echo $alergias ?></td> 
     <td><?php echo $fecha?></td> 
     <td><?php echo $numero_telefono?></td> 
     <td><?php echo $direccion_correo?></td> 
     <td><?php echo "$estado $ciudad $municipio $parroquia $sector $edificio $piso $numero $punto_ref $avenida"?></td> 
    </tr></tbody> 
<?php 
} 
?> 

+0

你需要一个工作的mysqli连接,您可以查询之前,像'$ DB =新的mysqli( 'localhost' 的, 'my_user', 'MY_PASSWORD', 'MY_DB' );' – Rasclatt

+0

我有一个conect.php文件,忘记包含它,然后将该方法更改为内部联接_italic _ ** bold **'include“php/connect.php”; $ SQL = “SELECT * FROM paciente INNER JOIN direccion ON direccion_id_direccion = id_direccion 内部联接telefono上telefono_id_telefono = id_telefono INNER JOIN上correo_id_correo correo_electronico = id_correo INNER JOIN上fecha_id_fecha = id_fecha_naci ORDER fecha_naci BY'ci_p'”; $ result = $ db-> query($ sql)' –

回答

0

首先,文件connection.php

<?php 

$db = new mysqli("Host name","User","DB Password","DB Name"); 

// ceck connection 

if ($db->connect_error) { 
    die('Connection failed: '. $connect->connect_error); 
} 
?> 

然后添加以下代码:

include "connection.php"; 

在你的PHP文件中。

我建议使用在mysql内部联接

+0

非常感谢我完全忘记了先使数据库连接,即使如此使用此方法也无法从多个表中选择correclty,所以我按照您的说明,但我使用了一个内部连接并且完美地工作,并且像30条代码行一样减少。非常感谢 –

+0

不客气 –