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 :

test si une valeur est déjà présente dans la table ou non


Sujet :

PHP & Base de données

  1. #1
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut test si une valeur est déjà présente dans la table ou non
    Bonjour,

    Je vous explique le contexte. J'ai créer une base de donnée avec différentes tables qui sont toutes opérationnelles. Pour remplir celle-ci j'ai recourut à un INSERT INTO cependant à chaque lancement de l'application les fichiers sont de nouveaux rentrés dans ma table.
    Il me faudrait donc quelque chose capable de détecter si le fichier est déja contenu dans la table. S'il y est déjà on ne récupère pas ce fichier, et inversement s'il n'est pas présent dans la table.

    NB : si vous avez besoin de voir mon script ou autre chose n'hésitez pas à demander

  2. #2
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    Quel est ton SGBD???

    dans tous les cas une procédure stockée (ou une fonction si tu as besoin d'un retour de valeur quelconque) serait la solution pour ton traitement.
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  3. #3
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par trinityDev
    Quel est ton SGBD???

    dans tous les cas une procédure stockée (ou une fonction si tu as besoin d'un retour de valeur quelconque) serait la solution pour ton traitement.
    J'utilise PhpMyadmin/MySql et voila mon script :

    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
     
    	List ($serveur, $secteur, $ue, $batiment,$source, $fichier) = $tableau;
     
     
    	    $var = "SELECT id_secteur FROM secteur WHERE nom_secteur = '".$secteur."'";
     
    			$result = mysql_query($var) or die ("<br>Erreur");
    			$valeur1 = mysql_fetch_array($result);
     
    		$get = "SELECT id_ue FROM ue WHERE nom_ue = '".$ue."'";
     
    			$result = mysql_query($get);
    			$valeur2 = mysql_fetch_array($result);
     
    		$requete = "SELECT id_bat FROM batiment WHERE nom_bat = '".$batiment."'";	
     
    			$result = mysql_query($requete);
    			$valeur3 = mysql_fetch_array($result);
     
    		$req = "SELECT id_instal FROM nomination WHERE INSTR('".$fichier."', type_instal) OR INSTR('".$fichier."', type_instal2) > 0";	
     
    			$result = mysql_query($req);
    			$valeur4 = mysql_fetch_array($result);
     
    		$queri = "INSERT INTO automate (id_instal, id_ue, id_bat, id_secteur, pdf) VALUES ('".$valeur4['id_instal'] ."','".$valeur2['id_ue'] ."','".$valeur3['id_bat'] ."','".$valeur1['id_secteur'] ."','".$fichier."')";
     
    		mysql_query($queri) or die ("Erreur dans \"$queri\""); 
    	}

  4. #4
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    Si ton problème est de comparer un champs de table avec un nom de fichier "en dur" ou meme saisi dans ton application tu peux faire directement une requete toute bête de select dont tu stock le résultat dans une variable puis comparé dans ton php à une autre valeur...ou alors j'ai aps bien compris ton problème ^^
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  5. #5
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par trinityDev
    Si ton problème est de comparer un champs de table avec un nom de fichier "en dur" ou meme saisi dans ton application tu peux faire directement une requete toute bête de select dont tu stock le résultat dans une variable puis comparé dans ton php à une autre valeur...ou alors j'ai aps bien compris ton problème ^^
    Si si tu as l'air d'avoir bien compris mon problème^^
    Mon nom de fichier est bien en dur et il faut bien comparer celui-ci avec la valeur présente dans un champ.

    j'ai bien saisis le fait de faire une requête select en la stockant dans une variable mais je n'ai pas saisis quand tu dis comparer dans mon php? tu parles de faire un test genre un if ?

  6. #6
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    Citation Envoyé par yohan0262
    Si si tu as l'air d'avoir bien compris mon problème^^
    Mon nom de fichier est bien en dur et il faut bien comparer celui-ci avec la valeur présente dans un champ.

    j'ai bien saisis le fait de faire une requête select en la stockant dans une variable mais je n'ai pas saisis quand tu dis comparer dans mon php? tu parles de faire un test genre un if ?
    ba oui, tu fais une comparaison entre le nom de ton fichier en dur puisque tu le connais et que c'est toujorus le même et le contenu du résultat de requete ou carément faire un count dans ta requete, tu comptes combien de fois ton fichier est dans la table...si il n'existe pas (=0) et bien tu le lances sinon rien...quelque chose comme ca. En somme c'est plus un problème d'algo.
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  7. #7
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par trinityDev
    ba oui, tu fais une comparaison entre le nom de ton fichier en dur puisque tu le connais et que c'est toujorus le même et le contenu du résultat de requete ou carément faire un count dans ta requete, tu comptes combien de fois ton fichier est dans la table...si il n'existe pas (=0) et bien tu le lances sinon rien...quelque chose comme ca. En somme c'est plus un problème d'algo.
    Ok je te remercie trinity, je ne note pas le sujet résolu en attendant d'avoir un peu réfléchis de mon côté.

  8. #8
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par yohan0262
    je ne note pas le sujet résolu en attendant d'avoir un peu réfléchis de mon côté
    Et j'ai bien fait !
    Voila ce que j'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    if(file_exists($fichier)) // ou avec 'is_file'
    		{
    			//echo "le fichier existe déjà";
    		}
    		else
    		{
    			$queri = "INSERT INTO automate (id_instal, id_ue, id_bat, id_secteur, pdf) VALUES ('".$valeur4['id_instal'] ."','".$valeur2['id_ue'] ."','".$valeur3['id_bat'] ."','".$valeur1['id_secteur'] ."','".$fichier."')";
     
    			mysql_query($queri); //or die (mysql_error()); 
    		}
    Mais ca ne marche pas ! ^^
    Le problème est que ce script test si le fichier existe dans l'arborescence et non pas dans la base de donnée. Si quelqu'un à une proposition =)

Discussions similaires

  1. copier des cellules si une valeur est présente dans celles-ci
    Par arno1975 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/02/2014, 20h55
  2. Réponses: 2
    Dernier message: 28/06/2012, 15h56
  3. Réponses: 5
    Dernier message: 15/11/2011, 23h42
  4. Test si une valeur est dans un intervale
    Par olibara dans le forum Excel
    Réponses: 3
    Dernier message: 18/02/2009, 08h09
  5. [MySQL] Savoir si un élément est déjà présent dans la table
    Par camzo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/12/2006, 17h46

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