Page 1 sur 4

pas de résultats, pourquoi ?

Posté : 13 oct. 2006, 12:49
par starfrog
Bonjour,
Voici mon code (pour un formulaire de recherche)
<?php
require_once('fichier_connection.php');
?>

<?php
// ta page resultats.php

// Récupère la variable
$immeubles = isset($_POST['immeubles']) ? $_POST['immeubles'] : '';
$budget = isset($_POST['budget']) ? $_POST['budget'] : '';
$localisation = isset($_POST['localisation']) ? $_POST['localisation'] : '';
// la requete mysql
$sql = mysql_query("SELECT immeubles FROM biens_immobiliers WHERE immeubles LIKE '%$immeubles%'") or die (mysql_error());

// affichage du résultat
while(list($immeubles, $budget, $localisation)=mysql_fetch_array($sql)){
echo 'Resultat de la recherche: '.$immeubles.', '.$budget.', '.$localisation.' <br />';
}
?>

La connnexion à la base est bonne, mais aucun résultats ne s'affiche ... Quelqu'un peut m'aider si'l vous plaît ?

Posté : 13 oct. 2006, 12:58
par Ajoloca
Bonjour,

Dans la ligne de query tu demanddes d'extraire un champ
SELECT immeubles FROM
dans ton while tu en demandes trois
list($immeubles, $budget, $localisation)=mysql_fetch_array($sql)

Posté : 13 oct. 2006, 14:06
par DocType
Il serait à l'avenir assez judicieux d'utiliser les balises php...
Ce serait un peu plus lisible

Posté : 13 oct. 2006, 14:21
par starfrog
Merci pour vos réponse et suggestion.
J'ai rectifié pour n'avoir qu'un champ dans le while ... mais rien ne s'affiche :?

Je ne comprends pas !

Posté : 13 oct. 2006, 14:31
par Maitrepylos
Ceci devrais donner le résultats éscompté
<?php
// affichage du résultat
while($row = mysql_fetch_array($sql)){
echo 'Resultat de la recherche: '.$row['immeubles'].'<br />';
}
?>

Posté : 13 oct. 2006, 14:40
par starfrog
Non, toujours pas ! :roll:

Posté : 13 oct. 2006, 14:43
par Ajoloca
Re,
Fais un echo de ta requête avant l'envoi, comme tu as la possiblité d'avoir des champs vides. On ne sais jamais.

Posté : 13 oct. 2006, 14:44
par starfrog
Je dois m'absenter à mon grand regret ...
>Je vous tiens au courant dés mon retour !
Merci pour votre intérêt !

Posté : 13 oct. 2006, 19:34
par starfrog
Dans la série ...
Un affichage se fait mais la référence de l'objet, son prix, ne s'affichent pas !
Et quelque soit la recherche, le résultat est toujours le même, seuls 2 immeubles apparaîssent et toujours les même ...
Là, je craque ... :evil:

Posté : 13 oct. 2006, 19:41
par Ajoloca
Re,

As-tu affichée la requête, poste le résultat.

Posté : 13 oct. 2006, 19:45
par starfrog
non, je n'ai pas fait d'echo à ma requête ... je n'ai pas de champ vide dans le formulaireque j'ai crée. j'avoue que là, je sature un peu !

Posté : 13 oct. 2006, 20:22
par ouckileou
non, je n'ai pas fait d'echo à ma requête ... je n'ai pas de champ vide dans le formulaireque j'ai crée. j'avoue que là, je sature un peu !
Affiche ta requête comme il te l'a dit, tu dis que tu n'as pas de champ vide mais tu n'en sais rien, peut-être que tu récupères mal les variables et que c'est ça qui fait que tu n'as pas les résultats attendus

Tu peux aussi aller voir ce sujet : PHP+SQL : Etapes à suivre pour résoudre les problèmes

Posté : 14 oct. 2006, 10:35
par starfrog
Merci encore pour ces prècieux conseils, le lien aussi est intéressant !
J'ai fait un echo à maa requête :
$sql = mysql_query("SELECT immeubles, budget, localisations FROM biens_immobiliers WHERE immeubles") or die (mysql_error());
echo $sql;


J'ai un * qui apparaît avant l'id :
Résultat : 
Connexion réussie Resource id #3Resultat de la recherche: 350 m² habitables comprenant 6 chambres, 3 salles de bains, salon, salle à manger, cuisine entièrement aménagée (grands volumes) . Cette superbe charentaise est dotée de plus de 200 m² de dépendances pouvant être aménagées facilement, le tout sur un terrain arboré et entièrement clos de 300 m²
Resultat de la recherche: 20 km de SAINTES, belle et respectueuse restauration pour ce moulin de 8 pièces principales tout confort sur environ 6.000 m² de terrain arboré avec cours d'eau. Environnement préservé.
 Voilà toujours les mêmes immeubles qui apparaissent !

Posté : 14 oct. 2006, 10:48
par ouckileou
En fait quand on dit afficher la requête, c'est affiché le SQL généré, voir s'il est correctement formé :
$requete = "SELECT immeubles FROM biens_immobiliers WHERE immeubles LIKE '%$immeubles%'";
echo $requete;
Si le SQL correspond à ce que tu attends, tu le testes directement dans phpMyAdmin. Si ça ne fonctionne pas bien, ajuste dans phpMyAdmin. C'est pa la peine de se prendre la tête à manipuler avec PHP tant que ta requête est pas bien formulée.

Parceque si tu as toujours les mêmes immeubles, c'est peut-être tout simplement que ce sont les seuls qui correspondent à ce que tu demandes ;)

Posté : 14 oct. 2006, 11:27
par starfrog
J'ai supprimé le LIKE %immeubles% ...
Voici ce que j'ai mis :
// Récupère la variable
$immeubles = isset($_POST['immeubles']) ? $_POST['immeubles'] : '';
$budget = isset($_POST['budget']) ? $_POST['budget'] : '';
$localisations = isset($_POST['localisation']) ? $_POST['localisation'] : '';
// la requete mysql
$sql = mysql_query("SELECT 'references, immeubles, budget, localisations' FROM biens_immobiliers") or die (mysql_error());
echo $sql;
// affichage du résultat
while($row = mysql_fetch_array($sql)){
echo 'Resultats de la recherche: '.$row['immeubles'].'<br />';

}

Mais peut être il ya encore une mauvaise manip !