左连接查询从数据库中获取数据,但结果为double

时间:2017-07-02 14:56:00

标签: mysql

我有这个代码用于从数据库中获取数据。它应该显示数据库中的所有文章以及每篇文章我需要显示该文章的所有图像(我不知道有多少照片存储在数据库中),然后输出结果但它加倍了项目它显示:

function show_volanti($data){

    $con = $data;                                                   // PASSO CONNESSIONE
    $id = 1;                                                        // 1 VOLANTE
    $visibile = 1;                                                  // VARIABILE DI VISIBILITA'

    $rows = array();                                                // PREPARO ARRAY 1 PER ID ARTICOLI VOLANTE

    $g = '';                                                        // RIFERIMENTO ASSOCIAZIONE GALLERY VIEWER
    //$rif_id = '';                                                 // RIF_ID SE OK DA CANCELLARE

    $stmt = mysqli_stmt_init($con);                                 // INIZIALIZZO LA CONNESSIONE

    mysqli_stmt_prepare($stmt,'SELECT articoli.id AS id_articoli,
                                      articoli.titolo,
                                      articoli.descrizione,
                                      galleria.id AS id_galleria,
                                      galleria.foto,
                                      galleria.rif_id
                                      FROM articoli
                                      LEFT JOIN galleria
                                      ON articoli.id = galleria.rif_id
                                      WHERE articoli.genere1 = ?
                                      AND articoli.visibile = ?')
                                      or mysqli_error($stmt);                                   // QUERY INSERIMENTO DATI

    mysqli_stmt_bind_param($stmt,'ii',$id,$visibile);                                           // LEGO I PARAMETRI

    mysqli_stmt_execute($stmt);                                                                 // ESEGUO LA QUERY

    mysqli_stmt_bind_result($stmt,
                            $rows['id_articoli'],
                            $rows['titolo'],
                            $rows['descrizione'],
                            $rows['id_galleria'],
                            $rows['foto'],
                            $rows['rif_id']);

    // CREO RIFERIMENTO PER GALLERIA NEL VIEWER

    $html = "";
    $html .= "<div class='container'>";

    $html .= "  <div class='row'>";
    $html .= "    <div class='col-sm-12'>";
    $html .= "      <div class='panel panel-default'>";
    $html .= "        <div class='panel-body'>";    

    while (mysqli_stmt_fetch($stmt)){

        $html .= " <div class='panel panel-default'>";
        $html .= " <div class='panel-heading'><b>$rows[titolo]</b></div>";
        $html .= " <div class='panel-body'><div class='class_p'>$rows[descrizione]</div></div>";
        $html .= "</div>";
    }



    $html .= "        </div> <!-- end panel-body -->";
    $html .= "      </div> <!-- end panel panel-default -->";
    $html .= "    </div> <!-- end col-sm-12 -->";

    $html .= "  </div> <!-- end row -->";   

    mysqli_stmt_close($stmt);                                       // CHIUDO LO STATEMENT
    mysqli_close($con);                                             // CHIUDO CONNESSIONE   

    return $html;
}

使用像这样的单个查询,我有正确的结果,所以它是一个左连接问题。我这样做是错误的:

mysqli_stmt_prepare($stmt,'SELECT articoli.id AS id_articoli,
                                  articoli.titolo,
                                  articoli.descrizione
                                  FROM articoli
                                  WHERE articoli.genere1 = ?
                                  AND articoli.visibile = ?')
                                  or mysqli_error($stmt);                                   // QUERY INSERIMENTO DATI

0 个答案:

没有答案