1
resposta

Problemas com id de Phone null e Student recebendo apenas 1 phone

Bom dia.

1) Ao imprimir os alunos na tela observei que meu aluno o qual adicionei 2 telefones, na verdade só está com 1 telefone:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

OBS: Para visualizar o código que inseri 2 telefones para esse aluno de id 25, logo no item 3 eu coloquei o mesmo!!

2) Outra coisa que não entendi é porque acima da listagem dos alunos no console também temos uma listagem de telefones se não pedimos para listar telefones:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3) Outra situação é que se observar na foto do item 2 o meu telefone está sem id, porém o código do arquivo conexão.php eu coloquei o id como PRIMARY_KEY, não deveria gerar o id sozinho? Segue:

<?php



$caminhoBanco = __DIR__ . '/banco.sqlite';
$pdo = new PDO('sqlite:banco.sqlite');

echo 'Conectei';

$pdo->exec("INSERT INTO phones (area_code, number, student_id) VALUES ('11', '123456789', 25), ('21', '456518799', 25);");
exit();

$createTableSql ='
    CREATE TABLE IF NOT EXISTS students (
        id INTERGER PRIMARY KEY,
        name TEXT,
        birth_date TEXT
    );

    CREATE TABLE IF NOT EXISTS phones (
        id INTERGER PRIMARY KEY,
        area_code TEXT,
        number TEXT,
        student_id INTERGER,
        FOREIGN KEY(student_id) REFERENCES students(id)
    );
';

$pdo->exec($createTableSql);
1 resposta

Olá, Karolina! Tudo bem?

Primeiramente gostaria de pedir desculpas pela demora em responder o seu tópico

  1. Em relação ao problema de ter apenas 1 telefone sendo exibido para o aluno de id 25, eu suspeito que seja algo no método studentsWithPhones que fizemos durante o curso, você poderia me mostrar este método?

  2. Sobre a listagem de telefones acima da listagem de alunos no console, isso pode estar acontecendo porque você está fazendo algum tipo de consulta ou exibição de telefones antes de exibir a listagem de alunos. Verifique se há algum trecho de código que esteja realizando essa ação e remova-o, caso não seja necessário.

  3. Quanto à falta de id no telefone, o código que você mostrou parece correto. O id da tabela phones está definido como PRIMARY KEY, o que deveria gerar o id automaticamente. Você está utilizando o banco .sqlite mesmo? Já tentou recriar as tabelas?

Fico no aguardo do seu retorno, bons estudos :)