[RESOLU] Croiser les résultats d"une requête avec ceux d'un readdir

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Croiser les résultats d"une requête avec ceux d'un readdir

Re: Croiser les résultats d"une requête avec ceux d'un readd

par Zahnzao » 22 juin 2013, 19:45

Salut et merci pour ta réponse.

Ça c'est ce que je faisait avant.
Le truc c'est que j'ajoute de + en + de contenu mais que j'ai de moins en moins le temps pour le faire (travail, famille etc...). Donc pour gagner du temps je pensais changer le système, en ajoutant mes dossiers en masse via ftp.
Puis quand j'ai le temps, via le panneau d'admin pouvoir ajouter chaque dossiers qui ne sont pas publiés dans la base en remplissant uniquement quelques champs de formulaire.

Ce système est très répandu sur les divers scripts de galeries qui existe. Ma question est surtout: comment le faire sans devoir faire autant de select que j'ai de dossiers.

Je pense avoir un élément de réponse que j'ai d’ailleurs expliqué dans mon edit du premier post mais j'aurai voulu avoir un avis externe avant de commencer à tout modifier.

Merci en tout cas pour ta réponse qui confirme mon inquiétude au niveau des requêtes.

Re: Croiser les résultats d"une requête avec ceux d'un readd

par yann18 » 22 juin 2013, 17:51

bonjour,

la réponse se trouve dans ta question.oui c'est pas optimisé de faire autant d'appel à select d'ailleurs tout accès multiple et inutile à la bd est à proscrire car les accès dans la bd sont toujours coûteux.

Personnellement, j'utilise un formulaire pour uploader les photos. Les photos uploadées sont sauvegardés dans 2 répertoires(un pour la grande photo et un autre pour la vignette ).Les noms des photos sont enregistrés en bd.Pour les afficher je n'ai plus qu'à faire un select:

$sth= $dbh->prepare("SELECT * FROM article");
execute();

$data = $sth->fetchAll();
foreach($data as $value){
echo '<img src="'.$value['nomPhoto'].'"  alt="'.$value['titre'].'" >';
}

Croiser les résultats d"une requête avec ceux d'un readdir

par Zahnzao » 22 juin 2013, 16:00

Salut,

j'ai décider de modifier la façon dont j'ajoute de nouvelles galeries photos à mon site. Avant, je gérais tout par formulaire et un script d'upload (uploadify).

Maintenant, pour gagner du temps je voudrai uploader manuellement via ftp mes dossiers et que php gère le reste.

Pour çà je me suis dit qu'il fallait d'abord scanner le répertoire gallerie, et ensuite comparer avec la base de donnée afin de dénicher les nouveaux répertoires.

le truc c'est que de cette manière, je me retrouve avec autant de requête SELECT qu'il n'y de dossier dans le répertoire :o
$folder = opendir($directory);
while ($file = readdir ($folder)) {
     $sql="SELECT id FROM galleries WHERE folder = '$file'";
     // execution de la requete et traitement
}
closedir($folder);
Y'a pas un moyen de croiser les infos directement en faisant la requête complète (SELECT id FROM galleries) indépendamment du scan des répertoires ?

Si je met le résultat complet de ma requête dans un tableau, et la liste des répertoires dans un autre, serais-ce plus optimisé ?

Ou voyez vous une autre solution plus adaptée ?

Merci.

edit: idée que je viens d'avoir en me relisant: mettre la liste des répertoires dans un tableau, puis boucler sur ma requête et virer chaque répertoire du tableau afin qu'il ne reste que les répertoire non renseignés... C'est viable ce genre de méthode ?