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 :

Problème de récupération de données [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 21
    Par défaut Problème de récupération de données
    Bonjour, je vous expose mon problème. J'ai un formulaire avec des checkbox qui récupère le nom des fichier sur un ftp en valeur. Avec les checkbox j'ai aussi plusieurs select qui récupère des éléments de ma bdd, plus un champ texte.

    voici un screen pour mieux comprendre:



    donc j'enregistre les données de se formulaire via un méthode POST et avec une requête insert, tout marche pour le mieux pour le moment, sauf que lors de mes tests je me suis rendu compte que si je coche une checkbox en plein milieu de mon tableau en laissant des checkbox vide au dessus, alors l'insertion de se fait pas correctement dans la bdd., puis que seulement le nom du fichier y est inséré.

    Je pense que cela vient du fait que le rang du tableau n'est pas retrouvé pour les autres informations, alors comment faire?

    voici mon code d'insertion dans la bdd

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    if(isset($_POST['id_fichiers']) && isset($_POST['envoyerup'])) 	
     
    {
     
       for ($i = 0; $i < count($_POST['id_fichiers']); $i++)
    	{
    	mysql_query("INSERT INTO upload_fiche(nom_up_fiche, fk_type_fiche, fk_fiche, url_up_fiche) VALUES ('".$_POST['nom_up_fiche'][$i]."','".$_POST['type_fiche'][$i]."','".$_POST['nom_fiche'][$i]."','".$_POST['id_fichiers'][$i]."')"); 	
     
            }
     
    }
    Merci pour votre aide.

  2. #2
    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
    Par défaut
    Pour parcourir un tableau, il faut utiliser foreach().

    Aller de 0 à x, ca ne marche que si le tableau est parfaitement indexé numériquement, ce qui n'est pas ton cas lorsque les cases ne sont pas toutes cochées.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 21
    Par défaut
    Bonsoir, alors je pense avoir suivie ton idée, mais malheureusement cela n'a pas résolu mon problème.

    Seul id_fichiers est enregistré dans la bdd dans le cas ou une checkbox est laissé vide avant celle sélectionné.

    Je vous donne un morceau de mon code, on ne sait jamais.

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    <?php
    if(isset($_POST['id_fichiers']) && isset($_POST['envoyerup'])) 	
     
    {
           foreach($_POST['id_fichiers'] as $key => $contenu)
    	{
    	mysql_query("INSERT INTO upload_fiche(nom_up_fiche, fk_type_fiche, fk_fiche, url_up_fiche) VALUES ('".$_POST['nom_up_fiche'][$key]."','".$_POST['type_fiche'][$key]."','".$_POST['nom_fiche'][$key]."','$contenu')"); 
    			echo '<p>Votre enregistrement s\'est d&eacute;roul&eacute; avec succes!<br />';
    	 }
    }
     
    ?>
     
    <form action="" method="post" enctype="multipart/form-data" >
    <?php
    $folder = "./admin/fichiers/";
    $dossier = opendir("./admin/fichiers/");	
    $i=0;
    while ($Fichier = readdir($dossier))
    {	
     if($Fichier!='.' and $Fichier!='..' and $Fichier!=NULL)
     {
    ?>		
     
    <table><tr <?php if(($i%2)==0){echo' style="background-color:#c7defb"'; }else {echo' style="background-color:#e3eefc"';} ?> >
    <?php echo'<td><select name="nom_fiche[]" class="mid">';
    $resultat=mysql_query("select num_fiche, nom_fiche from fiche order by num_fiche asc");
    $ligne=mysql_fetch_assoc($resultat);
    echo'<option value="indiquez votre classe"selected="selected">- Fiches -</option>';
    	if($ligne)  // affichage des employés dans une listebox.
    	{
    	echo '<option value="'.$ligne["num_fiche"].'">'.$ligne["nom_fiche"].'</option>';
    	$ligne=mysql_fetch_assoc($resultat);
    		while($ligne)
    		{	  
    		echo '<option value="'.$ligne["num_fiche"].'">'.$ligne["nom_fiche"].'</option>';
    		$ligne=mysql_fetch_assoc($resultat);
    		}
    	}	
    echo '</select>';
     
     
    echo'<select name="type_fiche[]" class="mid">';
    $resultat=mysql_query("select id_T_fiche, nom_T_fiche from type_fiche order by id_T_fiche asc");
    $ligne=mysql_fetch_assoc($resultat);
    echo'<option value="indiquez votre classe"selected="selected">- Type de document -</option>';
    	if($ligne)  // affichage des employés dans une listebox.
    	{
     
    	echo '<option value="'.$ligne["id_T_fiche"].'">'.$ligne["nom_T_fiche"].'</option>';
    	$ligne=mysql_fetch_assoc($resultat);
    		while($ligne)
    		{	  
     
    		echo '<option value="'.$ligne["id_T_fiche"].'">'.$ligne["nom_T_fiche"].'</option>';
    		$ligne=mysql_fetch_assoc($resultat);
    		}
    	}	
    echo '</select>';
     
    echo '<input type="text" name="nom_up_fiche[]" value="Nom du fichier" size="15" />';
    echo"<input type='checkbox' name='id_fichiers[]' value='$Fichier' /></td><td align='left'><a href=\"$folder/$Fichier \" title=$Fichier>Fichier *</a>";	
    echo"";
    				$filename= $Fichier;
     $extension=strrchr($filename,'.');
     
     $extension=substr($extension,-3,3) ;     
     
    			if( $extension == 'doc')
    			{ echo'<img src="./admin/icon_doc/doc_word.png">'; }
     
     
    			if( $extension == 'txt')
    			{ echo'<img src="./admin/icon_doc/doc_txt.png">'; }
     
     
    			if( $extension == 'csv')
    			{ echo'<img src="./admin/icon_doc/doc_excel.png">'; }
     
     
    			if( $extension == 'jpg' or $extension == 'jpeg' or $extension == 'gif' or $extension == 'png' or $extension == 'bmp')
    			{ echo'<img src="./admin/icon_doc/doc_img.png">'; }
     
     
    			if( $extension == 'pdf')
    			{ echo'<img src="./admin/icon_doc/doc_pdf.png">'; }
    			echo"</td></tr></table>";
    	}	
    	$i++;
    }
     
    closedir($dossier);
     
           echo'<input type="reset" name= "supprimer_up" class="bouton" value ="Effacer"/>' ;   
           echo'<input type="submit" name="envoyerup" class="bouton" value="Envoyer"/></form>';
     
     
    }

  4. #4
    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
    Par défaut
    Tu as controlé comment se presentait ton $_POST ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 21
    Par défaut
    Je ne sais pas si j'ai bien compris ta question mais en faisant un echo sur le $_POST j'obtiens le message suivant ArrayEnvoyer pour toutes mes lignes.

    Sinon lorsque je fais un envoi de :



    J'obtiens ça en bdd



    Donc pour les 3 dernières checkbox cochés il ne récupère que le value par défaut.

  6. #6
    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
    Par défaut
    Pour le test il faut faire print_r et non echo

    Je ne vois pas le lien entre tes deux copies d'écran.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Réponses: 31
    Dernier message: 27/07/2006, 13h51
  2. Réponses: 22
    Dernier message: 05/07/2006, 15h21
  3. [MySQL] problème de récupération de données incompréhensible
    Par yanice dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 02/07/2006, 22h45
  4. [MySQL] Problème de récupération de données
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 05/04/2006, 15h13
  5. Problème de récupérations de données dans une table mysql
    Par Helpine dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 09/03/2006, 19h07

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