erreur group by
Posté : 07 sept. 2010, 22:36
Bonsoir,
j'ai cette erreur et je ne vois pas d'ou elle vient
Merci de m'aider
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
code
j'ai cette erreur et je ne vois pas d'ou elle vient
Merci de m'aider
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
code
<?php
// initilisation de la session
session_start();
if( !isset($_SESSION['last_cookie_connexion']) && isset($_COOKIE['last_connexion']) )
{
// on stock le cookie dans la session pour ne pas écraser le cookie avant de l'avoir utilisé.
$_SESSION['last_cookie_connexion'] = $_COOKIE['last_connexion'];
}
// on met à jour le cookie :
setcookie("last_connexion", time(), time()+3600); // on stock le timestamp actuel
//CONNEXION a la BDD
include('config.php');
$resource = mysql_connect($hote, $utilisateur, $password) or die(mysql_error());
mysql_select_db($base, $resource) or die(mysql_error());
// Types de contrat
$typesDeContrat = array();
$result = mysql_query('SELECT CodetypeC, Libelle FROM typecontrat',$resource) or die(mysql_error());
while($row = mysql_fetch_assoc($result)){ $typesDeContrat[] = $row; }
mysql_free_result($result);
// Communes
$communes = array();
$result = mysql_query('SELECT id, nom_ville FROM villes WHERE liste_deroulante = 1 ORDER BY nom_ville ASC',$resource) or die(mysql_error());
while($row = mysql_fetch_assoc($result)){ $communes[] = $row; }
mysql_free_result($result);
// Types de bien
$typesDeBien = array();
$result = mysql_query('SELECT CodeTypeB, Libelle FROM typebien',$resource) or die(mysql_error());
while($row = mysql_fetch_assoc($result)){ $typesDeBien[] = $row; }
mysql_free_result($result);
// Début de la requête
$request = 'biens.photo, villes.nom_ville, typebien.libelle AS LibelleTypeBien, typecontrat.libelle AS LibelleTypeContrat, biens.prix, biens.nbre_piece, biens.surface, biens.date_annonce, localisation.Code, localisation.Libelle AS LibelleLocalisation, biens.description
FROM biens
INNER JOIN villes ON biens.lieu = villes.id
LEFT JOIN typebien ON biens.codetypeB = typebien.codetypeB
LEFT JOIN typecontrat ON biens.codetypeC = typecontrat.codetypeC
LEFT JOIN localisation ON biens.localisation = localisation.Code
WHERE 1';
// Action sur recherche
if(isset($_GET['localisation']))
{
$request .= " AND localisation.Libelle = '".mysql_real_escape_string($_GET['localisation'])."' "; // on ajoute le filtre
$_SESSION['request'] = $request; // on met à jour la session.
}
else if(isset($_POST['rechercher'])) // on execute pas recherche par POST si on a une variable GET directe
{
if(!isset($_POST['typecontrat']))
{
$messageErreur1 = TRUE;
}
else
{
// Filtre sur le(s) type(s) de contrat choisi(s)
$tab = array();
if(in_array(1,$_POST['typecontrat'])){ $tab[]=1; }
if(in_array(2,$_POST['typecontrat'])){ $tab[]=2; }
if(in_array(3,$_POST['typecontrat'])){ $tab[]=3; }
if(count($tab)>0){ $request.=' AND biens.codetypeC IN ( '.implode(', ',$tab).' )'; }
// Filtre sur la ville choisie
$villes = array($_POST['lieux']);
// Ajouter d'autres villes suivant le choix de distance par rapport à la ville choisie
if($_POST['choix']>0)
{
// Coordonnées géographiques de la ville choisie
$result = mysql_query('SELECT latitude, longitude FROM villes WHERE id = "'.mysql_real_escape_string($_POST['lieux'],$resource).'"',$resource) or die(mysql_error());
$row = mysql_fetch_assoc($result);
mysql_free_result($result);
// Autres villes, à moins du nombre de kilomètres demandés
$result = mysql_query('SELECT id, nom_ville, SQRT( POW( ( 69.1 * ( latitude - "'.mysql_real_escape_string($row['latitude'],$resource).'" ) ), 2 ) + POW( ( 53 * ( longitude - "'.mysql_real_escape_string($row['longitude'],$resource).'" ) ), 2 ) ) * 1.609 AS distance
FROM villes
WHERE id != "'.mysql_real_escape_string($_POST['lieux'],$resource).'"
HAVING distance < "'.mysql_real_escape_string($_POST['choix'],$resource).'"
ORDER BY distance ASC',$resource) or die(mysql_error());
while($row = mysql_fetch_assoc($result)){ $villes[] = $row['id']; }
mysql_free_result($result);
}
// Ajouter les villes
$request .= ' AND biens.Lieu IN ( '.implode(', ',$villes).' )';
// Filtre sur le type de bien
if(in_array($_POST['typebien'], array(1,2,3,4,5,6,7,8,9,10)))
$request.=' AND biens.codetypeB = "'.mysql_real_escape_string($_POST['typebien'],$resource).'"';
// Filtre sur la surface minimale
if(strlen($_POST['surfaceMin'])>0)
$request.=' AND biens.surface >= "'.mysql_real_escape_string($_POST['surfaceMin'],$resource).'"';
// Filtre sur la surface maximale
if(strlen($_POST['surfaceMax'])>0)
$request.=' AND biens.surface <= "'.mysql_real_escape_string($_POST['surfaceMax'],$resource).'"';
// Filtre sur le budget minimal
if(strlen($_POST['budgetmini'])>0)
$request.=' AND biens.prix >= "'.mysql_real_escape_string($_POST['budgetmini'],$resource).'"';
// Filtre sur le budget maximal
if(strlen($_POST['budgetmaxi'])>0)
$request.=' AND biens.prix <= "'.mysql_real_escape_string($_POST['budgetmaxi'],$resource).'"';
// Filtre sur les annonces avec photo
if(isset($_POST['avecPhoto']) && $_POST['avecPhoto']==1)
$request.=' AND LENGTH( TRIM( biens.photo ) ) > 0';
// Filtre sur les annonces de moins de 30 jours
if(isset($_POST['moins30Jours']) && $_POST['moins30Jours']==1)
$request.=' AND biens.date_annonce >= NOW( ) - INTERVAL 30 DAY';
// Filtre sur les nouvelles annonces depuis la dernière connexion
if(isset($_POST['derniereConnexion']) && $_POST['derniereConnexion']==1 && isset($_SESSION['last_cookie_connexion']))
{
$request .= " AND date_annonce >= '".$_SESSION['last_cookie_connexion']."'";
}
$_SESSION['request'] = $request; // on met à jour la requete dans la session.
}
}
if( isset($_GET['pageNumero']) )
{
$noPage = $_GET['pageNumero'];
}
else
{
$noPage = 0;
}
if( isset($_SESSION['request']) )
{
$request = $_SESSION['request'];
// Exécuter la requête pour trouver les correspondances
// Nombre de résultats
$result = mysql_query('SELECT COUNT( biens.id ) AS total, '.$request, $resource) or die(mysql_error());
$row = mysql_fetch_row($result);
mysql_free_result($result);
$resultats_par_page = 4;
$nombreResultats = $row[0];
$nombrePages = ceil($nombreResultats/$resultats_par_page);
$resultatsRecherche = array();
$result = mysql_query('SELECT '.$request.' LIMIT '.($noPage*$resultats_par_page).', '.$resultats_par_page, $resource) or die(mysql_error());
while($row = mysql_fetch_assoc($result))
{
$resultatsRecherche[] = $row;
}
mysql_free_result($result);
}
// Nombre d'annonces au total dans chaque "localisation"
$repartitionsAnnoncesLocalisation = array();
$result = mysql_query('SELECT localisation.Libelle, COUNT( biens.id ) AS total
FROM localisation
LEFT JOIN biens ON localisation.Code = biens.localisation
GROUP BY localisation.Code
ORDER BY localisation.Code ASC',$resource) or die(mysql_error());
while($row=mysql_fetch_assoc($result)){ $repartitionsAnnoncesLocalisation[] = $row; }
mysql_free_result($result);
// Déconnexion de la base de données
mysql_close($resource);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Notaire à Neuville Saint Vaast (62). SCP Pecqueur & Houzet : négociation immobilière</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="ap.css" title="Design" media="screen">
<link rel="stylesheet" type="text/css" href="shadowbox.css">
<script type="text/javascript" src="shadowbox.js"></script>
<script type="text/javascript">
Shadowbox.init({
handleOversize: "drag",
modal: true
});
</script>
</head>
<body>
<div id="baniere1">
<!--================== Menu ==================-->
<div class="menu">
<ul id="navlist">
<li id="active"><a href="index.php" id="current">Accueil</a></li>
<li><a href="nos_etudes.php">Notre étude</a></li>
<li><a href="Nos_annonces.php">Nos Annonces</a></li>
<li><a href="actu_juri.php">Actualités juridique</a></li>
<li><a href="info.php">info</a></li>
</ul>
</div>
</div>
<div id="design"></div>
<?php
include('panel_gauche.php');
include('panel_droit.php');
?>
<div id="milieu2" style="width:600px; font-size:12px;">
<?php
if( isset($resultatsRecherche) )
{
echo '<div style="margin-bottom:1em; font-size:1.1em; font-weight:bold; text-decoration:underline;">Résultats de votre recheche :</div>';
if(count($resultatsRecherche) > 0)
{
foreach($resultatsRecherche as $val)
{
?>
<div style="margin-bottom:1em;">
<div style="float:right; margin-left:5px;">Annonce du <?php echo htmlentities(date('d/m/Y',strtotime($val['date_annonce']))); ?></div>
<?php if(strlen($val['photo']) > 0)
{
echo '<a href="upload/'.htmlentities($val['photo']).'" rel="shadowbox" with="100" height="100"><img src="./upload/'.htmlentities($val['photo']).'" style="border:0px;float:left; max-height:100px; max-width:100px; margin-right:5px;"></img></a>';
}
?>
<table>
<tr>
<td style="color:#0179C8;font-size:12px">Ville :</td>
<td style="color:#3B4054;font-size:12px"><?php echo htmlentities($val['nom_ville']); ?></td>
</tr>
<tr>
<td style="color:#0179C8;font-size:12px">Description</td>
<td style="color:#3B4054;font-size:12px"><?php echo htmlentities($val['description']); ?> </td>
</tr>
<tr>
<td style="color:#0179C8;font-size:12px">Type de contrat :</td>
<td style="color:#3B4054;font-size:12px"><?php echo htmlentities($val['LibelleTypeContrat']); ?></td>
</tr>
<tr>
<td style="color:#0179C8;font-size:12px">Type de bien :</td>
<td style="color:#3B4054;font-size:12px"><?php echo htmlentities($val['LibelleTypeBien']); ?></td>
</tr>
<tr>
<td style="color:#0179C8;font-size:12px">Prix :</td>
<td style="color:#3B4054;font-size:12px"><?php echo htmlentities($val['prix']); ?> €</td>
</tr>
<tr>
<td style="color:#0179C8;font-size:12px">Nombre de pièces :</td>
<td style="color:#3B4054;font-size:12px"><?php echo htmlentities($val['nbre_piece']); ?></td>
</tr>
<tr>
<td style="color:#0179C8;font-size:12px">Surface :</td>
<td style="color:#3B4054;font-size:12px"><?php echo htmlentities($val['surface']); ?> m<sup>2</sup></td>
</tr>
</table>
</div>
<?php
}
if($nombrePages>1)
{
for($i=0; $i<$nombrePages; $i++)
{
echo '<a style="color:black; text-decoration:none;text-align:center" href="code_recherche.php?pageNumero='.$i.'"> - '.($i+1).'</a>';
}
}
}
else
{
echo "<div>Nous sommes désolés mais aucune annonce ne semble correspondre à vos attentes.</div>";
}
}
else
{
echo "<div>Des champs de recherche sont manquant, veuillez re-remplire le formulaire de recherche.</div>";
}
?>
</div>
<?php include ('pied_de_page.php'); ?>
</body>
</html>