Doubt with table relationship

4

Good evening I have the following BD in MySQL

    CREATE TABLE IF NOT EXISTS 'cad_cliente' (
      'id_cliente' smallint(5) unsigned NOT NULL,
      'nome_cliente' varchar(45) NOT NULL,
      'nome_dr' varchar(45) NOT NULL,
      'email_cliente' varchar(100) NOT NULL,
      'data_nascimento_cliente' date NOT NULL,
      'endereco_cliente' varchar(30) NOT NULL,
      'bairro_cliente' varchar(20) NOT NULL,
      'cep_cliente' varchar(20) NOT NULL,
      'cidade_cliente' varchar(45) NOT NULL,
      'estado_cliente' smallint(5) unsigned NOT NULL,
      'observacao' varchar(45) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

   CREATE TABLE IF NOT EXISTS 'cad_paciente' (
     'id_paciente' smallint(5) unsigned NOT NULL,
     'nome_paciente' varchar(45) NOT NULL,
     'id_cliente' varchar(45) NOT NULL
   ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

   CREATE TABLE IF NOT EXISTS 'cad_trabalho' (
     'id_trabalho' smallint(5) unsigned NOT NULL,
     'id_cliente' varchar(45) NOT NULL,
     'id_paciente' varchar(45) NOT NULL,
     'id_dente' varchar(45) NOT NULL,
     'id_servico' varchar(45) NOT NULL,
     'id_cor' varchar(45) NOT NULL,
     'observacao_trabalho' varchar(45) NOT NULL,
     'data_entrada_trabalho' varchar(45) NOT NULL,
     'data_saida_trabalho' varchar(45) NOT NULL,
     'pronto_trabalho' varchar(45) NOT NULL,
     'valor_trabalho' varchar(45) NOT NULL,
     'pagamento_trabalho' varchar(45) NOT NULL,
     'foto1_trabalho' varchar(45) NOT NULL,
     'foto2_trabalho' varchar(45) NOT NULL,
     'foto3_trabalho' varchar(45) NOT NULL
   ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

I would like to know how to display a query to the database via PHP so that when requesting a page to show me the data of the cad_trabalho table, this request looks up the patient and customer name data in the database of data.

    
asked by anonymous 12.06.2015 / 22:42

3 answers

3

You did not specify if your question is in the assembly of SELECT or the construction of the code PHP , so let's go by parts:

SQL

(Using INNER JOIN to list tables)

SELECT observacao_trabalho, nome_cliente, nome_paciente 
FROM cad_trabalho 
INNER JOIN cad_cliente ON cad_cliente.id_cliente = cad_trabalho.id_cliente 
INNER JOIN cad_paciente ON cad_paciente.id_paciente = cad_trabalho.id_paciente

PHP

(Example only didactic)

<?php
    $servidor = "localhost"; /* exemplo */
    $usuarioBanco = "root"; /* exemplo */
    $senhaBanco = "123456"; /* exemplo */
    $nomeBanco = "exemplo"; /* exemplo */

    /* mysqli é o que você utiliza para fazer conexão com o banco */
    $conn = new mysqli($servidor, $usuarioBanco, $senhaBanco, $nomeBanco);

    $sql = "SELECT observacao_trabalho, nome_cliente, nome_paciente FROM cad_trabalho INNER JOIN cad_cliente ON cad_cliente.id_cliente = cad_trabalho.id_cliente INNER JOIN cad_paciente ON cad_paciente.id_paciente = cad_trabalho.id_paciente";

    /* resultado da consulta */
    $result = $conn->query($sql);

    /* verifica se retornou algo */
    if ($result->num_rows > 0) {

        /* começa a construir a tabela no HTML */
        echo "<table><tr><th>Trabalho</th><th>Cliente</th><th>Paciente</th></tr>";

        /* percorre o retorno da consulta */
        while($row = $result->fetch_assoc()) {
            /* dentro do $row[] vai o nome da coluna da sua consulta */
            echo "<tr><td>".$row["observacao_trabalho"]."</td><td>".$row["nome_cliente"]." ".$row["nome_paciente"]."</td></tr>";
        }
        echo "</table>";
    } else {
        echo "Nenhum resultado encontrado";
    }

    /* fecha conexão */
    $conn->close();
?>

Considerations

12.06.2015 / 23:31
0

I tested it here but it does not fetch the information in the database and still generates an error

Notice: Trying to get property of non-object in C:\xampp\htdocs\lista_servicos.php on line 18 Nenhum resultado encontrado

Then the error is in this function

if ($result->num_rows > 0)
    
18.06.2015 / 22:51
0

Good morning my friends, with the tips of our amiso here I was able to solve my select that was thus

SELECT * FROM cad_trabalho
JOIN  cad_paciente ON cad_trabalho.id_paciente
JOIN  cad_cliente ON cad_paciente.id_cliente WHERE cad_trabalho.id_trabalho=1

Now I just need to mount the php to display the results

    
19.06.2015 / 15:35