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

Langage PHP Discussion :

Variable vide alors qu'elle ne devrait pas l'être [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut Variable vide alors qu'elle ne devrait pas l'être
    Bonjour,

    Voici mon problème :

    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
    for ($i = 0 ; $i < count($ressource) ; $i++)
    {
    	$req2 = select_sql('Nodes','Constructeur','Node = '.$ressource[$i].'');
    	$req = mysql_query($req2);
    	print_r($req);
    	$equip = mysql_result($req,0);
    	print_r($equip);
    	print "equip ? $equip<br>";
     
    	if($equip == "ERICSSON")
    	{
    		$tableResEricsson[] = $ressource[i];
    		$tableIndEricsson[] = $tablesInd[i];
    	}
    	else
    	{
    		$tableResCisco[] = $ressource[i];
    		$tableIndCisco[] = $tablesInd[i];
    	}
    }
    Ma variable $equip est nulle (vide) pour chaque entrée alors que ma requête est bonne et ma boucle est bonne. J'ai essayé de lancer ma requête dans phpMyAdmin, ça fonctionne.

    $equip est soit égale à ERICSSON soit égale à CISCO.

    Merci d'avance

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développement
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 13
    Points
    13
    Par défaut
    Bonjour, as tu essayais de coder en objet avec le dernier php car celui-ci est obsolète
    Je te conseille d'allez regardé l'exemple suivant =>http://php.net/manual/fr/function.mysql-result.php
    Tu ne te connecte pas a la base, tu ne choisis pas ta base, tu ne close pas ta connection.
    $ressource correspond a quoi? Il ne te faut pas plutôt $i<=count($ressource)?

    A bientôt !

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Je ne passe pas en objet car justement j'ai un petit souci de connexion à ma base avec l'orienté objet.

    Ma base est choisit, je me connecte via mon connexion.php. Le problème n'est pas ici.

    $ressource contient ça :
    [0] => SG1AUBE [1] => SG1BEAU [2] => SG1BLAN [3] => SG1KEN [4] => SG1LACA jusqu’à 26
    Et pour ce qui est de $i <= ce n'est pas ça non plus car comme je pars de 0 j'ai 26 champs avec le inférieur strict.

    Voici le message d'erreur que j'ai dans la requête :

    SELECT Constructeur FROM Nodes WHERE Node = SG1AUBE
    Erreur SQL ! SELECT Constructeur FROM Nodes WHERE Node = SG1AUBE
    Unknown column 'SG1AUBE' in 'where clause'equip ?
    La fonction select_sql :
    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
    function select_sql($table,$champs,$where)
    {
            if ($where == "")
            {
    	        $sql = 'SELECT '.$champs.' FROM '.$table.'';
    	        $req = mysql_query($sql) or print('<br>Erreur SQL ! '.$sql.'<br>'.mysql_error());
            }
            else
            {
    	        $sql = 'SELECT '.$champs.' FROM '.$table.' WHERE '.$where.'';
    	        //$req = mysql_query($sql) or print('<br>Erreur SQL ! '.$sql.'<br>'.mysql_error());
            }
    //return mysql_fetch_array($req);
    return ($sql);
    }
    Ce qui est bizarre parce que j'ai bel et bien SG1AUBE dans ma table...

    Voila le code en entier même si je pense que ça ne vous sera pas utile :

    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    <html>
    <head>
    </head>
    <body>
    <?php
    include("fonctions.inc.php");
     
     // --------------------------- \\
    // ********* VARIABLES ********* \\
     
    $semaine = $semChoix;
    $anneeChoix = $_POST["zl_date_an"];
    $semaine = "S".$semaine;
    $annee = "A".$anneeChoix;
     
    $date = date("Y-m-d");
    $datedeb = date("Y-m-d H:i:s");
     
    $res = array();
    $ressource = array();
    $tablesInd = array();
     
    $tableIndEricsson = array();
    $tableResEricsson = array();
    $tableDateEricsson = array();
    $indicateursEricsson = array();
     
    $tableIndCisco = array();
    $tableResCisco = array();
    $tableDateCisco = array();
    $indicateursCisco = array();
     
    $nomIndEricsson = array('succGprsAttach','gprsMmSgsnUnsuccessfulAttachRequests','UnsuccAttachCC7.G','UnsuccAttachCC8.G','UnsuccAttachCC13.G','UnsuccAttachCC14.G','UnsuccAttachCC15.G','SuccActPdpContext.G','AttActPdpContext.G','UnsuccActPdpContextCC27_28.G','UnsuccActPdpContextCC29.G','UnsuccActPdpContextCC32_33.G');
    $nomIndCisco = array('2G-attch-accept','2G-attach-reject','2G-gprs-service-not-allowed','2G-gprs-and-non-gprs-service-not-allowed','2G-roaming-not-allowed-in-this-location-area','2G-gprs-service-not-allowed-in-this-plmn','2G-no-suitable-cells-in-location-area','2G-total-actv-accept','2G-total-actv-req','2G-actv-rej-unknown-pdp-addr-type + 2G-actv-rej-missing-or-unknow-napn','2G-actv-rej-usr-auth-failed','2G-actv-rej-service-not-subscribed + 2G-actv-rej-service-not-supported');
     
    $timeStampPremierJanvier = strtotime($anneeChoix . '-01-01');
    $jourPremierJanvier = date('w', $timeStampPremierJanvier);
    //-- recherche du N° de semaine du 1er janvier -------------------
    $numSemainePremierJanvier = date('W', $timeStampPremierJanvier);
    //-- nombre à ajouter en fonction du numéro précédent ------------
    $decallage = ($numSemainePremierJanvier == 1) ? $semChoix - 1 : $semChoix;
    //-- timestamp du jour dans la semaine recherchée ----------------
    $timeStampDate = strtotime('+' . $decallage . ' weeks', $timeStampPremierJanvier);
    //-- recherche du lundi de la semaine en fonction de la ligne précédente ---------
    $jourDebutSemaine = ($jourPremierJanvier == 1) ? date('d-m-Y', $timeStampDate) : date('Y-m-d', strtotime('last monday', $timeStampDate));
    $jourFinSemaine = ($jourPremierJanvier == 1) ? date('d-m-Y', $timeStampDate) : date('Y-m-d',strtotime('next sunday', $timeStampDate));
     
    $datedeb = $jourDebutSemaine." 00:00:00";
    $datefin = $jourFinSemaine." 23:59:00";
     
     // -------------------------------------- \\
    // ********* SELECTION DES TABLES ********* \\
     
    $tables = mysql_query('show tables');
    $res = mysql_fetch_array($tables);
     
    if (!$res)
    {
    	echo "La base de données est pour le moment inaccessible</p>";
    	print_r($bdd->errorInfo());
    	exit;
    }
     
     // --------------------------------------------------------------------------- \\
    // ********* SELECTION DES TABLES indicateur_ ET DES RESSOURCES SEULES ********* \\
     
    while ($line = mysql_fetch_array($tables))
    {
    	if (preg_match('#^indicateur_(SG[0-9][a-zA-Z]+)_SGSN$#', $line[0],$matches))
    	{
    		$tablesInd[] = $matches[0];
    		$ressource[] = $matches[1];
    		/*echo "matches[0] = " . $matches[0] . "<br/>";
    		echo "matches[1] = " . $matches[1] . "<br/>";*/
    	}
    }
     
    print_r($tablesInd); //Array ( [0] => indicateur_SG1AUBE_SGSN [1] => indicateur_SG1BEAU_SGSN [2] => indicateur_SG1BLAN_SGSN...)
    echo "<br>";
    print_r($ressource); //Array ( [0] => SG1AUBE [1] => SG1BEAU [2] => SG1BLAN [3] => SG1KEN [4] => SG1LACA [5] => SG1MASS...)
    echo "<br>";
     
     // ---------------------------------------------- \\
    // ********* TRI DES NODES / CONSTRUCTEUR ********* \\
     
    for ($i = 0 ; $i < count($ressource) ; $i++)
    {
    	$req2 = select_sql('Nodes','Constructeur','Node = "'.$ressource[$i].'"');
    	$req = mysql_query($req2);
    	$equip = mysql_result($req,0);
    	print_r($equip);
    	echo $equip;
    	print "equip ? $equip<br>";
     
    	if($equip == "ERICSSON")
    	{
    		$tableResEricsson[] = $ressource[i];
    		$tableIndEricsson[] = $tablesInd[i];
    	}
    	else
    	{
    		$tableResCisco[] = $ressource[i];
    		$tableIndCisco[] = $tablesInd[i];
    	}
    }

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    C'est bon, j'ai tout corrigé il y avait deux erreurs :
    - L'absence des " " dans la requête
    et
    - l'absence du $ dans le if

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

Discussions similaires

  1. Image de fonds qui bouge (alors qu'elle ne devrait pas)
    Par koukic11 dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 01/02/2010, 09h57
  2. Variable undefined alors qu'elle existe.
    Par defacta dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 31/07/2009, 08h58
  3. Réponses: 3
    Dernier message: 24/04/2008, 18h25
  4. Réponses: 2
    Dernier message: 25/11/2007, 16h37
  5. Réponses: 15
    Dernier message: 25/09/2005, 23h31

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