pas de résultats, pourquoi ?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 oct. 2006, 12:41

Est-ce que tu lis ce qu'on te dit ?

2ième fois : les balises

Ensuite : teste ta requête DIRECTEMENT sur la base (avec phpMyAdmin par exemple) et PAS avec PHP. Ainsi tu verras si ça te renvoie ce que tu veux. Si non, c'est que ta requête est fausse, tout simplement.

Eléphanteau du PHP | 22 Messages

14 oct. 2006, 12:45

Je pense que mon probléme réside dans le fait que les choix du formulaire ne sont pas pris en compte, car quelque soit ce que je choisi, le résultat est identique !(j'ai essayé en changeant les items de recherche !)
Je continue à chercher et surtout à récupérer correctment ce qui est choisi dnas le formulaire !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 oct. 2006, 12:48

Je pense que mon probléme réside dans le fait que les choix du formulaire ne sont pas pris en compte
Oui, c'est ce qu'on pense aussi, c'est pour ça qu'on t'as demandé d'afficher le résultat de ceci :
$sql = "SELECT 'references, immeubles, budget, localisations' FROM biens_immobiliers LIKE '%$immeubles%'";
echo $sql;
Ainsi, tu verrais le SQL généré, et tu verrais si ta variable $immeubles est bien passée.

Je parle bien d'affiche la chaîne de requête générée, et pas le résultat de l'exécution de cette requête.

Il faut lire et suivre les conseils donnés !

Edit : tu devrais même sortir la variable de la chaîne, en la concaténant, ce sera plus lisible pour toi :
$sql = "SELECT 'references, immeubles, budget, localisations' FROM biens_immobiliers LIKE '%".$immeubles."%'";

Eléphanteau du PHP | 22 Messages

14 oct. 2006, 12:58

Je pense aussi, que le fait de ne pas avoir mis de "valeur" de la iste du menu (exemple : menu : immeubles, valeurs de la liste : maisons, valeur 1 ) doit jouer dans le résultat de la recherche !

Pour la précision que tu m'indiques : le sql généré ! ...

Voilà ce que j'ai quand je valide le choix (résultats dans la page ... résultats :
Résultats de votre recherche Connexion réussie Resource id #3

J'ai retiré le LIKE ...

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 oct. 2006, 13:04

Non tu ne lis pas... ](*,)

Est-ce que ce que tu me montres ressemble à du SQL à ton avis ?

Je vois "Resource id #3", c'est donc que tu m'affiches le RESULTAT D'EXECUTION

Je recommence :
// ICI ON SEPARE LE VARIABLE DE LA CHAINE, C'EST PLUS LISIBLE
$requete = "SELECT 'references, immeubles, budget, localisations' FROM biens_immobiliers LIKE '%".$immeubles."%'"; 
echo $requete; // NOUS VOULONS CELA
$sql = mysql_query($requete) or die (mysql_error()); 
echo $sql; // TU NOUS DONNES CECI

Eléphanteau du PHP | 22 Messages

14 oct. 2006, 13:07

Oula, je patauge grave !
 $sql = mysql_query("SELECT immeubles, budget, localisations FROM biens_immobiliers") or die (mysql_error());
echo $sql;

ViPHP
ViPHP | 1961 Messages

14 oct. 2006, 13:09

Bonjour,

