Bonjour à tous
Cela fait plusieurs heures que je cherche une solution à mon problème, mais comme je suis une sous-daube concernant les jointures SQL...
Bref voici mon problème:
J'ai une table nommée « fichiers » qui, comme son nom l'indique, contient une liste de fichiers.
Ses colonnes sont: id, nom, date, taille, membre, adr, description, tags, permissions, vues, ip,checksum et mdp
J'ai une deuxième table, « telechargements », qui est composé des colonnes suivantes:
fichier, membre, date, ip
A chaque téléchargement du fichier qui a pour id x, une ligne est insérée dans la table « telechargement », avec fichier=x
J'aimerais pouvoir lister les fichiers répertoriés dans la bdd selon le nombre de téléchargements, donc selon le nombre de lignes dont la colonne « fichier », dans la table « telechargements », correspond à la colonne « id » dans la table « fichiers ».
Voici mon code:
Je souhaiterais faire un truc du genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $requete = "SELECT * FROM fichiers"; $mots_cles = explode(" ", $recherche); for ($i=0; $i < count($mots_cles); $i++) { if ($i == 0) $requete .= " WHERE tags LIKE '%".$mots_cles[$i]."%'"; else $requete .= " AND tags LIKE '%".$mots_cles[$i]."%'"; } $tous_resultats = $bdd->query($requete); $pages = ceil($tous_resultats->rowcount() / $limite_par_page); $debut_limite = $limite_par_page * ($page-1); $fin_limite = $limite_par_page * $page; $resultats = $bdd->query($requete." ORDER BY date DESC LIMIT $debut_limite, $fin_limite");
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM fichiers, telechargements WHERE fichiers.id = telechargements.fichier ORDER BY ROWCOUNT(telechargements) DESC
Sauf qu'il va me retourner uniquement les fichiers qui ont déjà été téléchargés, ce que je ne veux pas
J'espère que mes explications vous ont parues claires et désolé pour le pavé que je vous fait lire
Merci d'avance![]()
Partager