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

Langage PHP Discussion :

Enregistrement dans BDD avec boucle: Error!


Sujet :

Langage PHP

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 15
    Points
    15
    Par défaut Enregistrement dans BDD avec boucle: Error!
    Bonjour,
    tout d'abord voici mon code.
    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
    if (!isset($_POST['repertoire'])) //pour éviter les erreurs à la con
    	$_POST['repertoire'] = '';
     
    ?>
    <form action="#" method="post">
    <p>
    Vous êtes ici: <?php echo getcwd();?>\<br />Indiquez le repertoire ou se trouve vos videos à lister<br />
    <input type="text" name="repertoire" /> <input type="submit" value="Valider" />
    </p>
    </form>
    <?php
    $repertoire2 = htmlspecialchars($_POST['repertoire']);
    $repertoire = str_replace('\\','/', $repertoire2); //transforme le repertoire en repertoire UNIX (pour windows :p)
     
    que tu t
     
    if (!is_dir($repertoire)) //verifie si le champs rentré est bien un repertoire et pas "autre chose"
    	echo "Ceci n'est pas un repertoire!"; 			
    	if ($fichier = opendir($repertoire)) //on liste tout les fichiers
    		while (false !== ($file = readdir($fichier))) 	
    					if ($file != "." && $file != ".." && (preg_match('^.*\.(avi|mpg|mpeg|mov|mkv|divx|wma)$^', $file)))  // permet de ne garder ques des fichiers videos. Posibilité de changer extensions		 				
     
    						/* Permet de découper avec d'un côté le nom du film et de l'autre l'extension */
    						$film = basename($file); 										
    						$pos = strrpos($film,"."); // trouve le dernier point du fichier
    						if ($pos == TRUE) 
    							$basename = substr($film,0,$pos); 
    							$extension = substr($film,$pos+1);
     
     
    						mysql_query("INSERT INTO general VALUES('','$basename','','','','','','','$extension')") or die();  //envoie dans la BDD
    			?>
    Le problème est le suivant: je récupère une liste de noms de fichiers que je cherche à enregistrer dans ma BDD. Le problème est que seulement une seul variable s'enregistre et pas tout comme prévu.
    Une idée?
    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    while (false !== ($file = readdir($fichier)))

    !== : c'est nouveau ?
    --> != ou == : il faut choisir !

    Et les parenthèses ?
    --> if(...) { .... }
    --> while(...) { .... }
    Le programme ne va pas deviner seul où se finissent les boucles.
    (à moins que l'I.A. ait fait d'énorme progrès depuis hier ...)

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    une seul variable s'enregistre et pas tout comme prévu
    Pourrais-tu être plus précis ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonsoir

    Citation Envoyé par jreaux62 Voir le message
    !== : c'est nouveau ?
    Nouveau ? non pas vraiment :

    Citation Envoyé par doc php
    $a !== $b TRUE si $a est différent de $b ou bien qu'ils ne sont pas du même type. (introduit en PHP 4)
    http://www.php.net/manual/fr/languag...comparison.php
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par 12monkeys Voir le message
    !== : Nouveau ? non pas vraiment
    J'avais cru à une faute de frappe (sans chercher à comprendre !)
    Maintenant que tu le dis, c'est très clair.
    Mais si PHP s'y met aussi pour nous embrouiller !! ...

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Et ba vous savez quoi les gars, j'ai trouvé mes erreurs.
    Après plusieurs bidouilles:
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    if (!isset($_POST['repertoire']))//pour éviter les erreurs à la con
    	$_POST['repertoire'] = '';
     
     
    ?>
    <form action="#" method="post">
    <p>
    Vous êtes ici: <?php echo getcwd();?>\<br />Indiquez le repertoire ou se trouve vos videos à lister<br />
    <input type="text" name="repertoire" /> <input type="submit" value="Valider" />
    </p>
    </form>
    <?php
    $repertoire2 = htmlspecialchars($_POST['repertoire']);
    $repertoire = str_replace('\\','/', $repertoire2); //transforme le repertoire en repertoire UNIX (pour windows :p)
    echo "$repertoire";
     
     
    if (is_dir($repertoire)) {//verifie si le champs rentré est bien un repertoire et pas "autre chose"	
    	if ($fichier = opendir($repertoire)) {//on liste tout les fichiers
     
    		while (false !== ($file = readdir($fichier))) {	
    					if ($file != "." && $file != ".." && (preg_match('^.*\.(avi|mpg|mpeg|mov|mkv|divx|wma)$^', $file))) { // permet de ne garder ques des fichiers videos. Posibilité de changer extensions		 									
    						echo "$file";
    						/* Permet de découper avec d'un côté le nom du film et de l'autre l'extension */
    						$film = basename($file); 										
    						$pos = strrpos($film,"."); // trouve le dernier point du fichier
    						if ($pos == TRUE) {
    							$basename = substr($film,0,$pos); 
    							$extension = substr($film,$pos+1); 
    						}
    						echo "$basename";
    						echo "$extension";
    						mysql_query("INSERT INTO general VALUES('','$basename','','','','','','','$extension')");  //envoie dans la BDD
     
     
     
    					}
     
    		}
        }
     
    }
    else {
    	echo "Ceci n'est pas un repertoire!"; 	
    }
    Je met mon code si plusieurs personnes sont intéressés.

    jreaux62>en réalité, cette expression (false !== ($file = readdir($fichier))) permet de lire les lignes d'un fichier, je l'ai trouvé telle quelle dans le manuel. RTFM !! (blague à part excuse moi, déjà que tu es sympa d'avoir répondu).
    Sinon effectivement j'avais oublié mes parenthèses, honte à moi

    sabotage>seul la variable $extension s'enregistrait. J'ai viré le or die() à la fin de ma requête et tout à marché!
    Va savoir pourquoi!

  7. #7
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    J'avais cru à une faute de frappe (sans chercher à comprendre !)
    Maintenant que tu le dis, c'est très clair.
    Mais si PHP s'y met aussi pour nous embrouiller !! ...
    Salut !
    L'idée est venue surtout d'une remarque par rapport a strpos, car la valeur retournée est en base 0 donc si je cherchais "toto" et qu'il soit collé au début de la phrase, la réponse était 0 et pourtant c'était bon !!
    alors fut créé ce principe général

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    $pos = strpos($MonTexte, $Cherche);
    if ($pos === false)
     { echo "La chaîne  ".$Cherche." n'a pas été trouvée";}
       else {  echo "La chaîne ".$Cherche." a été trouvée à la position ".$pos."";}

  8. #8
    Invité
    Invité(e)
    Par défaut
    Ce qui est sûr , c'est qu'on en apprend tous les jours sur DVP !

    Ca fait plaisir d'avoir une si BONNE équipe à disposition !

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Et surtout des gens qui peuvent nous aider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Enregistrement dans bdd via POST
    Par freko dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/05/2008, 13h55
  2. [MySQL] problème d'enregistrement dans bdd
    Par guismoman33 dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 12/03/2008, 14h43
  3. Création d'enregistrement dans bdd
    Par fiatt dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/01/2008, 10h06
  4. enregistrement dans BDD
    Par philguio dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/03/2007, 12h07
  5. Réponses: 4
    Dernier message: 28/04/2006, 23h21

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