J'ai un souci d'affiche dans le tableau, la liste s'affiche entièrement à la base mais lors d'une recherche par mots clés ou par domaine via la liste déroulante les lignes s'affichent (le quadrillage du tableau) mais elles sont vides.
Code : Tout sélectionner
<?php
/*
Entete page
*/
echo'<head>';
echo'<title>Recherche - Base documentaire</title>';
echo'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
echo'<meta http-equiv="Content-Language" content="fr" />';
/*
JQUERY
*/
echo'</head>';
echo'<body>';
/*
CSS
*/
echo'<style>
table {
border:3px solid #6495ed;
border-collapse:collapse;
width:90%;
margin:auto;
}
thead, tfoot {
background-color:#D0E3FA;
border:5px solid #6495ed;
}
tbody {
background-color:#FFFFFF;
border:1px solid #6495ed;
}
th {
font-family:monospace;
border:1px dotted #6495ed;
padding:5px;
background-color:#EFF6FF;
//width:25%;
}
td {
font-family:sans-serif;
font-size:80%;
border:1px solid #6495ed;
padding:5px;
text-align:center;
}
caption {
font-family:sans-serif;
}
</style>';
/*
Connexion à la BDD
*/
mysql_connect('localhost','XXXX','');
mysql_select_db('ouvrage');
mysql_query("SET NAMES 'utf8'");
/*
Traitement
*/
echo '<a href="/Biblio/biblio.php">Liste complète</a><br>';
//On determine l'expression a rechercher
if( isset( $_POST['recherche'] ) ){
$rec = htmlentities( $_POST['recherche'] );
}else{
$rec = '';
}
//On determine le type de recherche
if( isset( $_POST['type'] ) ){
if( $_POST['type']=='un' ){
//Un des mots
$type = 1;
}elseif( $_POST['type']=='tout' ){
//Tout les mots
$type = 2;
}else{
//L'expression exacte
$type = 3;
}
}else{
$type = 1;//type par defaut: L'expression exacte
}
echo'<form action="'.$_SERVER["PHP_SELF"].'" method="post" id="formRecherche">';
echo'Expression à rechercher: <input type="text" name="recherche" value="'.$rec.'" /><br />';
echo'Type de recherche: <input type="radio" name="type" value="un"'.(($type==1)?' checked="checked"':'').' />';
echo'Un des mots <input type="radio" name="type" value="tout"'.(($type==2)?' checked="checked"':'').' />';
echo'Expression exacte (titre)<br /><input type="submit" value="Rechercher" /><br />';
echo'<select name="liste_domaine" onchange="$(\'#formRecherche\').submit();">';
$selected = (($_POST["liste_domaine"]=='voirtout')?' selected="selected"':'');
echo'<option value="voirtout"'.$selected.'>--Tous les domaines--</option>';
$selected = (($_POST["liste_domaine"]=='Domaine1')?' selected="selected"':'');
echo'<option value="domaine1"'.$selected.'>Domaine1</option>';
$selected = (($_POST["liste_domaine"]=='Domaine2')?' selected="selected"':'');
echo'<option value="domaine2"'.$selected.'>Domaine2</option>';
$selected = (($_POST["liste_domaine"]=='Domaine3')?' selected="selected"':'');
echo'<option value="domaine3"'.$selected.'>Domaine3</option>';
$selected = (($_POST["liste_domaine"]=='Domaine4')?' selected="selected"':'');
echo'<option value="domaine4"'.$selected.'>Domaine4</option>';
$selected = (($_POST["liste_domaine"]=='Domaine5')?' selected="selected"':'');
echo'<option value="domaine5"'.$selected.'>Domaine5</option>';
echo'</select>';
echo'<input type="submit" value="Envoyer"><br/>';
echo'</form>';
/*
Traitement des résultats
*/
//On dertermine les informations des ouvrages
if(isset($_POST["liste_domaine"])){
if($_POST["liste_domaine"]=='voirtout'){
$resultat = @mysql_query("SELECT * FROM exemple");
}else{
$resultat = @mysql_query("SELECT * FROM exemple WHERE domaine ='".mysql_real_escape_string($_POST['liste_domaine'])."' ORDER BY id ASC");
}
}else{
$req= 'SELECT nom, prenom, editeur, titre, millesime, domaine, serie, ID FROM exemple';
$sCondition = '';
if( $type==1 ){
//ayant un des mots dans leurs informations
$mots = explode(' ',$rec);//On separe lexpression en mots cles
foreach( $mots as $mot ){
if($sCondition==''){
$sCondition.=' WHERE';
}else{
$sCondition.=' OR';
}
$sCondition .= ' titre LIKE "%'.$mot.'%" OR domaine LIKE "%'.$mot.'%" OR serie LIKE "%'.$mot.'%"';
}
}elseif( $type==2 ){
//ayant tout des mots dans leurs informations
$mots = explode(' ',$rec);//On separe lexpression en mots cles
foreach( $mots as $mot ){
if($sCondition==''){
$sCondition.=' WHERE';
}else{
$sCondition.=' AND';
}
$sCondition .= ' titre LIKE "%'.$mot.'%"';
}
}else{
if($sCondition==''){
$sCondition.=' WHERE';
}
//ayant l'expression exacte dans leurs informations
$sCondition .= ' titre LIKE "%'.$rec.'%"';
}
//Les utilisateur seront ranges par domaine en ordre croissant
$req .= $sCondition.' order by domaine asc';
$resultat = @mysql_query($req);
}
if( $resultat ){
if( mysql_num_rows($resultat)>0 ){
echo'<h2>Résultats</h2>';
echo'<div style="text-align:center">
<table>
<tr>
<th>Titre</th>
<th>Editeur</th>
<th>Millésime</th>
<th>Nom</th>
<th>Domaine</th>
</tr>';
//On affiche les resultats
while( $row = mysql_fetch_object($resultat) ){
echo'<tr>
<td>'.$row->titre.'</td>
<td>'.$row->editeur.'</td>
<td>'.$row->millesime.'</td>
<td>'.$row->nom.'</td>
<td>'.$row->domaine.'</td>
</tr>';
}
echo'</table>
</div>';
}else{
echo'<p>Aucun résultat ne correspond à votre recherche</p>';
}
}else{
echo'<p>Erreur de requête</p>';
}
echo'</body>
</html>';
?>