Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/11/2011, 15h22   #1
Membre habitué
 
Homme
Développeur Web
Inscription : janvier 2008
Messages : 365
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2008
Messages : 365
Points : 140
Points : 140
Par défaut Optimiser une requête avec des tableaux PHP ?

Bonjour,

Je voudrais optimiser une requête SQL en utilisant des tableaux PHP.


Chaque membre est lié à des intérêts.

Pour chaque association membre/intérêt il existe une valeur en fonction de l'appréciation de l'intérêt par le membre.

Cette note permet de déterminer les intérêts pour lesquels le membre est le plus concerné.

Je voudrais réaliser une requête qui permet d'afficher les articles d'un intérêt en prenant compte la valeur de l'association afin d'afficher les articles les plus pertinent en priorité pour un membre.

Afin d'optimiser le requête, ces valeurs ne changeant que très rarement, je voudrais les récupérer depuis un tableau PHP plutôt que par le moteur SQL afin d'avoir la requête la plus optimisée possible.

Est-il possible d'intégrer un tableau [CodeInteret][Valeur] dans la requête ?

La requête avec la chaîne "12,19,52,36" qui correspond aux intérêts du membre (chargé en SESSION par exemple) :

Code :
1
2
3
SELECT CodeArticle
FROM article
WHERE CodeInteret IN (12, 19, 52, 36)
Alors je pourrais également exécuter autant de requête que le membre possède d’intérêt, mais le nombre d'intérêt n'étant pas limité, je pense que ça peut vite devenir une usine à gaz.

De plus, je voudrais éviter d'avoir à charger 500 articles via SQL pour afficher la première page qui en comporte uniquement 25.
Khleo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 15h32   #2
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 248
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 248
Points : 1 506
Points : 1 506
Citation:
Envoyé par Khleo Voir le message
Est-il possible d'intégrer un tableau [CodeInteret][Valeur] dans la requête ?
oui, par exemple :
Code php :
1
2
3
4
5
6
$tableau=array(12, 19, 52, 36);
$requete = "SELECT CodeArticle
FROM article
WHERE CodeInteret IN ";
$codes = implode(", ", $tableau);
$requete.=$codes;
Citation:
Envoyé par Khleo Voir le message
je voudrais éviter d'avoir à charger 500 articles via SQL pour afficher la première page qui en comporte uniquement 25
tu peux utiliser limit
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

N'oubliez pas le Le tag resolu.

Need_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 15h42   #3
Membre habitué
 
Homme
Développeur Web
Inscription : janvier 2008
Messages : 365
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2008
Messages : 365
Points : 140
Points : 140
Citation:
Envoyé par Doksuri Voir le message
oui, par exemple :
Code php :
1
2
3
4
5
6
$tableau=array(12, 19, 52, 36);
$requete = "SELECT CodeArticle
FROM article
WHERE CodeInteret IN ";
$codes = implode(", ", $tableau);
$requete.=$codes;
Oui mais il s'agit d'un tableau à 1 colonne, je voudrais pouvoir ajouter un tableau de 2 colonnes pour pouvoir associer une valeur à un intérêt : CodeInteret => ValeurDeInteret.

Citation:
Envoyé par Doksuri Voir le message
tu peux utiliser limit
Oui mais si l'article qui sera au final considéré comme le plus pertinent se trouve en 495 position ?

En utilisant un limit 25, j'aurai uniquement l'article le plus pertinent des 25 derniers articles publiés alors que je voudrais les articles les plus pertinents disponibles en base de données.

Merci
Khleo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 15h43   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Citation:
Envoyé par Khleo Voir le message
Afin d'optimiser le requête, ces valeurs ne changeant que très rarement, je voudrais les récupérer depuis un tableau PHP plutôt que par le moteur SQL afin d'avoir la requête la plus optimisée possible.
La requête la plus optimisée possible se trouvera du côté de MySql et non PHP.
Donnes la structure de tes tables gérant toutes ces informations.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 15h49   #5
Membre habitué
 
Homme
Développeur Web
Inscription : janvier 2008
Messages : 365
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2008
Messages : 365
Points : 140
Points : 140
Citation:
Envoyé par rawsrc Voir le message
La requête la plus optimisée possible se trouvera du côté de MySql et non PHP.
Donnes la structure de tes tables gérant toutes ces informations.
Je voudrais éviter de lui demander d'aller chercher des valeurs que je peux lui donner via la requête.
Khleo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h39.


 
 
 
 
Partenaires

Hébergement Web