Affichage requete sql dans un tableau
Posté : 17 déc. 2012, 00:24
Salut à tous,
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.
Merci de votre aide 
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>';
?>