Je pense que si tu veux qu'on t'aide la solution est:
1 - Tu postes ton code du formulaire entre balises PHP
2 - Entre nouvelles balises PHP le script qui contient la requête
3 - Un echo de ta requête (sa construction et résultat ou msg 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

Eléphanteau du PHP | 22 Messages

14 oct. 2006, 13:12

OK, je recommence :
Voici le formulaire en html :
<form name="form1" method="post" action="resultats.php">

<tr>
<td height="26" colspan="2"> <select name="immeubles">
<option value="1" selected>Maisons</option>
<option value="2">Appartements</option>
<option value="3">Terrains</option>
<option value="4">Local commercial</option>
</select><tr>

<td width="44%" height="26"> <select name="budget">
<option selected>jusqu'&agrave; 50 000 &euro;</option>
<option>de 50 001 &agrave; 100 000 &euro;</option>
<option>de 10 001 &agrave; 150 000 &euro;</option>
<option>de 150 001 &agrave; 200 000 &euro;</option>
<option>de 200 0001 &agrave; 300 000 &euro;</option>
<option>+ de 300 000 &euro;</option>
</select></td>

<td width="56%"><div align="center">
<input type="submit" name="Submit" value="Recherche">
</div></td>
</tr>

<tr>

<td height="27">
<select name="localisation">
<option selected>Saintes</option>
<option>Port d'Envaux</option>
<option>de 5 &agrave; 10 km de Saintes</option>
<option>+ de 10 km de Saintes</option>
<option>Autres</option>
</select></td>

<td> <div align="center">
<label> </label>
&nbsp;</div></td>

</form>

Puis voici tout le code en php :
<?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'] : '';
$localisations = isset($_POST['localisations']) ? $_POST['localisations'] : '';
// la requete mysql
$sql = mysql_query("SELECT 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['localisations'].'<br />'; 
echo 'Resultats de la recherche: '.$row['budget'].'<br />'; 
echo 'Resultats de la recherche: '.$row['immeubles'].'<br />'; 

}
?>


Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 oct. 2006, 13:12

Oula, je patauge grave !
 $sql = mysql_query("SELECT immeubles, budget, localisations FROM biens_immobiliers") or die (mysql_error());
echo $sql;
Excuse moi mais à quoi sert ce message ? ça n'avance à rien, ça ne nous aide pas et toi non plus

Et je pense vraiment que tu ne lis pas attentivement car je t'ai mis le détail du code juste au dessus, en te montrant ce que nous attentions et ce que toi tu nous donnes, et tu nous repostes la même chose

Dans ce code, en faisant echo $sql tu affiches le résultat d'exécution, le résultat du mysql_query()

Nous nous voulons le SQL généré, c'est à dire la chaîne SQL que tu passes en paramètre à mysql_query(). Il faut donc SORTIR cette chaîne, et faire un echo de celle-ci

Je suis désolé, là ce n'est pas compliqué, et je t'ai mis le code détaillé pour nous fournir les infos.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 oct. 2006, 13:13

Mais on s'en fout de ça !

Je t'ai mis EXPLICITEMENT ce que l'on attendait et tu repostes tjrs la même chose !

Lis les commentaires en orange :
<?php // ICI ON SEPARE LE VARIABLE DE LA CHAINE, C'EST PLUS LISIBLE
$requete = "SELECT 'references, immeubles, budget, localisations' FROM biens_immobiliers LIKE '%".$immeubles."%'"; 
echo $requete; // NOUS VOULONS CELA
$sql = mysql_query($requete) or die (mysql_error()); 
echo $sql; // TU NOUS DONNES DEPUIS LE DEBUT CECI 

Eléphanteau du PHP | 22 Messages

14 oct. 2006, 13:14

J'ai fait un copié-coller des codes ...

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 oct. 2006, 13:15

J'ai fait un copié-coller des codes ...
De quels codes ? Les tiens ? Et bien arrête parceque ça ne correspond pas à ce que nous voulons.

Arrête le copier-coller, et regarde le mien.

Ce n'est pas compliqué, tu vas comprendre si tu lis bien attentivement.

Eléphanteau du PHP | 22 Messages

14 oct. 2006, 13:53

Bon, je ne comprends pas ce que tu veux .... désolée
J'ai recrée une autre page pour essayer de comrpendre ce que tu veux, où j'ai insérer simplement la connexion et la requestte : le résultat est le même qu'avec l'autre page, je n'ai pas d emessage d'erreur, jsute que le résultat affiché est farfelu, j'ai tous les immeubles qui appraissent

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 oct. 2006, 14:01

Je vais donc détailler encore plus :

- tu as un script. Dans ce script, tu exécutes une requête SQL (est-ce que tu sais ce qu'est le SQL ?) avec la fonction mysql_query(). Cette requête SQL est le mélange de texte en dur (SELECT FROM etc) et d'une variable ($immeubles)

- pour vérifier que tu exécutes bien la bonne requête, nous te demandons de l'afficher. C'est à dire afficher ceci :
$requete = "SELECT 'references, immeubles, budget, localisations' FROM biens_immobiliers LIKE '%".$immeubles."%'"; 
echo $requete;
Ainsi, tu auras sur ta page le code SQL généré par PHP, c'est à dire la requête avec la valeur de $immeubles

Or toi, depuis le début, tu nous affiches le résultat d'exécution, c'est à dire le retour renvoyé par mysql_query()

Donc au lieu de faire ça :
$sql = mysql_query("SELECT immeubles, budget, localisations FROM biens_immobiliers") or die (mysql_error());
echo $sql; 
Tu dois faire ça :
$requete = "SELECT 'references, immeubles, budget, localisations' FROM biens_immobiliers LIKE '%".$immeubles."%'"; 
echo $requete;
$sql = mysql_query($requete) or die (mysql_error()); 
et nous donner le résultat de "echo $requete"

Là, même pour un débutant, ça me parait quand même accessible. Et je ne vois pas comment être plus clair. :roll:

Eléphanteau du PHP | 22 Messages

14 oct. 2006, 14:16

Ok, j'ai fait ce que tu m'as dit, aucun info de la table n'apparaît !
J'ai des lignes vides :
Résultats de votre recherche Connexion réussie SELECT 'references, immeubles, budget, localisations' FROM biens_immobiliersResultats de la recherche:
Resultats de la recherche:
Resultats de la recherche:
Resultats de la recherche:
Resultats de la recherche:
etc... mais pas d'info ! ET ce en supprimant LIKE ...
J'ai remis LIKE % ... et voici le message d'erreur :
Résultats de votre recherche Connexion réussie SELECT 'references, immeubles, budget, localisations' FROM biens_immobiliers LIKE '%Maisons%'You have an error in your SQL syntax near 'LIKE '%Maisons%'' at line 1