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 :

Include qui ne s'effectue dans la boucle


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 12
    Par défaut Include qui ne s'effectue dans la boucle
    Bonjour tout le monde ^^ ,

    Je vais dans un premier temps mettre mes codes :

    présence.php :
    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
     
    <?php
     
    if (!isset($_SESSION)) { session_start(); }
     
    include 'db.php'; //paramètres bdd
     
    $con = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS, $DATABASE_NAME);
    if ( mysqli_connect_errno() ) {
    // If there is an error with the connection, stop the script and display the error.
        exit('Failed to connect to MySQL: ' . mysqli_connect_error());
    }
     
    $b=$_SESSION['email'];
    $sql = "SELECT * FROM `site` WHERE `email`='$b'";
    $fire = mysqli_query($con,$sql);
    $row_cnt = $fire->num_rows;
    if ($row_cnt==0){
        echo "Vous n'avez pas encore de site enregistré";
    }
    else{
        //include 'rapport.php';
        //include 'graph_rep.php';
        //include 'graph_stat.php';
        while ($row = mysqli_fetch_array($fire)) {         
            echo $row['nom']."\n";
            $site=$row['nom'];
            $_SESSION['site']=$site;
            include 'rapport.php';
        }
    }  
    ?>
    Rapport.php:

    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
     
    <?php
     
    if (!isset($_SESSION)) { session_start(); }
     
    include 'db.php'; //paramètres bdd
     
    $con = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS, $DATABASE_NAME);
    if ( mysqli_connect_errno() ) {
    // If there is an error with the connection, stop the script and display the error.
        exit('Failed to connect to MySQL: ' . mysqli_connect_error());
    }
     
    $b=$_SESSION['site'];
    $sql = "SELECT * FROM datar where nom='$b'";
    $fire = mysqli_query($con,$sql);
    while ($row = mysqli_fetch_array($fire)) {         
            $timeon=$row['timeon'];
            $timetot=$row['timetot'];
        }
    if ($timetot==0){
        echo "Vous n'avez pas encore de données";
    }
    else{
        $time=($timeon/$timetot)*100;
        echo "Pourcentage d'activité $b sur ces dernières 24h : ".$time."%";
    }
    ?>
    Donc mon problème étant que lorsque j'execute présence.php, cela m'affiche bien l'ensemble des données voulues (en l'occurence youtube.fr, free.fr) mais quand j'ajoute l'include rapport.php le programme se bloque et n'affiche que le rapport de yt et n'affiche meme plus free.fr et je ne comprends pas trop pourquoi

    Voila, si je n'ai pas été très clair n'hésitez pas

    Merci d'avance pour vos réponses

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Le problème c'est que tu n'as pas de stratégie de nommage de tes variables, du coup comme elles portent toujours les mêmes noms (qui n'évoquent absolument rien), elles s'écrasent les unes les autres. Donc, déjà essaie de trouver comment nommer tes variables en fonction de ce qu'elles contiennent et ce toujours de la même manière. (Ce n'est pas une tâche facile de trouver la bonne formule, pas trop longue et qui te convient, mais après que de temps gagné et de problèmes évités. Inspire-toi sans vergogne du code des autres, github te tend les bras ainsi que le manuel PHP qui a aussi une sorte de style qui n'est pas inintéressant et dont nombre de scripts s'inspirent).

    Autres choses, en vrac:
    • Inutile de se connecter 200 fois au serveur de base de données, 1 seule fois suffit. Idem pour le démarrage de session, idem pour l'inclusion des paramètres de connexion au serveur MySQL.
    • Si tu choisis d'utiliser l'extension MySQLi pour communiquer avec ta base de données, préfère la notation objet qui est beaucoup plus simple que les fonctions mysqli_blahblahblah.
    • Utilise les requêtes préparées et arrête de coller des backticks ` et des simples quotes ' partout dans tes requêtes (ça ne sert à rien!).
    • Si tu te laisses embrouiller par quelques include, rien ne t'empêche d'écrire ton script sans pour ensuite les rajouter. Réfléchis bien à ce qui est pertinent de regrouper dans un include. Demande toi aussi si un require ou un require_once ne serait pas plus adapté.
    • Pourquoi faire 2 requêtes SQL lorsqu'une seule suffit. (Les SGBDs et le SQL constituent un formidable outil sur lequel ça vaut vraiment le coup de se pencher, et ce à tout point de vue: performance, flexibilité, éloquence. Plus tu connais MySQL (ou un autre SGBD), moins tu te fatigueras en PHP.)


    Bon courage.

Discussions similaires

  1. [12c] Unix - ksh qui appelle un sql dans une boucle
    Par pomolo11 dans le forum SQL
    Réponses: 2
    Dernier message: 10/07/2014, 09h34
  2. [Débutant] instruction non effectuée dans une boucle
    Par deicide dans le forum VB.NET
    Réponses: 7
    Dernier message: 07/01/2014, 15h02
  3. Réponses: 2
    Dernier message: 08/07/2011, 15h09
  4. Réponses: 10
    Dernier message: 17/03/2011, 16h00
  5. Réponses: 2
    Dernier message: 20/06/2008, 10h20

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