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 :

Ligne 0 de la BDD [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Ligne 0 de la BDD
    Bonjour,

    dans le code de mon site, je fais appel à une base de données pour afficher un tableau des données .

    le hic c'est que j'ai une ligne 0 sans données qui est créée, et qui est affichée, et je ne souhaite pas afficher cette ligne

    dans une page de mon site je peux envoyer un fichier .csv qui va mettre à jour la base de données, je ne sais pas pourquoi il est ajouté la ligne avec id 0 à la fin du tableau.

    alors 2 moyens pour éviter l'affichage : trouver comment est créée l'id 0 et corriger, ou faire en sorte de ne pas l'afficher. ou peut être aussi voir comment la BDD est configurée (mais là je ne sais pas grand chose dans le domaine...)

    en tout cas quand j'importe le csv via la console PHPMyAdmin la ligne avec le 0 n'est pas créée...

    je vous livre ci-dessous les codes utilisés 1/ pour envoyer le ficher et l'écrire dans la BDD et 2/ le code qui appelle la BDD pour l'afficher dans un tableau.

    comme vous l'avez vu dans mes autres posts, je suis débutant !! et suis conscient que j'ai des erreurs quant à la façon de présenter le code...

    aussi merci d'avance une fois de plus pour votre aide.

    Bruno


    Code d'envoi du fichier csv et écriture 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
    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
    <span style="color:blue">5)Mise à jour de la liste des concours</span> <br /><br />  
    <?php
    		if(isset($_FILES2['fichier'], $_POST2['envoyer']))
    {
    //on efface la table compta avant d'inscrire les données
    $sql2="TRUNCATE concours";
    $result2=mysql_query($sql2);
     
     
    $dossier2 = 'file/';
    $fichier2 = basename($_FILES2['fichier']['name']);
    $taille_maxi2 = 100000;
    $taille2 = filesize($_FILES2['fichier']['tmp_name']);
    $extensions2 = array('.csv', '.txt');
    $extension2 = strrchr($_FILES2['fichier']['name'], '.'); 
    //Début des vérifications de sécurité...
    if(!in_array($extension2, $extensions2)) //Si l'extension n'est pas dans le tableau
    {
         $erreur2 = 'Vous devez uploader un fichier de csv...';
    }
    if($taille2>$taille_maxi2)
    {
         $erreur2 = 'Le fichier est trop gros...';
    }
    if(!isset($erreur2)) //S'il n'y a pas d'erreur, on upload
    {
         //On formate le nom du fichier ici...
         $fichier2 = strtr($fichier2, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichier2 = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier2);
         if(move_uploaded_file($_FILES2['fichier']['tmp_name'], $dossier2 . $fichier2)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
         {
              echo 'Upload effectué avec succès !';
         }
         else //Sinon (la fonction renvoie FALSE).
         {
              echo 'Echec de l\'upload !';
         }
    }
    else
    {
         echo $erreur2;
    }
    }
    	//Le chemin d'acces au fichier sur le serveur
    $fichier2 = fopen("file/concours.csv", "r"); 
     
    //tant qu'on est pas a la fin du fichier :
    while (!feof($fichier2)) 
    { 
    // On recupere toute la ligne
    $uneLigne2 = fgets($fichier2, 1024);
    //On met dans un tableau les differentes valeurs trouvés (ici séparées par un ';') 
    $tableauValeurs2 = explode(';', $uneLigne2); 
    // On  crée la requete pour inserer les donner (ici il y a 8 champs donc de [0] a [7])
    $sql2="REPLACE INTO concours VALUES ('".$tableauValeurs2[0]."', '".$tableauValeurs2[1]."', '".$tableauValeurs2[2]."', '".$tableauValeurs2[3]."', '".$tableauValeurs2[4]."', '".$tableauValeurs2[5]."', '".$tableauValeurs2[6]."', '".$tableauValeurs2[7]."')"; 
    $req2=mysql_query($sql2); 
    // la ligne est finie donc on passe a la ligne suivante (boucle)
    }
    ?>	
    		<form method="POST" action="" enctype="multipart/form-data">
    			<label for="fichier">Fichier concours:</label><input type="file" name="fichier" value="" id="fichier" /><br /><br /> 
    			<input type="submit" value="Envoyer Fichier 2" name="envoyer" id="envoyer" />
    		</form>

    ensuite le code pour l'affichage du tableau:

    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
    <form method="POST" action="inscriptions2.php" >
    <div class="tableau">
    2) cliquez sur le samedi OU le dimanche du concours OUVERT souhait&eacute;, celui-&ccedil;i est automatiquement s&eacute;lectionn&eacute;
    <table>
    	<caption> Liste des Concours </caption>
        <tr bgcolor="#c8c8c8">
    		<th class="colid">Concours Nº</th>
    		<th class="colsamedi">Samedi</th>
    		<th class="coldimanche" >Dimanche</th>
    		<th class="coldatelim">Date Limite</th>
    		<th class="colstatut">Statut</th>
        	<th class="colorganisateur">Organisateur</th>
        	<th class="coldiscipline">Discipline</th>
        </tr>
    <?php
    //On recupere les données des concours
    $req = mysql_query("SELECT id, samedi, dimanche, date_limite, statut, organisateur, affichage, discipline FROM concours  order by id *1"); 
    while($dnn = mysql_fetch_array($req))
    			{
    			//changement de couleur pour les mots ouvert ou ferme
    			$color="";
    			if ($dnn['statut']=='OUVERT') 
    			{
    			$color='green';
    			}
    			else if ($dnn['statut']=='FERME')  
    			{
    			$color='red';
    			}
    ?>
    					<script type="text/javascript">
    					$(".jour").click(function(event){
    					$(".id").attr("checked", false);
    					$("input[name='samedi']").attr("checked", false);
    					$("input[name='dimanche']").attr("checked", false);
    					var $jour = $(this);
    					$jour.attr("checked", true);
    					$jour.parent().parent().find("td:first").find("input").attr("checked", true);
    					})
    </script>
    	<tr bgcolor="#e9e9e9">
    		<td><input type="radio" class="id" name="id" value="<?php echo $dnn['id']; ?>" required><?php echo $dnn['id']; ?></td>	
    		<td><input type="radio" class="jour" name="samedi" value="<?php echo $dnn['samedi']; ?>" /><?php echo $dnn['samedi']; ?></td>
    		<td><input type="radio" class="jour" name="dimanche" value="<?php echo $dnn['dimanche']; ?>" /><?php echo $dnn['dimanche']; ?></td>
        	<td style="color:red"><?php echo $dnn['date_limite']; ?></td>
    		<td style="color:<?php echo $color ?>"><?php echo $dnn['statut']; ?></td>
    		<td><?php echo $dnn['affichage']; ?></td>
        	<td style="color:blue"><?php echo $dnn['discipline']; ?></td>
        </tr>
    et ci-dessous un aperçu de la BBD suite à l'écriture du fichier:

    85 22/02/2014 23/02/2014 FERME CIE ARC FONTAINEBLEAU AVON Tir en Salle
    86 14/03/2014 16/03/2014 FERME LES ARCHERS D OZOIR Tir en Salle
    87 22/03/2014 23/03/2014 FERME LES ARCHERS SURESNOIS Tir en Salle
    0

    j'ai un 0 affiché en dernière ligne donc ce qui pose souci

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    bon j'ai résolu mon souci de ligne id 0 en ajoutant une ligne suite à l'envoi de fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {
    //suppression de la ligne 0 de la table cooncours
    $req3=mysql_query("DELETE from concours WHERE id=0");
    }

    mais ça fait bricolage....non ?

  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
    Est ce que ton fichier csv a une ligne d'en tête ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    non il n'y à rien du tout.

    il commence comme suit:

    1 05/10/2013 06/10/2013 25/09/2013 OUVERT LES ARCHERS DE LA FOSSE AUX ASTRES Tir en Salle
    2 12/10/2013 13/10/2013 25/09/2013 OUVERT CIE DES ARCHERS DE LA TOUR Tir en Salle
    3 12/10/2013 13/10/2013 25/09/2013 OUVERT LA FLECHE SANNOISIENNE Tir en Salle
    4 19/10/2013 20/10/2013 25/09/2013 OUVERT ARCHERS DE CENT NOIX Tir en Salle
    5 19/10/2013 20/10/2013 25/09/2013 OUVERT CIE D ARC DE BUC Tir en Salle

    et pas de pied non plus

    juste 8 colonnes

  5. #5
    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
    Il est possible que tu aies une ligne vide à la fin de ton csv :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while (($data = fgetcsv($fichier2, 1000, ";")) !== FALSE) {
          if (!empty($data[0])) {
          $sql2="REPLACE INTO concours VALUES ('".  implode('";"' , $data. '")';
          $req2=mysql_query($sql2);
        }
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    pas de ligne vide non plus dans le csv.

    mais bon avec ma requête pour effacer la ligne ça corrige le problème, même si c'est du bricolage de débutant comme moi

  7. #7
    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
    Tu as essayé le code que je t'ai donné ou j'ai bossé pour rien ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    oui je viens de l'essayer , c'est nickel !!! merci beaucoup !

    c'était bizarre mon truc !

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

Discussions similaires

  1. [Débutant] Aller à la ligne string \n dans BDD
    Par Proxy dans le forum C#
    Réponses: 6
    Dernier message: 09/01/2012, 21h27
  2. Réponses: 4
    Dernier message: 28/07/2011, 11h00
  3. Colorer une ligne JTable selon une bdd
    Par Bladelight dans le forum Composants
    Réponses: 1
    Dernier message: 12/08/2010, 11h10
  4. [Toutes versions] cherche cours en ligne avec exemple création BDD genre facturation
    Par tibofo dans le forum Modélisation
    Réponses: 4
    Dernier message: 20/09/2009, 10h38
  5. [MySQL] Création ligne vide dans ma BDD !
    Par melodyyy dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/06/2008, 11h44

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