Bonjour,
Je n'arrive pas à afficher correctement le résultat de la requête suivante :
$data = $db->Query('SELECT docid, doctitre, doctitreart, docanne, docedition, doclieued, autnom, autprenom FROM document D JOIN typedoc T ON D.typdocid = T.typdocid JOIN ecrire ON ecrdocid = docid JOIN auteur ON autid = ecrautid WHERE D.typdocid = "1"');
Mon code est le suivant :
//Affichage des ouvrages généraux echo "\t\t\t<h2>I. OUVRAGES GENERAUX</h2>\n"; //Déclaration du compteur $docid = 0; //on boucle sur l'ensemble des enregistrements while ($row =& $data->fetchRow(DB_FETCHMODE_ASSOC)) { $nom = $row['autnom']; $prenom = $row['autprenom']; $titre = $row['doctitre']; $article = $row['doctitreart']; $edition = $row['docedition']; $lieu = $row['doclieued']; //Affichage de la date list($date, $time) = explode (" ", $row['docanne']); list($year, $month, $day) = explode ("-", $date); //Test sur la présence du prénom if ($prenom) { if ($docid == 0) { echo "\t\t\t\t<p>".strtoupper($nom)." (".$prenom{0}."), ".$titre.". ".$lieu.", ".$edition.", ".$year."."; } if ($row['docid'] != $docid && $row['docid'] != 1) { echo "</p>\n"; echo "\t\t\t\t<p>".strtoupper($nom)." (".$prenom{0}."). ".$titre.". ".$lieu.", ".$edition.", ".$year."."; } if ($row['docid'] == $docid) { echo " & ".strtoupper($nom)." (".$prenom{0}."). ".$titre.". ".$lieu.", ".$edition.", ".$year."."; } } else { if ($docid == 0) { echo "\t\t\t\t<p>".strtoupper($nom).". ".$titre.". ".$lieu.", ".$edition.", ".$year."."; } if ($row['docid'] != $docid && $row['docid'] <> 1) { echo "</p>\n"; echo "\t\t\t\t<p>".strtoupper($nom).". ".$titre.". ".$lieu.", ".$edition.", ".$year."."; } if ($row['docid'] == $docid) { echo " & ".strtoupper($nom).". ".$titre.". ".$lieu.", ".$edition.", ".$year."."; } } $docid = $row['docid']; } if ($docid) { echo "</p>\n"; }
Lorsque j'ai qu'un auteur par document aucun problème.
Exemple :
REFF (T), R. Delaunay, Du Cubisme à l'Art Abstrait. Paris, , 1957.
BRAME (P). Degas et son oeuvre, supplément, au catalogue raisonné. New York, , 1984.
LANNES. La peine capitale. Paris, Ed. Denoël, 1942.
VALLIER (D). Braque, l'oeuvre gravé. Paris, Flammarion, 1982.
Mais lorsque qu'un doc à plusieurs auteurs, il y a doublement de l'ensemble des champs titre, lieu d'édition, date.
Exemple :
FRANCASTEL (P), R. Delaunay, Du Cubisme à l'Art Abstrait. Paris, , 1957. & REFF (T). R. Delaunay, Du Cubisme à l'Art Abstrait. Paris, , 1957.
BRAME (P). Degas et son oeuvre, supplément, au catalogue raisonné. New York, , 1984.
LANNES. La peine capitale. Paris, Ed. Denoël, 1942.
VALLIER (D). Braque, l'oeuvre gravé. Paris, Flammarion, 1982.
Comment empêcher le doublement de l'affichage des données ?
Pourriez-vous m'indiquez une solution ?
Merci d'avance.