IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Lister un dossier puis comparer à une base de données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Points : 20
    Points
    20
    Par défaut Lister un dossier puis comparer à une base de données
    bonjour
    je cherche a recuperer tout les fichiers contenus dans un dossier
    et les comparer a la colonne correspondante de ma bdd

    voila jarrive bien a "extraire" mes images du dossier et de ma bdd

    mais j'arrive pas a comparer les deux...

    j'ai deux boucles while qui m'affiche les images mais après j'y arrive pluuuuuus

    voila si quelqu'un peut maider merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
    include "connect.php";
    $req1=mysql_query("select avatar from log");
    $result1=mysql_num_rows($req1); 
     $i=1;
     while ($i < $result1){ 
     $result3=mysql_fetch_array($req1);//on met le résultat dans un tableau
     echo "<tr><td>"
     .$result3['avatar']."
     </td></tr>";
     $i++;
     
     }
    echo "</table><br>";
     
    $result2=mysql_fetch_array($req1, MYSQL_BOTH);
     
    $o=0;
    $dir = "images/avatars";
    $dh = opendir($dir);
     
            while ($file = readdir($dh)) {
      $verif=" <img src=images/avatars/".$file." border=0>";
           if ($file != '.' && $file != '..') {
      if ($verif != $result2['avatar']) {
      echo "<br><br>$o<br><font color=red>ce n'est pas ce fichier :</font> <br>".$file."<br>".$verif."<br><br>";
      } elseif ($verif == $result2['avatar']) {
      echo "<br><br>$o<br><font color=blue>c'est ce fichier :</font> <br>".$file."<br>".$verif."<br><br>";
      } $o++; 
      }}
     
    closedir($dh); 
    ?>
    je stocke le lien des mes images dans la bdd
    (image que j'ai téléchargé avant)

    exemple de lien contenu dans ma bdd

    <img src=images/avatars/monimage.jpg border=0>

  2. #2
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result2=mysql_fetch_array($req1, MYSQL_BOTH);
    tu n'as qu'une seule ligne de ta bdd avec ça.
    Zend PHP5 Certification
    MySQL 4 Core Certification

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    ok mais comment faire alors pour avoir toute les lignes et les comparer à ma bdd?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    j'ai essayé sans le both, en le mettant dans le while
    rien n'y fait la je suis perdu

  5. #5
    Membre régulier Avatar de bartrik
    Inscrit en
    Novembre 2003
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 104
    Points : 122
    Points
    122
    Par défaut
    comme ? (bien que ça soit un peu bourrin comme methode... )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <table>
    <?php
    include "connect.php";
    $req1=mysql_query("select avatar from log");
    $result1=mysql_num_rows($req1);
    $avatar = array(); // tableau de stockage
    if ($result && mysql_num_rows($req1)>0) {
    	$i=1;
    	while ($row=mysql_fetch_array($req1)) {
    		$avatar($i)=$row['avatar'];
    		?><tr><td><?=$avatar($i)?></td></tr><?php
    		$i++; 
    	}
    } else {
    	die("no avatar in database");
    }	
    echo "</table><br>";
     
    $dir = "images/avatars";
    $dh = opendir($dir);
    	while ($file = readdir($dh)) {
    		if ($file != '.' && $file != '..') {	
    			$verif=" <img src=images/avatars/".$file." border=0>";  
    			for($o=1;$o<=$i;$o++) {
    				if ($verif == $avatar($o)) {
    				?><br><br>$o<br><font color=red>ce n'est pas ce fichier :</font> <br><?=$file?><br><?=$verif?><br><br><?php
    			} else {
    				?><br><br>$o<br><font color=blue>c'est ce fichier :</font> <br><?=$file?><br><?=$verif?><br><br><?php
    			}
    		}
    	}
    closedir($dh); 
    ?>

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    euh ca me donne Can't use function retourn value in writr context ... on line10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $avatar($i)=$row['avatar'];

  7. #7
    Membre régulier Avatar de bartrik
    Inscrit en
    Novembre 2003
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 104
    Points : 122
    Points
    122
    Par défaut
    crotte, je m'a grourré
    replace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $avatar($i)=$row['avatar'];
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $avatar[$i]=$row['avatar'];
    et parpourtant c'est pas l'heure de l'apéro...

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    c'est mieux mais maintenant il me sort 10fois les fichiers????

  9. #9
    Membre régulier Avatar de bartrik
    Inscrit en
    Novembre 2003
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 104
    Points : 122
    Points
    122
    Par défaut
    Me revoilou...
    Chti'te question :
    Tu veux comparé les fichiers du répertoire avec ta BD ou simplement vérifier que les fichiers inscris dans ta BD sont bien dans le répertoire ?
    parce que sinon tu peiux le faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <table>
    <?php
    include "connect.php";
    $req1=mysql_query("select avatar from log");
    $result1=mysql_num_rows($req1);
    $avatar = array(); // tableau de stockage
    if ($result && mysql_num_rows($req1)>0) {
    	$i=1;
    	while ($row=mysql_fetch_array($req1)) {
    		$avatar[$i]=$row['avatar'];
    		?><tr><td><?=$avatar[$i]?></td></tr><?php
    		$i++; 
    	}
    } else {
    	die("no avatar in database");
    }	
    echo "</table><br>";
     
    $dir = "images/avatars";
    $dh = opendir($dir);
    	while ($file = readdir($dh)) {
    		if ($file != '.' && $file != '..') {	
    			$verif=" <img src=images/avatars/".$file." border=0>"; 
    			if ( in_array( $verif,$avatar ) ) {
    				?><br><br>$o<br><font color=red>Existe :</font> <br><?=$file?><br><?=$verif?><br><br><?php
    			} else {
    				?><br><br>$o<br><font color=blue>N'existe pas :</font> <br><?=$file?><br><?=$verif?><br><br><?php
    			}
    		}
    	}
    closedir($dh); 
    ?>
    Aprés tu peux faire un peux ce que tu veux...

  10. #10
    Membre régulier Avatar de bartrik
    Inscrit en
    Novembre 2003
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 104
    Points : 122
    Points
    122
    Par défaut
    Ou même mieux, tu charges le contenu du répertoire dans un array et tu compares les deux comme tu veux...

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    je ne comprend pas exactement ce que tu veux faire a quoi cela te sert de comparer les liens des images de ta bdd au chemin dans le fichier!!
    Stay in Bed .. Save Energy

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    bin en faite je veux verifier que l'image dans mon dossier est bien presente dans ma bdd pour supprimer celle qui sont en trop

    et dans ma bdd elles sont inscrites comme cela <img src=.........>

  13. #13
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    include "connect.php";
    $res = mysql_query("select avatar from log");
     
    if(mysql_num_rows($res) > 0)
    {
     
    	$arAvatarBdd = array();
     
    	while ($row = mysql_fetch_array($res))
    	   $arAvatarBdd[] = $row['avatar'];
     
    	$dir = "images/avatars";
    	$dh = opendir($dir);
    	$arAvatarFile = array(); 
     
    	    while (false !== ($file = readdir($dh))) 
    	    {
    	          if ($file != '.' && $file != '..') 
    		       $arAvatarFile[] = $file;
    	    }
    	    closedir($dh); 
    		// récupére la différence dans un tableau des deux tableaux
    		$arAvatarDiff = array_diff($arAvatarBdd, $arAvatarFile);
    		foreach($arAvatarDiff as $avatar)
    		{
    			// requête de suppression
    		}
    }
    else
    {
    	echo 'Aucun avatar.';
    }
    Zend PHP5 Certification
    MySQL 4 Core Certification

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    include "connect.php";
    $req1=mysql_query("select avatar from log")or die(mysql_error());
    $avatar = array(); // tableau de stockage
    if (mysql_num_rows($req1)>0) {
    	while ($row=mysql_fetch_array($req1)) {
    		$avatar[]=$row['avatar'];
    	}
    } else {
    	die("no avatar in database");
    }	
    $dir = "images/avatars";
    $dh = opendir($dir);
    	while ($file = readdir($dh)) {
    		if ($file != '.' && $file != '..') {	
    			$verif=" <img src=images/avatars/".$file." border=0>";
    			$taille=sizeof($avatar);
    			for($o=1;$o<=$taille;$o++) {
    				if (!in_array($verif, $avatar)) {
    					$req=mysql_query("delete from log where avatar='$verif'");
    			}
    		}
    	}
    ?>

    si tu veux juste supprimer
    Stay in Bed .. Save Energy

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    en fait je veux supprimer celle qui ne sont pas dans ma bdd

    j'suis en train de regarder ce que vous avez fait et je repost après merci

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    tiens j'ai réussi merci les gars

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?php
    include "connect.php";
    $req=mysql_query("select avatar from log");
    $result=mysql_num_rows($req);
    $avatar = array(); // tableau de stockage
    if ($result && mysql_num_rows($req)>0) {
    	$i=1;
    	while ($row=mysql_fetch_array($req)) {
    		$avatar[$i]=$row['avatar'];
    		$avatar[$i];
    		$i++; 
    	}
    } else {
    	die("no avatar in database");
    }	
     
     
    $dir = "images/avatars";
    $dh = opendir($dir);
    	while ($file = readdir($dh)) {
    		if ($file != '.' && $file != '..') {	
    			$verif="<img src=images/avatars/".$file." border=0>"; 
    			if ( in_array( $verif,$avatar ) ) {
    				$file;
    			} else {
    				unlink ($dir."/".$file);
    			}
    		}
    	}
    closedir($dh); 
     
    ?>
    j'ai un autre ti probleme

    la ma requete contient seulement mais si je rajoute genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select avatar, media1 from log

  17. #17
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    ou est la question ?
    Stay in Bed .. Save Energy

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    elle est resté dans mes doigts

    en fait ca me sort seulement le premier (donc avatar) mais pas les autres
    (j'ai un peu de mal avec les tableaux)

  19. #19
    Membre régulier Avatar de bartrik
    Inscrit en
    Novembre 2003
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 104
    Points : 122
    Points
    122
    Par défaut
    et il y a quoi dans "media1" ?
    Si c'est encore un lien vers un fichiers, tu fait comme avec avatar
    un tableau media et meme test que avatar mais avec media...
    si je suis clair, parce la...

    PS for Boo64, j'ai pas fait la sieste...

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    okay donc si jai bien compris faut que je fasse un array pour chaque colonne que je veux sortir?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 13
    Dernier message: 30/04/2015, 22h16
  2. Réponses: 0
    Dernier message: 25/02/2013, 11h19
  3. Création d'une base de données sur un dossier partagé
    Par richard038 dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/03/2006, 12h26
  4. [Debutant] Lister les tables d'une base de données
    Par Konrad Florczak dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/07/2005, 16h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo