0

我在表中有 2 行,当我执行 while 循环以在 php 中获取它时,它会重复结果 5 次。正如您所看到的,它创建了一个表,并且只有 2 行复制结果似乎很奇怪。我什至在 StackOverflow 上找到了一个答案,说要在查询中添加“DISTINCT”,但它不适用于我的...

    <?php
// A sessão precisa ser iniciada em cada página diferente
$id=null;
session_start();
if (isset($_SESSION['UsuarioID']))
{
    $id = $_SESSION['UsuarioID'];
}
?>
    <head>
    <link href="css/style.css" rel="stylesheet" type="text/css" />
    <link rel="shortcut icon" href="http://www.iconj.com/ico/7/5/75jqn04zq9.ico" type="image/x-icon" />
    <title>Verificar estado</title></head>
    <body>
    </div><?php
    //Tentativa de estabelecer uma ligação à BD
    $connection = new mysqli('***', '***', '****', '****');

    //Verificar se a ligação foi estabelecida com sucesso
    if (mysqli_connect_errno() ) {
        echo "</h2>Erro no acesso à base de dados.</h2>" . mysqli_connect_error(); 
        exit();
        } 


    $sql = "SELECT DISTINCT id_user, id_ficha, avaria, observacoes, estado, id FROM fichas, usuarios WHERE id_user = " . $id.";";
    //Executar a Query! 
    $result = $connection->query($sql);
    echo "<div id='listanomes'>User ID - ID Ficha - Avaria</div>";
    ?>
    <div id="lista">
    <div class="estados">
    <?php
    while ($userproduto = $result->fetch_object()) {
        echo '<table border="1">';
        echo "<tr>";
            echo "<td>" . $userproduto->id_user . "</td>";
            echo "<td>" . $userproduto->id_ficha . "</td>";
            echo "<td>" . $userproduto->avaria . "</td>";
            echo "<td>" . $userproduto->observacoes . "</td>";
            echo "<td>" . $userproduto->estado . "</td>";
            echo "</tr>";
        echo "</table>";
    } 

        echo '</div>';
        echo '</div>';
    //Termina o script

        echo '<div class="foot">';
        echo '<p>Copyright © 2013 - Todos os direitos reservados - <a href="mailto:numica@numica.pt">Númica</a></p>';
        echo '</div>';
        echo '</body>';
        echo '</html>';
    exit();
    ?>
4

1 回答 1

0

你必须添加 join 语句来加入你的 2 个表,否则 SQL 会做一个笛卡尔积。

SELECT DISTINCT id_user, id_ficha, avaria, observacoes, estado, id FROM fichas, usuarios WHERE id_user = $id AND fichas.id = usarios.id_fichas
于 2013-05-02T14:11:24.047 回答