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

SQL Procédural MySQL Discussion :

Problème pour remplir automatiquement une table


Sujet :

SQL Procédural MySQL

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 26
    Par défaut Problème pour remplir automatiquement une table
    Bonjour à toutes et à tous,

    Je dois remplir une table nommée "mathscompetences" avec chaque ligne d'un fichier texte (qui regroupe en fait le nom de chaque compétence). Voici le contenu de ce fichier :

    Z1
    Reconnaître une situation de proportionnalité
    Traîter une situation de proportionnalité en utilisant un rapport de linéarité (entier ou décimal)
    Compléter un tableau de proportionnalité en utilisant un coefficient de proportionnalité (entier ou décimal)
    *Compléter un tableau de proportionnalité par passage par l'image de l'unité
    *Compléter un tableau de proportionnalité en utilisant un coefficient de proportionnalité (sous forme d'un quotient)
    Appliquer un taux de pourcentage
    Z2
    Lire, utiliser et interpréter des données à partir d'un tableau
    Lire, interpréter et compléter un tableau à double entrée
    *Organiser des données en choisissant un mode de représentation adapté : tableaux en deux ou plusieurs colonnes; tableaux à double entrée
    Lire et compléter une graduation sur une demi-droite graduée à l'aide d'entiers naturels ou de décimaux
    Lire et compléter une graduation sur une demi-droite graduée à l'aide de fractions simples
    *Lire et compléter une graduation sur une demi-droite graduée à l'aide de quotients (placement exact ou approché)
    Lire, utiliser et intégrer des informations à partir d'une représentation graphique simple (diagrammes en bâtons, graphiques cartésiens)
    *Lire, utiliser et interpréter des informations à partir d'une représentation graphique simple (diagrammes circulaires ou semi-circulaires)
    N1
    Connaître et utiliser la valeur des chiffres en fonction de leur rang dans l'écriture d'un entier
    Connaître et utiliser la valeur des chiffres en fonction de leur rang dans l'écriture d'un décimal
    Associer diverses désignations d'un nombre décimal : écritures à virgule, fractions décimales
    M1
    Calculer une aire


    Chaque ligne du fichier doit être stockée dans la table avec les règles suivantes :

    1 : les lignes Z1 Z2 N1 et M1 ne sont que des indicateurs sur le type de compétence (donc on ne les stocke pas dans la table).

    2 : Si la ligne commence par *, cela signifie que la compétence n'est pas exigible

    Donc, j'ai créé un fichier php qui lit le fichier texte ligne par ligne avec "fgets()". Je teste avec "ereg() " si la ligne ne commence pas par Z, N, M et G
    (qui sont les indicateurs que je ne veux pas insérer dans la table).

    Voici le contenu de ce fichier :

    <?php
    $Serveur=mysql_connect("localhost","root","") or die (mysql_error());
    mysql_select_db("eval",$Serveur) or die(mysql_error());
    $Fp = fopen("MathsCompetences.txt","r");
    $NB=0;
    while (!feof($Fp))
    {
    $Ligne = fgets($Fp);
    $Lire='N';
    if (ereg('^Z',$Ligne))
    {
    $type=1;
    } elseif(ereg('^N',$Ligne))
    {
    $type=2;
    } elseif(ereg('^G',$Ligne))
    {
    $type=3;
    } elseif(ereg('^M',$Ligne))
    {
    $type=4;
    } else
    {
    $Lire='O';
    $socle=1-ereg('^\*',$Ligne);
    }
    if ($Lire=='O')
    {
    $NB++;
    echo $NB." ".$Ligne."--";
    $Query = "INSERT INTO `mathscompetences`(`Type`,`Socle`,`Texte`)
    VALUES($type,$socle,'".$Ligne."')";
    mysql_query($Query);
    }
    fclose($Fp);
    mysql_close();
    ?>


    Comme vous pouvez le remarquer, la variable $Lire permet de savoir si la ligne lue doit être insérée dans la table ou non (après les différents tests sur le premier caractère). Si la ligne est à lire, je l'affiche via la fonction echo() et je l'insère à l'aide d'une requête en SQL.

    Le problème est le suivant : toutes les compétences à lire sont bien affichée par le "echo()" et elles y sont toutes. De plus, les tests permettent bien d'écarter les lignes "Z1" etc ... MAIS lorsque je regarde le contenu de la table "maths competences" via PHPMyadmin, la table ne contient que les compétences suivantes :



    C'est à dire les compétences N° 1,2,3,6,8,9,18 de la liste !!!

    ET JE NE COMPRENDS PAS POURQUOI. Pourquoi les compétences affichées par la fonction "echo" ne sont pas insérer dans la table ?

    J'ajoute que j'utilise EasyPHP.

    Merci pour vos réponses.
    Images attachées Images attachées  

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

Discussions similaires

  1. [AC-2010] Remplir automatiquement une table par des champs calculés
    Par David_18 dans le forum Access
    Réponses: 1
    Dernier message: 03/06/2014, 15h01
  2. [AC-2007] Remplir automatiquement une table d'attribution via un formulaire
    Par tomatotep dans le forum IHM
    Réponses: 9
    Dernier message: 26/07/2012, 14h42
  3. Réponses: 2
    Dernier message: 09/05/2010, 21h05
  4. Réponses: 1
    Dernier message: 09/05/2010, 21h01
  5. Problème pour mettre à jour une table SQL
    Par Bes74 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 27/03/2009, 20h21

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