Forum CMS Made Simple FR

Version complète : [Résolu] Récupération de données : résultat vide !
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Bonjour,
Enciore une difficulté de syntaxe php probablement, mais je ne trouve pas !
J'interroge ma base de données via le formulaire et la requête mentionnée au post d'hier !
Le résultat de ma requête est vide quand j'utilise le code avec le nom de variable
Code :
global $gCms; //pour pouvoir travailler avec les objets, classes et méthodes du cms
// Récupération des données
if (isset($_POST['trouver'])) {
    $spe=$_POST['specialites'];
    $spedb=trim($spe);
    $nom=$_POST['nom'];
    $nomdb=trim($nom)
    echo $spe;
    echo $nom;
}
$db = &$gCms->GetDb(); //connection à la bd cms
$query = 'SELECT * FROM cms_0praticiens WHERE `nom` LIKE \'$nom\' ';
$dbresult = &$db->Execute($query);//exécution de la requête
        while ($dbresult && !$dbresult->EOF)
, alors qu'il est rempli si j'utilise la valeur réelle !
Code :
global $gCms; //pour pouvoir travailler avec les objets, classes et méthodes du cms
// Récupération des données
if (isset($_POST['trouver'])) {
    $spe=$_POST['specialites'];
    $spedb=trim($spe);
    $nom=$_POST['nom'];
    $nomdb=trim($nom)
    echo $spe;
    echo $nom;
}
$db = &$gCms->GetDb(); //connection à la bd cms
$query = 'SELECT * FROM cms_0praticiens WHERE `nom` LIKE \'Arnal\' ORDER BY `qualite`,`cp`';
$dbresult = &$db->Execute($query);//exécution de la requête
        while ($dbresult && !$dbresult->EOF)
Je récupère bien les valeurs de mes variables, et j'arrive à les afficher, mais pas à les passer à la requête, qu'elle que soit la syntaxe que j'essaye (y compris heredoc) !
Où est mon erreur svp ?
NB : j'ai questionné sur forum PHP ... mais aucune des solutions proposées ne fonctionnent !
Merci.
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS : 1.6.7
#~ Version du MLE si existante :
#~ Informations Système :
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~

ceadreak

Bonjour,

Vérifies toujours dans la source de ta page que le nom de ton champ texte est bien "nom".
Peut-être que cmsms lui a attribuer un id + le nom que tu lui as donné.

As-tu un lien vers ce formulaire?
Me revoilà !
Il ne semble pas que ma variable soit renommée, puisque le test simple de l'affichage de la valeur retournée est juste !
La page de mon fomulaire :
- http://www.amavie.org/index.php?page=annuPraticiens
Et la page de résultat :
- http://www.amavie.org/index.php?page=annuPrat
(en haut à gauche, les valeurs relevées s'affichant !)
NB : pour l'instant, j'ai forcé le résultat du tableau en indiquant la valeur directement dans la requête :
Une autre idée ?
Merci.

ceadreak

Alors la je sèche ...
Peut-être utiliser une autre syntaxe pour ta query mais je pense pas que ca changera grand chose.
Mais bon, parfois il y a des choses inexplicables ...

Essaies ceci :
Code :
$query = " SELECT * FROM cms_0praticiens WHERE nom LIKE '{$nom}' ORDER BY qualite,cp";
au fait :

Philipppe a écrit :(en haut à gauche, les valeurs relevées s'affichant !)
Je vois rien ...
Ha ben toi .... quand tu sèches ... tu es super!
ceadreak a écrit :Essaies ceci :
Code :
$query = " SELECT * FROM cms_0praticiens WHERE nom LIKE '{$nom}' ORDER BY qualite,cp";
Celui-là fonctionne .... ! et je ne vais pas prendre de temps aujourd'hui pour comprendre pourquoi cette syntaxe là ... et pas les autres !
Mais j'y reviendrais: il y a sûrement pas mal d'autres pas très débrouillés en Php/MySql qui aimeront savoir la réponse !
ceadreak a écrit :
Philipppe a écrit :(en haut à gauche, les valeurs relevées s'affichant !)
Je vois rien ...
Si si, dans la page ... annuPrat des résultats, au dessus du tableau, en haut à gauche ... il y a juste deux mots = les valeurs des variables récupérées.
Mais je vais les enlever pour finaliser ma page ... alors !

Merci à toi !
Alors la surprise du chef ... c'est que le compilateur smarty a accepté la syntaxe proposée :
Code :
$query = "SELECT * FROM cms_0praticiens WHERE nom LIKE '{$nom}' ORDER BY qualite,cp ";
avec les {} ...
et l'a corrigée en :
Code :
$query = "SELECT * FROM cms_0praticiens WHERE nom LIKE '$nom' ORDER BY qualite,cp ";
sans les {} !

Et je regarde ce code depuis tellement souvent que je n'avais pas remarqué tout à l'heure !

Donc, le meilleur code, c'est encore une fois le plus dépouillé ... quand c'est possible !
Merci !