VDigital a écrit:
A mon avis tu t'écartes de la solution...
Pourquoi une seule table dans ta requête alors que tu as 2 tables?
Serait-ce la crainte de ne pas savoir faire une jointure ?
8-)
ben oui et non ... faut que je comprenne la syntaxe de la jointure... je m'y mets !!
tu sais en debut de semaine je savais pas aligné une ligne...
franchement je me suis éclaté à faire la partie admin. meme si je pense avoir reussi grace à tte les exples que j'ai pu trouvé ds pwg.
pour le JS je l'ai mis de coté pour la version 1.1 ;-))) si la 1.0 voit le jour ;-)
bon je test le plug de p@t et je m'y remet
merci pour ton aide. et merci pour m'avoir mis adviser sur ta galerie.
+
Dernière modification par sakkhho (2007-08-29 19:35:48)
Hors ligne
alors
j'vais tester ça
$color_query = ' SELECT color FROM ' . typetags_TABLE . ' LEFT JOIN '. TAGS_TABLE .' ON id_typetags = id ;'; $tagColor = pwg_query($color_query);
EDIT : je sais pas si c'est bon et en plus ca me renvoit ça :
SELECT color FROM phpwebgallery_typetags LEFT JOIN phpwebgallery_tags ON id_typetags = id ; [mysql error 1052] Column 'id' in field list is ambiguous
surrement par ce que j'ai 'id' dans les 2 tables... arfffffffff
vous confirmez ?
si oui comment je peux ecrire le ON id_typetags = id ;';
du style TAGS_TABLE.id_typetags = typetags_TABLE.id
Dernière modification par sakkhho (2007-08-29 23:14:03)
Hors ligne
sur http://dev.mysql.com/doc/refman/5.0/fr/join.html
j'ai bien SELECT * FROM table1 LEFT JOIN table2 ON table1.id=table2.id;
mais ca marche pas... j'ai plus d'idée.
Dernière modification par sakkhho (2007-08-29 23:08:31)
Hors ligne
SELECT tt.color
FROM phpwebgallery_typetags AS tt
LEFT JOIN phpwebgallery_tags AS t
ON tt.id_typetags = t.id ;
tt ou t sont des ALIAS internes à la requête.
Hors ligne
ok, j'aurai pas trouver ça tt seul !! merci
Dans l'idée je l'avais presques avec mon TAGS_TABLE.id_typetags = typetags_TABLE.id ....
Pour comprendre, le ""Column 'id' in field list is ambiguous"" etait present car j'ai 'id' dans les 2 tables et lors de la requete il sait pas lequel prendre ?
Hors ligne
grrrrrrr, pourquoi est ce que le $tagColor renvoie Resource id #38 ---> Est ce que ca veut dire qq chose ?
il faut convertir ce resultat ?
EDIT :: whououoo j'dois etre sur la bonne voie ! j'arrive a sortir une couleur
$query = ' SELECT tt.color FROM '.typetags_TABLE. ' AS tt LEFT JOIN ' .TAGS_TABLE.' AS t ON t.id_typetags = tt.id ;'; $result = pwg_query($query); $tagColor = mysql_result($result,'tt.color');
Dernière modification par sakkhho (2007-08-30 18:17:04)
Hors ligne
bon j'ai besoin d'un petit eclaircissement
dans tags.php j'ai ça
foreach ($tags as $tag) { $template->assign_block_vars( 'tag', array( 'URL' => make_index_url( array( 'tags' => array($tag), ) ), 'NAME' => $tag['name'], 'TITLE' => $tag['counter'], 'CLASS' => 'tagLevel'.$tag['level'], ) ); }
est ce que ca passe en revu tous les Tags disponible et à chaque tags ca creer URL, Name etc ... c'est ca ?
parce que jessai d'inclure ma boucle (cf post au dessus) dans ce foreach en rajoutant un 'COLOR' => $tagColor,
mais la couleur s'applique à tous les tags..
ma boucle ne doit pas convenir... il me faudrait plus de conditions... mais je sais pas faire.
la requete que je voudrai faire
c'est pour chaque tag allez voir si il y a un id_typetags, cette id_typetags correspodant à une id, couleur dans la table TYPETAGS
stocké cette couleur pour ce tag seulement...
help me ! j'suis dessus depuis 15h30 ...
Hors ligne
Je ne sais pas si c'est une bonne idée de lancer une requete sql à chaque tag, mais bon...
Ca me parait pas mal ton option...
Mais vu que j'ai pas trop suivi depuis le débuts, tu pourrais m'envoyer tout ton fichier pour que je vois à quoi ca ressemble tes modifs?
Hors ligne
Si je peux me permettre, j'aurai fait une requete sql avant le foreach, te donnant un tableau $tagColor avec comme clé les tags, et comme valeur la couleur...
Ainsi, dans le foreach, pour chaque tag, il suffit de vérifier si $tagColor[$tag] existe, et si oui, assigner la couleur correspondante...
EDIT: je regarde le mail
Dernière modification par P@t (2007-08-30 19:43:53)
Hors ligne
ouais tu as raison, je raisonnais pas comme il faut.... je t'ai envoyé les fichiers.
thks !
EDIT : qq chose ds le style
$query = '
SELECT t.name, tt.color
FROM '.typetags_TABLE. ' AS tt
RIGHT JOIN ' .TAGS_TABLE.' AS t
ON t.id_typetags = tt.id
;';
$tagColor = array_from_query($query, 'name');
correct ?
Dernière modification par sakkhho (2007-08-30 20:29:00)
Hors ligne
Non, t'avais raison pour les tt, je savais pas que t'avais rajouté une colonne dans la table des tags
Bon, voila la formule magique!
$query = ' SELECT t.id , tt.color FROM ' . typetags_TABLE . ' AS tt INNER JOIN ' . TAGS_TABLE . ' AS t ON t.id_typetags = tt.id WHERE t.id_typetags IS NOT NULL ;'; $result = pwg_query($query); $tagsColor = array(); while ($row = mysql_fetch_assoc($result)) { $tagsColor += array($row['id'] => $row['color']); } // display sorted tags foreach ($tags as $tag) { $template->assign_block_vars('tag', array('URL' => make_index_url(array('tags' => array($tag))), 'NAME' => $tag['name'], 'TITLE' => $tag['counter'], 'CLASS' => 'tagLevel' . $tag['level'], 'COLOR' => (isset($tagsColor[$tag['id']]) ? $tagsColor[$tag['id']] : ''))); }
Explications:
La requete sql ne se fait qu'une seule fois, puis on génère un tableau $tagsColor avec comme clé l'id du tag, et comme valeur la couleur qui doit lui etre associée. Puis dans le foreach, si l'id du tag existe dans $tagsColors, on attribut la couleur, sinon, rien ''
Par contre, pour ta partie admin, j'ai plein de
Notice: Undefined index: global_rank in c:\documents and settings\pat\bureau\pwg\include\functions_category.inc.php on line 413
Notice: Undefined index: global_rank in c:\documents and settings\pat\bureau\pwg\include\functions_category.inc.php on line 300
Flop te dira que c'est pas grave, mais moi oui ;-)
EDIT: ce qui ne va pas dans la partie admin, ce sont ces 2 fonctions:
display_select_cat_wrapper($query, array(), 'existing_tag_list', false);
display_select_cat_wrapper($query, array(), 'existing_typetag_list', false);
Elles sont faites pour lister des catégories, et non des tags!
RE-EDIT: je t'ai envoyer tous ces correctifs par mail ;-)
Dernière modification par P@t (2007-08-31 02:17:48)
Hors ligne
tout d'abord merci pour tout p@t.
néanmoins pour comprendre :
P@t a écrit:
Code:
while ($row = mysql_fetch_assoc($result)) { $tagsColor += array($row['id'] => $row['color']); }
permet de construire un tableau de 2 colonnes 'id' et 'color' tant que la requete renvoie qq chose ?
le $tagsColor + permet de ajouter une nelle ligne ?
P@t a écrit:
Code:
'COLOR' => (isset($tagsColor[$tag['id']]) ? $tagsColor[$tag['id']] : '')));
j'arrive pas a comprendre cette ligne
le ? doit etre pour 'si la valeur existe' donc je traduis ce que je comprend
si $tagsColor[$tag['id'] existe alors COLOR prend la valeur $tagsColor[$tag['id']] ... ? j'aurais mis $tagsColor[$tag['color']]....
a moins que l'id sert juste d'entrée ds le tableau est que $tagsColor renvoi tjs color ...
j'ai du mal avec les tableaux...
modif faites pours les display_select_cat_wrapper ....
j'avais aussi ds l'idée d'afficher les tags associé a plat pour la dissociation comme tu le suggères (par mail), c'etait meme l'idée 1ere... mais j'avais laissé un peu de coté pour finaliser l'autre partie comme je savais pas faire comme ca et qu'il m'aurait fallut du tps...
pour ton commentaire mettre la partie « recupérer les tags associé » après, sinon, il reliste les tags supprimés.
je l'avais remarqué mais j'savais pas faire, sufffisait de deplacer les blocs ;-)
ce qui parait logique de listé apres... encore fallait il y penser !
merci pour ton compliment
et je suis bien content que ca t'es donné envie de te mettre aux tags !!!
je continue !
@++
Dernière modification par sakkhho (2007-08-31 10:30:15)
Hors ligne