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 :

Nom de la table dans mon code


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juillet 2020
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2020
    Messages : 38
    Par défaut Nom de la table dans mon code
    Bonjour,
    j'aimerais faire des pings depuis une liste de serveur qui se trouve dans ma BDD.
    Pour cela pas de soucis.
    Le problème viens du faite que j'aimerais inscrire les résultats dans un fichier CSV de la manière suivante : LigneA;(nom de la table);nom du serveur;(resultat du ping);nom du serveur

    Voici se que j'ai réussi a faire :
    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
    <?php
    include "PDO.php";
     
    $reponse = $bdd->query('SELECT * FROM base1 UNION ALL SELECT * FROM base2');
    {
    while ($donnees = $reponse->fetch())
    {
    $c2 = 0; // compteur
    $ping = exec("ping -n 1 {$donnees['nom']}");
    $OK = (substr($ping, -2) != 'ms') ? "HS" : "OK";
    $c2++;
     
     
     
    $serveurs = "test.csv";
    $res = array();
    $c = 0;
    $ligne = "LigneA";
     
    $fp = fopen($serveurs, 'r'); // ouverture du fichier
    while (($data = fgetcsv($fp, 0, ';')) !== FALSE) {
        $res[$c] = $data;
    	$res[$c][0] = $ligne;
    	$res[$c][1] = 
    	$res[$c][2] = $donnees['nom'];
    	$res[$c][3] = $OK;
    	$res[$c][4] = $donnees['nom'];
        }
    @fclose(@$fp);
     
    // écriture du fichier
    $fp = fopen($serveurs, 'a');
    foreach($res as $data)
        fputcsv($fp, $data, ';');
    fclose($fp);}}
     
    ?>
    Tout fonctionne parfaitement sauf le nom de la table ou il fait le ping, je n'arrive pas à prendre l'info pour la mettre dans "$res[$c][1] = ".
    Donc j'aimerais qu'il me note base1 ou base 2 en fonction du serveur qu'il ping.

    Petite demande supplémentaire:
    J'ai environ 100 tables, existe t-il une autre manière que de mettre des UNION ALL entre chaque SELECT ou alors un existe une manière de prendre toutes les tables en même temps ?

    Merci beaucoup.

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Met le nom de ta table dans le SELECT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = $bdd->query("SELECT 'base1' AS t, base1.* FROM base1 UNION ALL SELECT 'base2' AS t, base2.* FROM base2");
    La table d'origine sera renseignée dans le champ "t"

    J'ai environ 100 tables, existe t-il une autre manière que de mettre des UNION ALL entre chaque SELECT ou alors un existe une manière de prendre toutes les tables en même temps ?
    Pourquoi autant de tables ?
    Avec un telle structure (qui me semble mauvaise) tu n'as pas le choix : il faut construire dynamiquement ta requête, et penser aux évolutions, quand tu auras davantage de tables.

  3. #3
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juillet 2020
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2020
    Messages : 38
    Par défaut
    Merci beaucoup c'est parfait.

    Pour le nombre de table malheureusement je n'est pas le choix mais l'avantage c'est que cela restera fixe, il n'y aura jamais de table supplémentaire.
    Un peu de texte pour énormément de temps gagner.

    Merci pour tout.

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 591
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 591
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Attention à ne pas confondre table et base de données, le ping concerne le serveur de base de données, il est inutile de faire un ping par table.

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

Discussions similaires

  1. Nom de table dans mon DataSet
    Par lucazzo dans le forum C#
    Réponses: 2
    Dernier message: 07/07/2009, 17h42
  2. Projet VB v6 : utilisation de requête SQL dans mon code
    Par MITCH31 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/10/2005, 15h02
  3. Réponses: 10
    Dernier message: 06/10/2005, 22h25
  4. Réponses: 1
    Dernier message: 21/02/2005, 12h40
  5. [langage] algo de bissection dans mon code
    Par killy dans le forum Langage
    Réponses: 5
    Dernier message: 19/01/2004, 18h35

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