A voir également:
- Requéte vide !!
- Supprimer page word vide - Guide
- Caractere vide - Guide
- Coeur vide - Forum Facebook
- Comment faire les coeur vide sur FB ✓ - Forum Facebook
- Excel différent de vide ✓ - Forum Excel
27 réponses
Sans le bout de ton code concerné ça va être difficile de te répondre ...
D'autant plus que tu ne dis même pas dans quel langage
D'autant plus que tu ne dis même pas dans quel langage
voila je dois faire une recherche sur ma base de donnée, apartir d'un formulaire saisie par l'utulisateur qui contient
type de transaction: vente, location
tybe bien: maison, villa, ...
region:...
nombre de pieces: 1,2,3,4...
srface : surf_min and surf_max
budget: budg_min and budg_max
je dois faire la jointure entre 3 tables : descriptif_logement, transaction, type_bien
a partir du formulaire j'ai posté les variables, puis le traitement de la requéte mais a chaque fois j'ai ce msg d'erreur :
Pb req recherche bien: Query est vide
et je compend pas !
Merci.
type de transaction: vente, location
tybe bien: maison, villa, ...
region:...
nombre de pieces: 1,2,3,4...
srface : surf_min and surf_max
budget: budg_min and budg_max
je dois faire la jointure entre 3 tables : descriptif_logement, transaction, type_bien
a partir du formulaire j'ai posté les variables, puis le traitement de la requéte mais a chaque fois j'ai ce msg d'erreur :
Pb req recherche bien: Query est vide
et je compend pas !
Merci.
ben excuse moi je ne connais pas le type de tes donées mais je me rend compte à première vue que toute tes données sont de type chaine de caractere ce que je ne trouve pas trop évident à mon avis en voulant faire un BETWEEN avec les chaine de caractère car tu met la variable $bugdg_max entre (') simple cote ce qui transforme directement la valeur de $budg_max en caractère moi je suis donc partie de la base que certaines données sot de type numérique.
$req_recherche=mysql_query( "SELECT * FROM descriptif_logement WHERE
(PRIX_LOG BETWEEN '".$budg_max."' AND '".$budg_min."' )AND (SURFACE_LOG BETWEEN '".$surf_max."' AND '".$surf_min."') AND REGION_LOG='".$region."' AND LIBE_TYPE_BIEN='".$typeb."' AND NBREP_LOG='".$nbrep."' ORDER BY IDLOG ");
$req = "SELECT * FROM descriptif_logement WHERE PRIX_LOG BETWEEN ".$budg_max." AND ".$budg_min."
AND SURFACE_LOG BETWEEN ".$surf_max." AND ".$surf_min." AND REGION_LOG='".$region."' AND LIBE_TYPE_BIEN='".$typeb."' AND NBREP_LOG=".$nbrep." ORDER BY IDLOG ";
$req_recherche = mysql_query($req);
vérifie bien les espaces entre les EXPRESSIONS de SQL et tes variables si non garrrrrrr à une erreur warning bien jolie.. ben essaie ça voir je suis encore là.
$req_recherche=mysql_query( "SELECT * FROM descriptif_logement WHERE
(PRIX_LOG BETWEEN '".$budg_max."' AND '".$budg_min."' )AND (SURFACE_LOG BETWEEN '".$surf_max."' AND '".$surf_min."') AND REGION_LOG='".$region."' AND LIBE_TYPE_BIEN='".$typeb."' AND NBREP_LOG='".$nbrep."' ORDER BY IDLOG ");
$req = "SELECT * FROM descriptif_logement WHERE PRIX_LOG BETWEEN ".$budg_max." AND ".$budg_min."
AND SURFACE_LOG BETWEEN ".$surf_max." AND ".$surf_min." AND REGION_LOG='".$region."' AND LIBE_TYPE_BIEN='".$typeb."' AND NBREP_LOG=".$nbrep." ORDER BY IDLOG ";
$req_recherche = mysql_query($req);
vérifie bien les espaces entre les EXPRESSIONS de SQL et tes variables si non garrrrrrr à une erreur warning bien jolie.. ben essaie ça voir je suis encore là.
$req = "SELECT * FROM descriptif_logement WHERE PRIX_LOG BETWEEN ".$budg_max." AND ".$budg_min."
AND SURFACE_LOG BETWEEN ".$surf_max." AND ".$surf_min." AND REGION_LOG='".$region."' AND NBREP_LOG=".$nbrep." ORDER BY IDLOG ";
$req_recherche= mysql_query($req) or die ("Pb req recherche bien: ".mysql_error());
if(mysql_num_rows($req_recherche >0))
{
//si on a des resultats
//affichage
while($row=mysql_fetch_array($reponse))......................................
}
AND SURFACE_LOG BETWEEN ".$surf_max." AND ".$surf_min." AND REGION_LOG='".$region."' AND NBREP_LOG=".$nbrep." ORDER BY IDLOG ";
$req_recherche= mysql_query($req) or die ("Pb req recherche bien: ".mysql_error());
if(mysql_num_rows($req_recherche >0))
{
//si on a des resultats
//affichage
while($row=mysql_fetch_array($reponse))......................................
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
$req_recherche= mysql_query($req) or die ("Pb req recherche bien: ".mysql_error());
if(mysql_num_rows($req_recherche >0))
{
//si on a des resultats
//affichage
while($row=mysql_fetch_array($reponse))......................................
}
$req_recherche= mysql_query($req) or die ("Pb req recherche bien: ".mysql_error());
if(mysql_num_rows($req_recherche )>0)
{
//si on a des resultats
//affichage
while($row=mysql_fetch_array($reponse)){
}......................................
}
if(mysql_num_rows($req_recherche >0))
{
//si on a des resultats
//affichage
while($row=mysql_fetch_array($reponse))......................................
}
$req_recherche= mysql_query($req) or die ("Pb req recherche bien: ".mysql_error());
if(mysql_num_rows($req_recherche )>0)
{
//si on a des resultats
//affichage
while($row=mysql_fetch_array($reponse)){
}......................................
}
s'il n'y a pas d"erreur j evais te demander de vérifier 2 chose importantes
1. vérifie d'abord les types de données. tu t'assure qu'ils sont compatibles avec les types introduit par ta requette
2. vérifie que les condition d'au moins un enregistrement de ta table vérifient celles que tu essaie de faire entrer dans la table car je voie que la requete utilise trop de condition donc tu doit au moins vérifier qu'il existe un enregistrement dans la table qui répond à ce que tu veux.
fait moi signe.
1. vérifie d'abord les types de données. tu t'assure qu'ils sont compatibles avec les types introduit par ta requette
2. vérifie que les condition d'au moins un enregistrement de ta table vérifient celles que tu essaie de faire entrer dans la table car je voie que la requete utilise trop de condition donc tu doit au moins vérifier qu'il existe un enregistrement dans la table qui répond à ce que tu veux.
fait moi signe.
en PHP ou en SQL?
en PHP
idcategories=0 ou idcategories=1 ou idcategories=2
if( (idcategories == 0) || (idcategories == 1) || (idcategories == 2)){
}
en PHP
idcategories=0 ou idcategories=1 ou idcategories=2
if( (idcategories == 0) || (idcategories == 1) || (idcategories == 2)){
}
DESCRIPTIF_LOGEMENT :
IDLOG: INT
IDCATEGORIES: INT (clé etranger de la table transaction concernant la transaction "vente" ou "location")
IDVILLE: INT
PRIX_LOG: decimal(10,0)
SURFACE_LOG: decimal(10,0)
REGION_LOG: varchar(30)
NBREP_LOG: decimal(2,0)
ETAGE_LOG: varchar(20)
PHOTOS_LOG: text
CARACTERISTIQUES_LOG: mediumtext
IDLOG: INT
IDCATEGORIES: INT (clé etranger de la table transaction concernant la transaction "vente" ou "location")
IDVILLE: INT
PRIX_LOG: decimal(10,0)
SURFACE_LOG: decimal(10,0)
REGION_LOG: varchar(30)
NBREP_LOG: decimal(2,0)
ETAGE_LOG: varchar(20)
PHOTOS_LOG: text
CARACTERISTIQUES_LOG: mediumtext
et ta requette que tu veux est la quelle
dit moi exactement ce que tu veux afficher je le test et je te donne la solution
dit moi exactement ce que tu veux afficher je le test et je te donne la solution
ok, j'aprécie bcp ton aide , Merci William
Alors:
c'est mon formulaire :
* vente location --->table categories qui a un clé étranger dans la table descriptif_logement
* region (selection liste deroulante) --->descriptif_logement contient déja un champ region_log
* type biens (selection liste deroulante) --->table type_bien qui n'a pas de clé étranger ds la table descriptif_logement
* nbre de piéces --->descriptif_logement contient déja un champ nbrep_log
* surface --->descriptif_logement contient déja un champ Surface_log
* budget --->descriptif_logement contient déja un champ Prix_log
la requéte consiste à ; quelque soit le chois selectionne du visiteur dans la premiére page du formulaire, la requéte va chercher et comparer les données saisie par rapport a ce qu'on dans la base et afficher le resultat.
(comment je peu envoyer une image qui contient un imprime écran sur ce site, car j'explique pas trés bien) !!
Merci bcp.merci
Alors:
c'est mon formulaire :
* vente location --->table categories qui a un clé étranger dans la table descriptif_logement
* region (selection liste deroulante) --->descriptif_logement contient déja un champ region_log
* type biens (selection liste deroulante) --->table type_bien qui n'a pas de clé étranger ds la table descriptif_logement
* nbre de piéces --->descriptif_logement contient déja un champ nbrep_log
* surface --->descriptif_logement contient déja un champ Surface_log
* budget --->descriptif_logement contient déja un champ Prix_log
la requéte consiste à ; quelque soit le chois selectionne du visiteur dans la premiére page du formulaire, la requéte va chercher et comparer les données saisie par rapport a ce qu'on dans la base et afficher le resultat.
(comment je peu envoyer une image qui contient un imprime écran sur ce site, car j'explique pas trés bien) !!
Merci bcp.merci
OK
je voie mais tu as combien de table en tout?
donne moiles table avec les attributs sous la forme
TABLE1 (att_1,att_2,att_3...)
TABLE2 (att_a,att_b,...)
c'est plus comprehensible ainsi et ça facilite la tache
je voie mais tu as combien de table en tout?
donne moiles table avec les attributs sous la forme
TABLE1 (att_1,att_2,att_3...)
TABLE2 (att_a,att_b,...)
c'est plus comprehensible ainsi et ça facilite la tache
Les voila c'es mon MLD :
Admin (idadmin, login, password)
Alerte_mail (idalertemail, nom_alerte, prenom_alerte, adresse_alerte, cp_alerte, localite, tet_alerte, jour, mois, annee, region_alerte, type_bien_alerte, transaction_alerte, surface_alerts, nbre_pieces_alerte, budget_alerte, nationalite, sexe)
Catégories (idcategories, libe_categorie)
Descriptif_logement (idlog, #idcategories, #idnouveautes, #idprop, #idville, surface_log, prix_log, Nbrep_log, etage_log, caractéristiques_log, photo_logo, region_log)
Consulte (#idutilisateur, #idlog)
Etat (idEtat, #idtransaction, libe_etat)
Livreor (idlivreor, pseudo, message)
Newsletter (idnews, e_mail)
Nouveautes (idnouveautes, libe_nouveautes, photos_nouv)
Galeries (idgaleries, #idlog, libe_galeries, description, picture, extension)
Proprietaire (idprop, nom_prop, prenom_prop, adresse_log, mail_log)
Région (idregion, libe_region)
Subir (#idtypebien, #idtransaction)
Transaction (idtransaction, libe_transaction)
Type_logement (idtypelog, #idcategories, libe_type_bien)
Utulisateur (idutilisateur, #idnews, #livreor, #idalertemail, #idcontact)
Ville (idville, #idregion, libe_ville)
Contact (idcontact, nom_contact, prenom_contact, adresse_contact, CP_contact, ville_contact, tel_contact, pays_contact, fax_contact, email_contact, commentaires)
Admin (idadmin, login, password)
Alerte_mail (idalertemail, nom_alerte, prenom_alerte, adresse_alerte, cp_alerte, localite, tet_alerte, jour, mois, annee, region_alerte, type_bien_alerte, transaction_alerte, surface_alerts, nbre_pieces_alerte, budget_alerte, nationalite, sexe)
Catégories (idcategories, libe_categorie)
Descriptif_logement (idlog, #idcategories, #idnouveautes, #idprop, #idville, surface_log, prix_log, Nbrep_log, etage_log, caractéristiques_log, photo_logo, region_log)
Consulte (#idutilisateur, #idlog)
Etat (idEtat, #idtransaction, libe_etat)
Livreor (idlivreor, pseudo, message)
Newsletter (idnews, e_mail)
Nouveautes (idnouveautes, libe_nouveautes, photos_nouv)
Galeries (idgaleries, #idlog, libe_galeries, description, picture, extension)
Proprietaire (idprop, nom_prop, prenom_prop, adresse_log, mail_log)
Région (idregion, libe_region)
Subir (#idtypebien, #idtransaction)
Transaction (idtransaction, libe_transaction)
Type_logement (idtypelog, #idcategories, libe_type_bien)
Utulisateur (idutilisateur, #idnews, #livreor, #idalertemail, #idcontact)
Ville (idville, #idregion, libe_ville)
Contact (idcontact, nom_contact, prenom_contact, adresse_contact, CP_contact, ville_contact, tel_contact, pays_contact, fax_contact, email_contact, commentaires)
excuse moi une minute
$req = "SELECT * FROM descriptif_logement WHERE PRIX_LOG BETWEEN ".$budg_max." AND ".$budg_min."
AND SURFACE_LOG BETWEEN ".$surf_max." AND ".$surf_min." AND REGION_LOG='".$region."' AND LIBE_TYPE_BIEN='".$typeb."' AND NBREP_LOG=".$nbrep." ORDER BY IDLOG ";
je ne trouve pas le champ (LIBE_TYPE_BIEN) dans la table descriptif_logement
je le compare avec quoi ? car je ne l'ai pas...
$req = "SELECT * FROM descriptif_logement WHERE PRIX_LOG BETWEEN ".$budg_max." AND ".$budg_min."
AND SURFACE_LOG BETWEEN ".$surf_max." AND ".$surf_min." AND REGION_LOG='".$region."' AND LIBE_TYPE_BIEN='".$typeb."' AND NBREP_LOG=".$nbrep." ORDER BY IDLOG ";
je ne trouve pas le champ (LIBE_TYPE_BIEN) dans la table descriptif_logement
je le compare avec quoi ? car je ne l'ai pas...
Libe_type_bien apprtient a la table type_logement (tu ois le trouver dans le dernier msg), j'ai essayé de faire la
jointure des deux table mais ca m'a afficher la fameuse "Query est vide" donc je l'ai enlever afin de testé si ca marche
avant avec les champs propre a la table descriptif_logement sans faire de jointure.
jointure des deux table mais ca m'a afficher la fameuse "Query est vide" donc je l'ai enlever afin de testé si ca marche
avant avec les champs propre a la table descriptif_logement sans faire de jointure.
Ok cotta voici une version simple de ton Script qui fonctionne bien chez moi j'ai dû ommetre certains truc pour que ça donne, j'ai pas pris en compte les jointures on peut les voir a près juste essaie d'abrd celui ci et on vera
<body>
<table width="405" height="68" align="center">
<tr>
<td><form id="form1" name="form1" method="post" action="">
<table width="318" align="center">
<tr>
<td width="114"> </td>
<td width="162"> </td>
<td width="26"> </td>
</tr>
<tr>
<td>A</td>
<td width="162"><label>
<input name="Transaction" type="text" id="Transaction" />
</label></td>
<td width="26"> </td>
</tr>
<tr>
<td>region</td>
<td><label>
<input name="region" type="text" id="region" />
</label></td>
<td> </td>
</tr>
<tr>
<td>budg_min</td>
<td><label>
<input name="budg_min" type="text" id="budg_min" />
</label></td>
<td> </td>
</tr>
<tr>
<td>budg_max</td>
<td><label>
<input name="budg_max" type="text" id="budg_max" />
</label></td>
<td> </td>
</tr>
<tr>
<td>surf_min</td>
<td><label>
<input name="surf_min" type="text" id="surf_min" />
</label></td>
<td> </td>
</tr>
<tr>
<td>surf_max</td>
<td><label>
<input name="surf_max" type="text" id="surf_max" />
</label></td>
<td> </td>
</tr>
<tr>
<td>nbrep</td>
<td><label>
<input name="nb_piece" type="text" id="nb_piece" />
</label></td>
<td> </td>
</tr>
<tr>
<td>typeb</td>
<td><label>
<input name="typeb" type="text" id="typeb" />
</label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><label>
<input type="submit" name="Submit" value="Envoyer" />
</label></td>
<td> </td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<p> </p>
<p> </p>
<?php
// connection à la BDD
mysql_connect('localhost','root','');
mysql_select_db('test');
// contruction du tableau
echo "<center><table border=1 bordercolor='#000000' >";
echo "<tr face='arial' size='1' bgcolor='#ff6600' >";
echo "<td ><b><font face='Arial' size='2'>IDTransaction</font></b> </td>\n";
echo "<td ><font face='Arial' size='2'> Prix</font></b> </td>\n";
echo "<td ><b><font face='Arial' size='2'> Surface</font></b> </td>\n";
echo "<td><b><font face='Arial' size='2'> Region</font> </b> </td>\n";
echo "<td><b><font face='Arial' size='2'> Nombre de Piéce</font> </b> </td>\n";
echo "</tr>";
if(isset($_POST['Transaction']) && isset($_POST['region']) && isset($_POST['budg_max']) && isset($_POST['budg_min']) && isset($_POST['surf_max']) && isset($_POST['surf_min']) && isset($_POST['nb_piece'])){
$A=$_POST['Transaction'];
$region=$_POST['region'];
$typeb=$_POST['typeb'];
$budg_min=$_POST['budg_min'];
$budg_max=$_POST['budg_max'];
$surf_max=$_POST['surf_max'];
$surf_min=$_POST['surf_min'];
$nbrep=$_POST['nb_piece'];
$req = "SELECT *
FROM descriptif_logement
WHERE (PRIX_LOG BETWEEN ".$budg_min." AND ".$budg_max.")
AND (SURFACE_LOG BETWEEN ".$surf_min." AND ".$surf_max.")
AND REGION_LOG LIKE '".$region."'
AND NBREP_LOG = ".$nbrep."
ORDER BY IDLOG";
$result = mysql_query($req);
while($rest = mysql_fetch_array($result)){
echo '<tr>';
// echo '<td>'.$row["IDTRANSACTION"].'</td>';
echo '<td>'.$rest["IDCATEGORIES"].'</td>';
echo '<td>'.$rest["PRIX_LOG"].'</td>';
echo '<td>'.$rest["SURFACE_LOG"].'</td>';
echo '<td>'.$rest["REGION_LOG"].'</td>';
echo '<td>'.$rest["ETAGE_LOG"].'</td>';
echo '</tr>';
}
echo "</table></center>";
mysql_close();
}
else{
echo "Aucun resultat";
}
?>
</body>
et voici la table qui va avec j'ai du entrer les données de la table sous MySQL tu peux en faire autant
fait juste le copie colé pour vérifier et de là on poura modifier avec les jointures par la suite les données suivante vérifient
il y'a le premier et le dernier champs du formulaire n'interviennent pas dans la requette mais tu doit introduire les donner lors de l'envoie dans ces champs car la condition SI est valable pour ces champs en d'autres termes tous les champs du formulaires doivent etre rempli pour qu'il y'ai une execution et pour la région essaie de metre paris, les autres tu encadre la surface, le prix de la base ...
s'il y'a un pb je ss encore debout
j'ai copié ce code sous MySQL tu peux simplement prendre les valeurs et les entrer dans la table et laissé le code de la requette(c'est juste pour te montrer la table que j'ai utilisé)
Bonne chance
fait juste le copie colé pour vérifier et de là on poura modifier avec les jointures par la suite les données suivante vérifient
il y'a le premier et le dernier champs du formulaire n'interviennent pas dans la requette mais tu doit introduire les donner lors de l'envoie dans ces champs car la condition SI est valable pour ces champs en d'autres termes tous les champs du formulaires doivent etre rempli pour qu'il y'ai une execution et pour la région essaie de metre paris, les autres tu encadre la surface, le prix de la base ...
s'il y'a un pb je ss encore debout
j'ai copié ce code sous MySQL tu peux simplement prendre les valeurs et les entrer dans la table et laissé le code de la requette(c'est juste pour te montrer la table que j'ai utilisé)
INSERT INTO `descriptif_logement` ( `IDLOG` , `IDCATEGORIES` , `IDVILLE` , `PRIX_LOG` , `SURFACE_LOG` , `REGION_LOG` , `NBREP_LOG` , `ETAGE_LOG` , `PHOTOS_LOG` , `CARACTERISTIQUES_LOG` ) VALUES ( '1', '11', '12', '124', '243', 'Paris', '4', 'je ne sais pas ', 'trop de chose', 'encore de chose...' );
Bonne chance
les deux tableau juste pour la présentation
moi le code fonctionne chez moi je l'ai tester
as tu copier exactement le même code? sans rien modifié et remplir la table avec les données que je t'ai remises?
si tel est le cas ça devrai fonctionner
moi le code fonctionne chez moi je l'ai tester
as tu copier exactement le même code? sans rien modifié et remplir la table avec les données que je t'ai remises?
si tel est le cas ça devrai fonctionner
c'est du PHP et mon code c'est un code de recherche
voila je le met :
<?php
// connexion a la base de données
...
mysql_connect($localhost,$user,$password) or die ("Pb connexion serveur ".mysql_error());
mysql_select_db($base) or die ("Pb selection base ".mysql_error());
//Récupération des variables
if ( (isset($_POST['Transaction'])) && (isset($_POST['region'])) && (isset($_POST['typeb'])) && (isset($_POST['budg_min']))&&
(isset($_POST['budg_max'])) &&(isset($_POST['surf_max']))&& (isset($_POST['surf_min'])) )
{
$A=$_POST['Transaction'];
$region=$_POST['region'];
$typeb=$_POST['typeb'];
$budg_min=$_POST['budg_min'];
$budg_max=$_POST['budg_max'];
$surf_max=$_POST['surf_max'];
$surf_min=$_POST['surf_min'];
$nbrep=$_POST['nb_piece'];
}
?>
<?php
//Resultats de la recherche
$req_recherche=mysql_query( "SELECT * FROM descriptif_logement WHERE
(PRIX_LOG BETWEEN '".$budg_max."' AND '".$budg_min."' )AND (SURFACE_LOG BETWEEN '".$surf_max."' AND '".$surf_min."') AND REGION_LOG='".$region."' AND LIBE_TYPE_BIEN='".$typeb."' AND NBREP_LOG='".$nbrep."' ORDER BY IDLOG ");
$reponse_rech=mysql_query($req_recherche) or die ("Pb req recherche bien: ".mysql_error());
if(mysql_num_rows($reponse_rech >0))
{
//si on a des resultats
//affichage
while($row=mysql_fetch_array($reponse_rech))
{
echo '<tr>';
echo '<td>'.$row["IDTRANSACTION"].'</td>';
echo '<td>'.$row["prix"].'</td>';
echo '<td>'.$row["surface"].'</td>';
echo '<td>'.$row["region"].'</td>';
echo '<td>'.$row["NBRE_PIECES"].'</td>';
echo '</tr>';
echo " $row"; }
}
else
{
echo "Aucun bien ne correspond à votre recherche";
}
?>
<?php
mysql_close(); //fermeture connexion à la base
?>