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