Philippe974 Posted May 4, 2012 Share Posted May 4, 2012 Bonjour, je suis en train de développer mon premier module prestashop, j'ai réussi à créer les tables lors de l'installation du module, et supprimer les tables lors de la désinstallation. Mais dans le module, je souhaiterai faire appel aux variables stockées dans mes tables. J'ai essayé le mysql_fetch_array() et le mysql_fetch_row() pour récupérer des valeurs mais ça ne fonctionne pas. En étudiant le code des autres, je vois bien que ces fonctions ne sont pas utilisées. J'ai bien mis une include pour le config.inc.php, d'ailleurs j'ai réussi à faire une select avec : $database=Db::getInstance()->ExecuteS('SELECT * FROM `' . _DB_PREFIX_ . 'monmodule` where `id`=' . $_GET['id']); En mettant monmodule.php?id=xxx Il renvoit bien la requête, le problème c'est que je ne peux pas exploiter les données du tableau. Quelles sont les fonctions à utiliser? Merci de votre aide. Link to comment Share on other sites More sharing options...
Philippe974 Posted May 4, 2012 Author Share Posted May 4, 2012 Désolé pour mon post 15 fois, mais ça m'affichait une erreur MySQL, je pensais que mon post n'était pas pris en compte ! Link to comment Share on other sites More sharing options...
Broceliande Posted May 4, 2012 Share Posted May 4, 2012 Bonjour, je suis en train de développer mon premier module prestashop, j'ai réussi à créer les tables lors de l'installation du module, et supprimer les tables lors de la désinstallation. Mais dans le module, je souhaiterai faire appel aux variables stockées dans mes tables. J'ai essayé le mysql_fetch_array() et le mysql_fetch_row() pour récupérer des valeurs mais ça ne fonctionne pas. En étudiant le code des autres, je vois bien que ces fonctions ne sont pas utilisées. J'ai bien mis une include pour le config.inc.php, d'ailleurs j'ai réussi à faire une select avec : $database=Db::getInstance()->ExecuteS('SELECT * FROM `' . _DB_PREFIX_ . 'monmodule` where `id`=' . $_GET['id']); En mettant monmodule.php?id=xxx Il renvoit bien la requête, le problème c'est que je ne peux pas exploiter les données du tableau. Quelles sont les fonctions à utiliser? Merci de votre aide. Hello, A proprement parler ce que tu es en train de développer n'est pour l'heure pas un module mais s'apparente plus à un controller. (ne serait-ce qu'en raison de ça "J'ai bien mis une include pour le config.inc.php") Bref quoiqu'il en soit $result te retourne un tableau de résultats que tu peux parcourir assez facilement via un foreach, si tu attends plusieurs résultats : foreach($result as $row) { $champ1 = $row['monchamp']; $champ2 = $row['monautrechamp']; .... } Si tu n'attends qu'un seul résultat et ne veux pas faire de boucle, tu vas avec ExecuteS() devoir au moins adresser le premier résultat de cette manière : $fieldval = $result[0]['monchamp']; Si tu attends un seul résultat ne veux pas d'index sur une seule ligne , alors il sera préférable d'utiliser getRow plutôt que ExecuteS : $result = Db->getInstance()->getRow($sql); dans ce cas seulement tu aurais directement accès au champ : $result['mochamp'] mysql_fetch_array() et le mysql_fetch_row() ... sont sans effet car déja effectués par la classe Db ... En espérant dans que ceci t'aidera 1 Link to comment Share on other sites More sharing options...
Philippe974 Posted May 4, 2012 Author Share Posted May 4, 2012 (edited) Le foreach, c'est exactement ça qui fonctionne, (j'avais testé avec une boucle while) merci de ton aide rapide. Bonne journée EDIT : Par contre j'ai un souci, les résultats s'affichent de cette manière : a,b b,c c Edited May 4, 2012 by Philippe974 (see edit history) Link to comment Share on other sites More sharing options...
Broceliande Posted May 4, 2012 Share Posted May 4, 2012 Le foreach, c'est exactement ça qui fonctionne, (j'avais testé avec une boucle while) merci de ton aide rapide. Bonne journée EDIT : Par contre j'ai un souci, les résultats s'affichent de cette manière : a,b b,c c hmm là j'avoue ne pas comprendre ce que tu veux dire Link to comment Share on other sites More sharing options...
Philippe974 Posted May 4, 2012 Author Share Posted May 4, 2012 Non c'est bon, j'ai fait un ExecuteS au lieu d'un getRow Merci de ton aide Broceliande. Tout est fonctionnel Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now