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 :

Requête ne ramène pas de résultats [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut Requête ne ramène pas de résultats
    Bonjour,
    j'ai un souci, depuis un certain j'ai une requete qui fonctionnait correctement et qui du jour au lendemain ne me ramene plus rien.

    la requete
    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
    <?php$n = 0;
    // Informations sur les matières et la moyenne de l'élève
    $sql2 = "SELECT enseigner.id_matiere as matiere, lib_matiere, coeff
             FROM matiere, coefficien, enseigner
             WHERE matiere.id_matiere = coefficien.id_matiere AND
                   matiere.id_matiere = enseigner.id_matiere AND
                   enseigner.id_classe = '$idclasse'";
    $req2 = $DB->query($sql2);
    while($d2 = $req2->fetch())
    {
        $n++;
        //$moyenne = MoyMat($id,$idperiod,$d2['matiere'],$DB);
    $moyenne = MoyMat($id,$idperiod,$d2['matiere'],$DB);
        $rang = RangMat($id,$idperiod,$d2['matiere'],$iduser,$DB);
        ?>
    <tr>
            <td><?php echo $n; ?></td>
            <td><?php echo $d2['lib_matiere']; ?></td>
            <td align="center"><?php echo round($moyenne,2); ?></td>
            <td align="center"><?php echo $bar; ?></td>
            <td align="center"><?php echo $d2['coeff']; ?></td>
            <td align="center"><?php echo round($moyenne*$d2['coeff'],2); ?></td>
            <td align="center"><?php echo $rang; ?></td>
            <td class="text-center">
                <ul class="icons-list">
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                            <i class="icon-menu9"></i>
                        </a>
                        <ul class="dropdown-menu dropdown-menu-right">
                            <li><a href="ListeNoteMat.php?idins=<?php echo $id; ?>&nm=<?php echo $nom; ?>&prn=<?php echo $prnom; ?>&prd=<?php echo $idperiod; ?>&mat=<?php echo $d2['matiere']; ?>"><i
    class="icon-database"></i>Voir détails </a>
                            </li>
                        </ul>
                    </li>
                </ul>
            </td>
        </tr>
        <?php
    }
    ?>
    la foncion de calcul des moyennes
    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
    // Calcul de la moyenne l'élève dans la matière
    function MoyMat($inscrit, $periode, $matiere, $BDD)
    {
        $somnotecoef = 0;
        $somcoef = 0;
        $sqlfx = "SELECT note, coeff
                  FROM compo
                  WHERE id_matiere = '$matiere' AND
                        id_periode = '$periode' AND
                        id_inscrit = '$inscrit'";
        $reqfx = $BDD->query($sqlfx);
        while($dfx = $reqfx->fetch())
        {
            $somnotecoef += $dfx['note']*$dfx['coeff'];
            $somcoef += $dfx['coeff'];
        }
        if($somcoef == 0){
            $moyenne = 0.00;
        }else{
            $moyenne = $somnotecoef / $somcoef;
        }
        return $moyenne;
    }
    Fonction de calcul du rang
    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
    // FONCTION DU CALCUL DU RANG DE LA MATIERE
    function RangMat($inscrit, $periode, $matiere, $user, $BDD)
    {
        // Récupérer la classe et l'année scolaire d'inscription de l'élève
    $sqlfx = "SELECT id_classe, id_annee
                  FROM inscrit
                  WHERE id_inscri = '$inscrit'";
        $reqfx = $BDD->query($sqlfx);
        $dfx = $reqfx->fetch();
        $class = $dfx['id_classe'];
        $anne = $dfx['id_annee'];
     
        // Récupérer tout les élève dans la classe dans l'année scolaire
    $sqlfx1 = "SELECT id_inscri
                  FROM inscrit
                  WHERE id_classe = '$class' AND
                        id_annee = '$anne'";
        $reqfx1 = $BDD->query($sqlfx1);
        While($dfx1 = $reqfx1->fetch())
        {
            $insc = $dfx1['id_inscri'];
            // Pour chaque enregistrement claculer la moyenne et l'enregistrer dans e tableau moyrang
    $moyenne = MoyMat($insc, $periode, $matiere, $BDD);
            $tfx = array(
                'tins' => $insc,
                'tmoy' => $moyenne,
                'tuse' => $user,
            );
            $reqfx2 = $BDD->prepare("INSERT INTO moyrang (id_ins, moy, id_user)
                                     VALUES (:tins, :tmoy, :tuse)");
            $reqfx2->execute($tfx);
        }
     
        // La table moyrang étant remplie, la trier par ordre décroissant puis attribuer le rang de chaque élève
     
        // Remplir la table tri
    $n = 0;
        $sqlfx3 = "SELECT id_ins
                   FROM moyrang
                   WHERE id_user = '$user'
                   ORDER BY moy DESC";
        $reqfx3 = $BDD->query($sqlfx3);
        while($dfx3 = $reqfx3->fetch())
        {
            $n += 1;
            $insc2 = $dfx3['id_ins'];
            $tfx4 = array(
                    'tins' => $insc2,
                    'trg' => $n,
                    'tuse' => $user,
            );
            $reqfx4 = $BDD->prepare("INSERT INTO tri (id_ins, rang, id_user) VALUES (:tins, :trg, :tuse)");
            $reqfx4->execute($tfx4);
        }
     
        // Récupération du rang de l'élève
    $sqlfx5 = "SELECT rang
                   FROM tri
                   WHERE id_user = '$user' AND
                         id_ins = '$inscrit'";
        $reqfx5 = $BDD->query($sqlfx5);
        $dfx5 = $reqfx5->fetch();
     
        // Vider les tables tri et moyenne
    try{
            $reqfx6 = $BDD->prepare("DELETE FROM tri WHERE id_user = '$user'");
            $reqfx6->execute();
        }catch (PDOException $e){
            echo $e->getMessage();
        }
     
        try{
            $reqfx6 = $BDD->prepare("DELETE FROM moyrang WHERE id_user = '$user'");
            $reqfx6->execute();
        }catch (PDOException $e){
            echo $e->getMessage();
        }
     
        // Récupération et renvois du rang
    $rang = $dfx5['rang'];
        return $rang;
    }

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    j'ai une requete
    C'est laquelle parmi les 4 que tu nous montres ?
    Est-ce que tu l'as testée dans phpmyadmin ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    et donc ?

    C'est à nous de faire le débogage de base * ??
    Je ne crois pas...

    * : mettre des echo, var_dump,... pour vérifier les variables, rechercher et cibler le problème...


    Citation Envoyé par saninx Voir le message
    ...qui du jour au lendemain ne me ramene plus rien....
    Ca c'est de la précision...

  4. #4
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    c'est la première postée, les autres sont la juste pour comprendre d'ou viennent les fonctions que j'utilise dans le premier imprime écran. elle fonctionnait correctement et depuis quelques jours pafff plus aucun résultats, je suis même en local avec PHPMYADMIN.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 53
    Points : 22
    Points
    22
    Par défaut
    Essaie de faire des var_dump ou print_r de tes variables comme ca sa te donnera des précisions.

    Du genre : var_dump($req2) et si celle la ca va, fait sur ta variable suivante.

    Après tu verras ce que ca te dis et là tu auras peut être une idée de ce qui ne va pas.

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

Discussions similaires

  1. Requete qui ne marche plus avec firebird 2.5
    Par dehorter olivier dans le forum SQL
    Réponses: 6
    Dernier message: 17/04/2010, 13h46
  2. Réponses: 1
    Dernier message: 07/08/2008, 10h36
  3. (UNION) Requete qui ne fonctionne plus avec mysql4
    Par kreatik dans le forum Requêtes
    Réponses: 0
    Dernier message: 13/11/2007, 13h31
  4. [MySQL] Comprend pas! requete qui ne modifie plus la base au bout d'un certain nombre d'essai
    Par maxfive7 dans le forum PHP & Base de données
    Réponses: 28
    Dernier message: 01/08/2007, 14h05
  5. Requete OR qui ne ramene rien
    Par Sapience dans le forum Langage SQL
    Réponses: 10
    Dernier message: 14/04/2005, 12h12

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