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 :

[Tableaux] Mauvaises valeurs renvoyées


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Points : 4
    Points
    4
    Par défaut [Tableaux] Mauvaises valeurs renvoyées
    Bonjour

    Alors j'ai un ptit soucis, lorsque j'execute cette fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	public function get_CodepByAdr($id)
    	{
    		//on récupère le code postal correspondant à l'adresse 
    		$this->execute("select adresse_code_cp from adresse
    						where id_adresse='".$id."'");
    		//des erreurs?
    		if (count($this->aErreurs)!=0)return array();
    		//on parcourt le résultat du select
    		while ($ligne = $this->oResultats->fetchRow(DB_FETCHMODE_ASSOC)) {
    			$codep[]=array('codepostal'=>$ligne['adresse_code_cp']);
    		}
    		return array($codep);
    	}
    Lorsque je veux récupérer la valeur de la variable codep, il me renvoie toujours comme valeur "Array".

    Je ne comprends pas pourquoi... Je vous passe en plus la méthode execute:
    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
     
    public function execute($sQuery)
    	{
        	// $sQuery : requête à exécuter
        	// on mémorise la requête
    		$this->sQuery=$sQuery;    
          	// est-on connecté ?
          	if(! $this->connecte)
    		{
          		// on note l'erreur
            	$this->aErreurs[]="Pas de connexion existante à la base [$this->sDatabase]";
            	// fin
            	return;
          	}
          	// exécution de la requête
          	$this->oResultats=$this->oDB->query($sQuery);
        	// erreur ?
        	if(DB::iserror($this->oResultats))
    		{
        		// on note l'erreur
        		$this->aErreurs[]="Echec de la requête [$sQuery] : [".$this->oResultats->getMessage()."]";
          		// retour
            	return;
          	}  
        }
    Mais elle fonctionne(la méthode execute) car sur d'autres fonctions, les requêtes me renvoyaient le résultat souhaité.

    Si quelqu'un voit le ptit truc qui empeche cette $*%^$ù de fonction de me renvoyer le bon résultat...

  2. #2
    Membre confirmé Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Points : 547
    Points
    547
    Par défaut
    déjà tu peux virer :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    return array($codep);

    et simplement mettre :


    tu enregistre $codep ici :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $codep[]=array('codepostal'=>$ligne['adresse_code_cp']);

    faire çà revient à faire :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $codep= array( array('codepostal'=>$ligne['adresse_code_cp']) );

    donc retire les [] et dit moi si tu avances
    I don't know what will be used in the next world war, but the 4th will be fought with stones. - Albert Einstein
    Pour détourner un avion, il faut monter dedans - Frédéric beigbeder

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Ca me renvoie encore Array, mais je fais quelques tests pour voir d'où vient l'erreur exactement.

    Je te redis ça après!

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    C'est peut-être une erreur d'utilisation de cette variable.
    En effet, si tu fais un "echo $tableau", il te sortira "Array"
    Je pense que tu as une variable tableau correctement renseignée, mais que tu t'en sers mal.
    Pourrais-tu nous donner le code de son utilisation ?

    JM
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  5. #5
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    var_dump ou print_r sur ta variable en question pour avoir le maximum d'informations.

    Si tu vois rien c'est plus inquietant.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Désolé de ne pas avoir répondu avant...mais c'était le pont ,

    Alors, voila comment j'utilise la fonction suivante pour pouvoir récupérer le codep en fonction de l'adresse:

    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
     
    function ObtenirCodeP($dDSN, $id)
    	{
    		//connexion à la source de données définie par le dictionnaire $dDSN
    		$Publi=new publipostage_data($dDSN);
    		if (count($Publi->aErreurs)!=0)
    			return array($Publi->aErreurs);
    			//récupération des données
    			list($codep)=$Publi->get_CodepByAdr($id);
    			// on se déconnecte
    			$Publi->disconnect();
    			//on rend le résultat
    			if(count($Publi->aErreurs)!=0)
    				return array($Publi->aErreurs);
    			else return array(array(), $codep);
    	}
    Ensuite, j'execute la fonction de cette manière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	list($erreurs, $codep)=ObtenirCodeP($dConfig['DSN'], $_POST['etab']);
    	if(count($erreurs)!=0)
    		{
    			// préparation de la page d'erreurs
    			$dReponse['erreurs']=&$erreurs;
    			$dSession['etat']=array('principal'=>'e-erreurs','secondaire'=>'database');
    			return;
    		}
    Je teste pour voir si ma variable codep a bien une valeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(count($codep)==0)
    	{
    		$dSession['etat']=array('principal'=>'e-modif','secondaire'=>'saisie');
    		return;
    	}
    Il ne me renvoie pas à la page que je dis, donc il y a bien une valeur.

    Et je reprends ma variable ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $dSession['codep']=$codep[0];
    $dSession['etat']=array('principal'=>'e-modif','secondaire'=>'modif');
    Ca c'est dans ma page d'action. (J'utilise une architecture MVC, donc action, vue et controleur séparé).

    Dans ma page d'état:

    Je fais ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if ($type=='modif')
    	{	
    		$dReponse['vuereponse']='modele1';
    		$dReponse['vue3']=$dConfig['vues']['mod_modif']['url'];  
    		$dReponse['codep']=$dSession['codep'];
    	}
    Et enfin dans la vue:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    			<td>Code postal* :</td>
    			<td align="left"><input type="text" name="codepostal" value="<?php echo $dReponse['codep']; ?>");" maxlength="5"></td>

    Et il me retourne encore et toujours Array...

Discussions similaires

  1. Fonction Get() renvoyant les mauvaises valeurs
    Par jairbubbles dans le forum XML
    Réponses: 1
    Dernier message: 20/11/2006, 12h33
  2. [Tableaux] recuperer valeurs dans checkbox
    Par lch07 dans le forum Langage
    Réponses: 14
    Dernier message: 05/01/2006, 15h06
  3. [Tableaux] Recherche valeur dans tableaux
    Par Kaimann dans le forum Langage
    Réponses: 10
    Dernier message: 21/10/2005, 11h57
  4. [Tableaux] recuperation valeurs dun tableau ou d'un array
    Par pascale86 dans le forum Langage
    Réponses: 5
    Dernier message: 11/10/2005, 16h14
  5. Réponses: 2
    Dernier message: 19/08/2003, 18h04

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