pas de résultats, pourquoi ?

Eléphanteau du PHP | 22 Messages

13 oct. 2006, 12:49

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 ?

ViPHP
ViPHP | 1961 Messages

13 oct. 2006, 12:58

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)
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Mammouth du PHP | 1776 Messages

13 oct. 2006, 14:06

Il serait à l'avenir assez judicieux d'utiliser les balises php...
Ce serait un peu plus lisible

Eléphanteau du PHP | 22 Messages

13 oct. 2006, 14:21

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 !

Mammouth du PHP | 1029 Messages

13 oct. 2006, 14:31

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 />';
}
?>
L'expérience est la somme de toutes nos erreurs.

Eléphanteau du PHP | 22 Messages

13 oct. 2006, 14:40

Non, toujours pas ! :roll:

ViPHP
ViPHP | 1961 Messages

13 oct. 2006, 14:43

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.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 22 Messages

13 oct. 2006, 14:44

Je dois m'absenter à mon grand regret ...
>Je vous tiens au courant dés mon retour !
Merci pour votre intérêt !

Eléphanteau du PHP | 22 Messages

13 oct. 2006, 19:34

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:

ViPHP
ViPHP | 1961 Messages

13 oct. 2006, 19:41

Re,

As-tu affichée la requête, poste le résultat.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 22 Messages

13 oct. 2006, 19:45

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 !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

13 oct. 2006, 20:22

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

Eléphanteau du PHP | 22 Messages

14 oct. 2006, 10:35

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 !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 oct. 2006, 10:48

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 ;)

Eléphanteau du PHP | 22 Messages

14 oct. 2006, 11:27

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 !