cs_ines57
Messages postés15Date d'inscriptionlundi 14 janvier 2008StatutMembreDernière intervention 9 juin 2009
-
7 mai 2009 à 13:44
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 2012
-
7 mai 2009 à 16:51
Bonjour à tous,
Voilà, pour un portail immobilier, j'ai ma page d'accueil qui permet de sélectionner une région sur une carte de France et de trouver toutes les annonces dans la région. Ma page où s'affiche les résultats s'appelle traitementregion.php
Or dans cette page, j'aimerai y inclure la partie recherche (c'est une bande juste en-dessous du header).
Je peux inclure sans problème le header, mais pas la partie recherche (listes déroulantes en ajax). En effet, j'ai des erreurs :
Warning: mysql_query(): Access denied for user: 'apache@localhost' (Using
password: NO) in
/home/httpd/vhosts/immova.fr/httpdocs/traitementregion.php on line
49
Warning: mysql_query(): A link to the server could not
be established in
/home/httpd/vhosts/immova.fr/httpdocs/traitementregion.php on line
49
Warning: mysql_fetch_array(): supplied argument is not a
valid MySQL result resource in
/home/httpd/vhosts/immova.fr/httpdocs/traitementregion.php on line
51
Je vous donne le fichier en question :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<?php
include_once("connexion/mysql.inc.php");
?>
<head>
<title>Résultats de la recherche</title>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<link rel="stylesheet" href="styles_general.css">
<!-- CSS adapté au navigateur. Si IE, on applique le styles_ie.css, sinon le styles_general.css -->
<!--[if IE]>
<link rel="stylesheet" href="styles_ie.css">
<![endif]-->
&nbsp;
<!-- include à placer ici -->
[dernann.php ]&nbsp;
[ajout.php ]&nbsp;
[gerer.php ]&nbsp;
[partenaires.php ]&nbsp;
[contact.php ]
<!-- page recherche.php -->
<?php
include('recherche230409.php');
?>
<?php
if(isset($_GET['reg'])) {
$requete=mysql_query("SELECT ann_titre,ann_prix,ann_description, ann_photo FROM annonce,region,departement,ville where ann_no_ville=vil_no_ville and dep_no_dept=vil_no_dept and dep_no_region=reg_no_region and reg_no_region='" . $_GET['reg'] . "'");
while($donnees=mysql_fetch_array($requete))
{
?>
<!--
include à placer ici
-->
<?php echo $donnees['ann_titre']; ?>
Prix : <?php echo $donnees['ann_prix']; ?> €
<?php echo $donnees['ann_description']; ?>
" width="164px" height="103px">
<?php
}
}
?>
et voici mon fichier recherche.php
<html lang="fr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Recherche</title>
<link rel="stylesheet" href="styles_general.css">
<!-- CSS adapté au navigateur. Si IE, on applique le styles_ie, sinon le styles_general -->
<!--[if IE]>
<link rel="stylesheet" href="styles_ie.css">
<![endif]-->
<script type='text/javascript'>
/* Fonction en AJAX qui permet de savoir quel navigateur est utilisé et qui teste si le navigateur supporte le xml */
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Pour les navigateurs type firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Pour les navigateurs Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
/* Fonction en AJAX qui permet d'afficher la liste des départements appartenant à une région */
function goAfficheDept(){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function()
{
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState 4 && xhr.status 200)
{
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options à la liste
document.getElementById('divlistedep').innerHTML = leselect;
}
}
xhr.open("POST","ajax_departement.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
id_region = document.getElementById('listeregion').value;
xhr.send("id_region="+id_region);
}
/* Fonction permettant d'afficher la liste des villes appartenant à un département */
function goAfficheVille() {
var xhr = getXhr();
xhr.onreadystatechange = function()
{ if(xhr.readyState 4 && xhr.status 200)
{
leselect = xhr.responseText;
document.getElementById('divlisteville').innerHTML = leselect;
}
}
xhr.open("POST","ajax_ville.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
id_dep = document.getElementById('listedep').value;
xhr.send("id_dep="+id_dep);
}
/* Fonction en AJAX qui permet d'afficher la liste des batiments associés à un type de recherche */
function goAfficheBat(){
var xhr = getXhr();
xhr.onreadystatechange = function()
{ if(xhr.readyState 4 && xhr.status 200)
{
leselect = xhr.responseText;
document.getElementById('divlistebat').innerHTML = leselect;
}
}
xhr.open("POST","ajax_batiment.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
id_type = document.getElementById('listetype').value;
xhr.send("id_type="+id_type);
}
/* Fonction en AJAX qui permet d'afficher la liste des régions d'un pays */
function goAfficheRegion(){
var xhr = getXhr();
xhr.onreadystatechange = function()
{ if(xhr.readyState 4 && xhr.status 200)
{
leselect = xhr.responseText;
document.getElementById('divlistereg').innerHTML = leselect;
if (document.getElementById('listepays').value != 1)
{
document.getElementById('listeregion').value=0;
document.getElementById('listedep').value=0;
document.getElementById('listeville').value=0;
document.getElementById('listeregion').disabled=true;
document.getElementById('listedep').disabled=true;
document.getElementById('listeville').disabled=true;
}
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajax_region.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
id_pays = document.getElementById('listepays').value;
xhr.send("id_pays="+id_pays);
}
</script>
</head>
<?php
/* Requête SQL permettant de choisir tous les types possibles */
$rqSql1 = "SELECT typ_no_type , typ_nom_type FROM type_annonce";
$result1 = mysql_query( $rqSql1, $connect) or die( "Exécution requête impossible.");
$ld1 = "<SELECT NAME='listetype' id='listetype' style='width:200px;height:22px;' onChange='goAfficheBat();'>";
$ld1 .= "<OPTION VALUE=0 selected>Type de recherche</OPTION>";
/* On boucle sur la table */
while ( $row = mysql_fetch_array( $result1)) {
$no_type = $row["typ_no_type"];
$nom_type = $row["typ_nom_type"];
$ld1 .= "<OPTION VALUE='$no_type'>$nom_type</OPTION>";
}
$ld1 .= "</SELECT>";
$ld2 = "
";
$ld2 .= "<SELECT NAME='listedep' id='listedep' style='width:200px;height:22px;'>";
$ld2 .= "<OPTION VALUE=0 selected>Département</OPTION>";
$ld2 .= "</SELECT>";
$ld2 .= "
";
$ld3 = "
";
$ld3 .= "<SELECT NAME='listebat' id='listebat' style='width:200px;height:22px;'>";
$ld3 .= "<OPTION VALUE=0 selected>Bâtiment</OPTION>";
$ld3 .= "</SELECT>";
$ld3 .= "
";
/* Requête SQL permettant de choisir toutes les tranches de prix */
$rqSql4 = "SELECT prix_id_prix , prix_tranche_prix FROM prix";
$result4 = mysql_query( $rqSql4, $connect) or die( "Exécution requête impossible.");
$ld4 = "<SELECT NAME='listeprix' id='listeprix' style='width:200px;height:22px;'>";
$ld4 .= "<OPTION VALUE=0 selected>Budget</OPTION>";
// On boucle sur la table
while ( $row = mysql_fetch_array( $result4)) {
$id_prix = $row["prix_id_prix"];
$tranche_prix = $row["prix_tranche_prix"];
$ld4 .= "<OPTION VALUE='$id_prix'>$tranche_prix</OPTION>";
}
$ld4 .= "</SELECT>";
/* Requête SQL permettant de choisir tous les pays */
$rqSql5 = "SELECT pays_no_pays , pays_nom_pays FROM pays";
$result5 = mysql_query( $rqSql5, $connect) or die( "Exécution requête impossible.");
$ld5 = "<SELECT NAME='listepays' id='listepays' style='width:200px;height:22px;' onChange='goAfficheRegion();'>";
$ld5 .= "<OPTION VALUE=0 selected>Pays</OPTION>";
while ( $row = mysql_fetch_array( $result5)) {
$no_pays = $row["pays_no_pays"];
$nom_pays = $row["pays_nom_pays"];
$ld5 .= "<OPTION VALUE='$no_pays'>$nom_pays</OPTION>";
}
$ld5 .= "</SELECT>";
/* Requête SQL permettant de choisir toutes les régions */
$rqSql6 = "SELECT reg_no_region , reg_nom_region FROM region";
$result6 = mysql_query( $rqSql6, $connect) or die( "Exécution requête impossible.");
$ld6 = "
";
$ld6 .= "<SELECT NAME='listeregion' id='listeregion' style='width:200px;height:22px; 'onChange='goAfficheDept();'>";
$ld6 .= "<OPTION VALUE=0 selected>Région</OPTION>";
$ld6 .= "</SELECT>";
$ld6 .= "
";
$ld7 = "
";
$ld7 .= "<SELECT NAME='listeville' id='listeville' style='width:200px;height:22px;' onChange='goAfficheVille();'>";
$ld7 .= "<OPTION VALUE=0 selected>Ville</OPTION>";
$ld7 .= "</SELECT>";
$ld7 .="
";
mysql_close();
?>
<script>
function motCleReset()
{
if (document.getElementById("mot").value=="Mots clé, référence, ...")
{
document.getElementById("mot").value="";
}
}
</script>
<form method="post" action="traitement.php" name="recherche">
,
<?php
/* Liste déroulante du type de recherche */
print $ld1;
?>,
<?php
/* Liste déroulante du type de bien */
print $ld3;
?>,
<?php
/* Liste déroulante du budget */
print $ld4;
?>,
----
<?php
/* Liste déroulante du pays */
print $ld5;
?>,
<?php
/* Liste déroulante de la région */
print $ld6;
?>,
<?php
/* Liste déroulante du département */
print $ld2;
?>,
<?php
/* Liste déroulante de la ville */
print $ld7;
?>
</form>
</html>
Merci de votre aide
A voir également:
Problème lors de l'inclusion d'un fichier dans un autre
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 7 mai 2009 à 16:27
Salut,
Comme le dit l'erreur l'accès à la base de données n'est pas possible car le login n'est pas bon.
En fait c'est parce que tu fais un mysql_close dans ton fichier recherche. Il n'y a donc plus de ressource de connexion pour la suite de ton script traitementregion.php.
Par ailleurs il ne faut pas que tu ai des balises <html><head> etc ... dans recherche.php
Au passage, lorsque tu as une erreur qui te donne un numéro de ligne ça serait une bonne idée que tu surlignes celle ci pour que l'on puisse l'identifier rapidement et sans erreur. Même chose pour la démarcation des codes de tes 2 fichiers.