|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2006 Messages : 17 ![]() |
Bonjour à tous,
Malgré plusieurs heures de travaux et le peu d'expérience, je n'arrive pas à faire fonctionner la fonction suivante. En résumé : Utiliser un autre champ dans une table si le champ par default est vide Dans mon fichier .php pour inclure le texte se trouvant dans ma base de donnée, j'utilise donc : SELECT la_description_de_mes_articles_1 FROM matable1 WHERE language = fr; A l'époque j'avais fait des descriptions de mes articles. ("la_description_de_mes_articles_1") Et depuis, on à re-créer un champ avec des nouvelles descriptions. ("la_description_de_mes_articles_2") qu'on utilise par default. Voir Pour une compréhension visuelle ci-dessous : Cependant j'ai des pages de l'époque ou je n'ai pas de nouvelles description et j'ai également de nouvelles pages sans anciennes descriptions. J'aimerais en fait garder ces 2 descriptions possibles. Et avoir une règle en php qui va chercher dans ma base de donnée les descriptions suivant la règle : Par default on utilise mes nouvelles descriptions, mais si un des articles utilise une nouvelle description et que ce champ est vide pour cette article, il va chercher le champ de l'ancienne description pour cette article. Je me permet d'insister sur "pour cette article". Car je ne veux pas que si une nouvelle description est vide il utilise une ancienne description pour "tous les articles de mon site". Me comprenez-vous ? Je vous remercie d'avance. Pour une compréhension visuelle : Donc : matable1 la_description_de_mes_articles_1 (champ) --->> article 1 ^ article 2 ^ article 3 ^ article 4, .... la_description_de_mes_articles_2 (champ) ^ <<--- article 1 ^ article 2 ^ article 3 ^ article 4, .... la_description_de_mes_articles_3 (champ) ^ <<--- article 1 ^ article 2 ^ article 3 ^ article 4, ....J'aimerais donc mettre la règle suivante : Si le champ "la_description_de_mes_articles_2" du produit article 1 ou "la_description_de_mes_articles_3" du produit article 1 ou une infinité de "la_description_de_mes_articles_NUMERO_X" du produit article 1 dans ma base de donnée est vide il prend le champ "la_description_de_mes_articles_1" par default. Histoire d'avoir toujours du texte dans mes pages ( et pas une page vide ) N'étant pas très doué en .php et n'ayant pas trouvé réponse à ma question je me permet de vous cette question. Si certains d'entrent vous peuvent ne fus-ce que me donner des pistes. Je vous remercie d'avance. |
|
|
00
|
|
|
#2 |
|
Inscrit
Inscription : octobre 2006 Messages : 637 ![]() |
Bravo pour la presentation du sujet, ca donne envie d'aider pas vrai B)
Il me semble que la liste des champs du select est statique dans le cas d'une requete select normal, je ne sais pas comment faire en SQL. Par contre, je suis curieux de savoir pourquoi ne pas requetter les deux colones et selectionnerr le contenu a afficher en PHP ? (pas tapper Mawashigeri hahaha). Precisez si vous avez besoin d'aide pour implementer une telle solution en postant le code depuis la requete a l'affichage.
__________________
Q: Dois-je haïr et cogner sur Microsoft ? R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma. Comment devenir un hacker ? par Eric Steven Raymond |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : février 2006 Messages : 17 ![]() |
Bonjour,
Avant tout merci pour ta réponse. C'est vrai que c'est chouette la couleur sur les forums. J'avoue que j'ai eu dur de jouer avec les > ( [ I N D E N T ] [ / I N D E N T ]) ![]() C'est une bonne idée la requête sur les 2 champs, En fait j'y ai déja pensé, mais je me suis dit que faire une requête sur la totalité du 2ème champ risquerait d'allourdir fortement cette requête non ? (dans le cas de milliers de descriptions) Dans le cas ou on fait cette requête même si celle-ci n'est pas utile. Je m'explique: dans certains cas le premier champ(la première requête) suffira et la seconde requête est faite également même si elle n'est pas affichée. (Une grosse requête en trop.) Cependant, je mets mon site en cache donc la requête ne devrait s'executer qu'une seule fois... Mais c'est une très bonne idée malgré tout, je pense que je vais me lancer dans cette voie. Cependant saurais-tu ou (sauriez-vous) m'aider pour la fonction php disant que si l'article x (x veut dire l'article de la page courante) du champ "la_description_de_mes_articles_2" est empty (vide) il affiche par default l'article x du champ "la_description_de_mes_articles_1" ? N'hésitez pas à donner vos commentaires si vous trouvez une solution plus légère que la requête sur les 2 champs. Dans le sens il ne fait que la requête sur la deuxième champ uniquement si la requete du premier rapporte un artcile vide. Je vous remercie d'avance. |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
suivant ta base de données, il y a surement des fonctions SQL qui permettent de faire ça
voilà par exemple la documentation pour MySQL : http://dev.mysql.com/doc/refman/5.0/...functions.html
__________________
Modérateur PHP |
|
|
00
|
|
|
#5 | |
|
Inscrit
Inscription : octobre 2006 Messages : 637 ![]() |
Citation:
__________________
Q: Dois-je haïr et cogner sur Microsoft ? R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma. Comment devenir un hacker ? par Eric Steven Raymond |
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : février 2006 Messages : 17 ![]() |
Merci pour vos réponses
Je vais aller jeter un petit coup d'oeil sur : http://dev.mysql.com/doc/refman/5.0/...functions.html Merci mathieu Concernant le code, le voici: (je l'ai changé pas mal de fois depuis $varible_description_requete = connection("SELECT description_1 FROM article WHERE language = 'fr'"); $varible_description = range($varible_description_requete); Dont connection(); à une function derrière(connection db). Dont range(); à une function derrière(ranger le tableau). Merci is_null Ps: en ayant jeté un pt'it coup d'oeil rapidos sur la fonction du lien de mathieu, je pense que je vais pouvoir me débrouiller. Je vous tiens au courant. Merci encore à vous. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com