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 :

Fonction, return inattendu


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut Fonction, return inattendu
    Salut à tous,
    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 viewPhotos() {
      global $db, $template;
    	$sql = 'SELECT d.id as id, d.fichier as fichier FROM fiches AS f 
    	        INNER JOIN docs AS d ON f.id = d.fiche
    	        WHERE f.user=:user';
    	$statement = $db->prepare($sql);
    	$statement->execute(array(':user' => $_SESSION['user']));
    	$tabl_result = $statement->fetch();
    	$tabl_results = $statement->fetchAll();
    	$fichiers = NULL;
    	foreach($tabl_results as $tabl_result) {
       $fichiers[] = $tabl_result;
      }
    	return $fichiers;
    }
    Pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $_SESSION['user'] = 1;
    echo count(viewPhotos());// retourne 3 et non 4
    Pourtant depuis PhpMyAdmin, le code si dessous me retourne 4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT d.id as id, d.fichier as fichier FROM fiches AS f 
    	        INNER JOIN docs AS d ON f.id = d.fiche
    	        WHERE f.user=1
    J'ai pèche à quel niveau?

    Merci d'avance...

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Pourquoi tu utilises fetch() en plus de fetchAll() ?

    Et puis fetchAll() te retourne déjà un tableau donc pourquoi en reconstruire un autre ?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Pourquoi tu utilises fetch() en plus de fetchAll() ?

    Et puis fetchAll() te retourne déjà un tableau donc pourquoi en reconstruire un autre ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function viewPhotos() {
      global $db, $template;
    	$sql = 'SELECT d.id as id, d.fichier as fichier FROM fiches AS f 
    	        INNER JOIN docs AS d ON f.id = d.fiche
    	        WHERE f.user=:user';
    	$statement = $db->prepare($sql);
    	$statement->execute(array(':user' => $_SESSION['user']));
    	return $tabl_results = $statement->fetchAll();
    }
    Merci.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pas besion de faire un $tabl_results

    juste ca suffis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return $statement->fetchAll();

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return $statement->fetchAll();
    Merci.

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

Discussions similaires

  1. type et fonction return
    Par acacia dans le forum Débuter
    Réponses: 11
    Dernier message: 23/01/2008, 13h09
  2. fonction return () avec retour de plusieurs valeurs
    Par nuphius dans le forum Langage
    Réponses: 4
    Dernier message: 06/01/2007, 18h44
  3. fonctions return un TStringList cree avec new
    Par clovis dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/12/2006, 20h41
  4. fonction RETURNS SETOF RECORD et count(): erreur
    Par ctobini dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 23/10/2006, 16h39
  5. [POO] Retour de données par une fonction (return)
    Par webrider dans le forum Langage
    Réponses: 6
    Dernier message: 26/08/2006, 22h49

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