Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2454 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Site web perso et modification de freeware : SQL ok ? (PHP+SQL)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Site web perso et modification de freeware : SQL ok ? (PHP+SQL)

n°1246629
Toxin
Carpe ★★ Vitam
Posté le 16-11-2005 à 11:38:07  profilanswer
 

J'utilise un outil somme toute assez bien fait pour afficher mes photos dans mon site web.
Les photos sont associées à des catégories, et une photo peut être présente dans plusieurs catégories. Pour un exemple, allez voir dans ma signature.
 
Mon problème est que par défaut il trie selon la date en décroissant, et d'autres critères...
 
config.inc.php

Code :
  1. $conf['order_by'] = ' ORDER BY date_available DESC, file ASC, id ASC';


 
En fait tout est stocké dans deux tables :

phpwebgallery_images
====================
id (key)
file
date
comments
author
....


 
et
 

phpwebgallery_images_category
=============================
image_id (key)
category_id (key)


 
(phpwebgallery_images_category.image_id et phpwebgallery_images.id désignent la même chose, un numéro de photo)
Au niveau de l'affichage il va faire la requête suivante :
 

Code :
  1. $query = '
  2. SELECT DISTINCT(id)
  3.   FROM '.IMAGES_TABLE.'
  4.     INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id = ic.image_id
  5.   '.$page['where'].'
  6.   '.$conf['order_by'].'
  7. ;';
  8. $result = pwg_query( $query );


 
IDEE de modification :
 

  • Ajouter une colonne rank_id dans phpwebgallery_images_category
  • Modifier le tri dans le config.inc.php pour faire le tri sur rank_id


Mes questions sont ?

  • C'est ok ?
  • Le comportement du order by pour les rank_id qui resteront à null dans les catégories où je m'en fous un peu de l'ordre fonctionne comment ? Il garde les enregistrement dans l'ordre de ceux trouvés en fetchant la table ?


Merci d'avance :jap:


Message édité par Toxin le 16-11-2005 à 11:43:29

---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Chaîne YT | Photos
mood
Publicité
Posté le 16-11-2005 à 11:38:07  profilanswer
 

n°1246633
Profil sup​primé
Posté le 16-11-2005 à 11:40:43  answer
 

[:fing fang fung]
 
j'ai fait que de la programation en Qbasic désolé :|

n°1246638
Caleb2000
You can't fool the fool
Posté le 16-11-2005 à 11:47:59  profilanswer
 

Ben tu as qu'a foutre 0 en valeur par défaut pour le Rank_id et hop c'est réglé.


Message édité par Caleb2000 le 16-11-2005 à 11:48:04

---------------
Fucking Hostile •/ Bust up, Tune down, Sabb off... / Dead Sex on my tongue
n°1246643
Toxin
Carpe ★★ Vitam
Posté le 16-11-2005 à 11:50:50  profilanswer
 

Question bonux de syntaxe SQL :
 
SELECT DISTINCT(id)
  FROM '.IMAGES_TABLE.'
    INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id = ic.image_id
  '.$page['where'].'
  '.$conf['order_by'].'
 
Devient en remplaçant les variables qui m'intéressent  
 
SELECT DISTINCT(id)
  FROM phpwebgallery_images  
    INNER JOIN phpwebgallery_images_category  AS ic ON id = ic.image_id
  '.$page['where'].'
  ORDER BY rank_id, ..... ;
 
Est-ce que c'est correct de faire comme ceci, ou dois-je soit ajouter phpwebgallery_images_category dans le FROM soit mettre ic.rank_id si l'alias défini dans le inner join a une portée sur toute la requête ?
 
 


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Chaîne YT | Photos
n°1246650
Toxin
Carpe ★★ Vitam
Posté le 16-11-2005 à 11:54:27  profilanswer
 

A moins que INNER JOIN soit une option de FROM :D


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Chaîne YT | Photos
n°1246680
cinocks
Posté le 16-11-2005 à 12:32:18  profilanswer
 

elle y est dejà dans le FROM. On applique une jointure interne (INNER JOIN) de phpwebgallery_images sur phpwebgallery_images_category si la condition id = ic.image_id est respectée.


---------------
MZP est de retour
n°1246683
ZuL
Posté le 16-11-2005 à 12:35:51  profilanswer
 

beuah j'aime pas les inner join...
 
SELECT DISTINCT(id)
  FROM phpwebgallery_images,  phpwebgallery_images_category  AS ic where  id = ic.image_id
  '.$page['where'].'
  ORDER BY rank_id, .....
 
si tu veux pas t'emmerder tu fais dans ton select un nvl(rank_id, unEntier) rank_id  comme ca pas besoin de t'occuper des valeurs nulles

n°1246727
cinocks
Posté le 16-11-2005 à 13:58:34  profilanswer
 

on sent l'utilisateur d'Oracle. Dommage pour le INNER JOIN, c'est tout de meme la norme ;)


---------------
MZP est de retour
n°1246773
ZuL
Posté le 16-11-2005 à 14:33:14  profilanswer
 

oué mais pour les petites requetes je preferes la syntaxe oracle :D

n°1246787
cinocks
Posté le 16-11-2005 à 14:51:41  profilanswer
 

c'est une question d'habitudes. Je prefere separer les conditions de jointures de la clause WHERE.


---------------
MZP est de retour

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Site web perso et modification de freeware : SQL ok ? (PHP+SQL)

 

Sujets relatifs
PHP sous IIS - ASP[SQL] Disctinct sur plusieurs champs
création de base SQL Serveur en visual basic.netprobléme compréhension ligne Php pour categorie?
[Oracle/SQL] recuperer l'heure GMTAide pour site en php
[SQL Server] ntext -> <texte long>Optimisation de requete PL/SQL
[SQL Server] Comment voir les dernières requêtes ?[PHP] Besoin d'aide avec une expression régulière tout con
Plus de sujets relatifs à : Site web perso et modification de freeware : SQL ok ? (PHP+SQL)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR