Freelance Magento Toulouse – Entrepreneur
Dans: Magento
23 juin 2009Nous avons besoin parfois d’exécuter une requête SQL pour récupérer des champs de tables personnelles.
Attention, il ne faut pas non plus re créer la roue, par exemple, si on veut récupérer le nom d’un produit sur la page produit, on ne fait pas une requête SQL, on se sert de $_product->getData['name']; par exemple.
Les structures des requêtes sont exactement comme dans la documentation de Zend Framework.
Pour récupérer un champ « id » dans une table « joueur » ayant comme prénom « John », et comme nom « Doe » dans notre base de données :
$resource = Mage::getSingleton('core/resource');
$read = $resource->getConnection('core_read');
$userTable = $resource->getTableName('joueur');
$prenom = 'John';
$nom = 'Doe';
$select = $read->select()
->from('joueur',array('id'))
->where('prenom = ?', $prenom)
->where('nom = ?', $nom);
$retour_joueur = $select->query();
$row_joueur = $retour_joueur->fetchAll();
echo $row_joueur[0]['id']; // Affiche l'ID du joueur John Doe
Solution A Be Pas Faire : Ouvrir une connexion nous même pour repartir sur des fonctions PHP basiques
// Chargement du fichier contenant les mots de passes
$xml = simplexml_load_file('../../../app/etc/local.xml');
// On parse le fichier pour extraire les infos
$host = $xml->global->resources->default_setup->connection->host;
$username = $xml->global->resources->default_setup->connection->username;
$password = $xml->global->resources->default_setup->connection->password;
$dbname = $xml->global->resources->default_setup->connection->dbname;
// Connexion BDD
$db = mysql_connect($host, $username, $password);
mysql_select_db($dbname, $db);
// Requete SQL
$result = mysql_fetch_assoc(mysql_query(
"SELECT * FROM core_config_data WHERE path = 'blabla'"));
// Etc
Cependant, il est toujours préférable dans Magento de rendre une table compatible avec les Collections de Magento et donc de gérer vos données via un module personnalisé.
Je m'appelle Frédéric Martinez.
Je suis Freelance Magento et anciennement étudiant en Master MIAGE à Toulouse.
Ce site présente mon CV ainsi que mes réalisations professionnelles, personnelles et universitaires.
2 Commentaires pour Requetes SQL sous Magento
Récupérer l’e-mail de contact - Frédéric Martinez
juillet 29th, 2009 à 14 h 38 min
[...] Astuce : Pour trouver les autres adresses e-mails (Système > Configuration > Général > Adresses mail du magasin), modifier votre adresse e-mail avec un terme facilement trouvable en base de données : zeserseredsr@ersedr.com par exemple. Vous serez alors où faire votre requête SQL. [...]
Magento et les requêtes SQL | my-forge.eu
février 28th, 2010 à 1 h 51 min
[...] : http://www.martinez-frederic.fr/2009/06/23/requetes-sql-sous-magento/ Tags: Magento, Programmation, Script Share this [...]