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 :

Retour d'un tableau php


Sujet :

Langage PHP

  1. #1
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut Retour d'un tableau php
    Bonjours

    J'essaye de faire en sorte de retourné un tableau pour faire propre.

    Voici mon

    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
     
     
    <?php
    class News extends odbc
    {
    	function get() {
    		$conn = new odbc();
    		$conn->connect('xxxx');
    		$sql = 'SELECT *
    				FROM news';
    		$conn->executer($sql);
    		while (($rows = $conn->tableauAssoc()) != false) { ?>
    				$this->row = array($rows);	
    		<?php }
     
    	}
    }
     
    ?>
    Comment faire pour recuperer tous le contenu de la table dans le genre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach (news->rows as n)
    {
    $n[title]
    }
    Desolé il ne me reste plus de batterie j'epsere sue vous comprendrai.


    A la place de faire un while tous moche avec du html/php

    Cordialement

  2. #2
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Pourquoi ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while (($rows = $conn->tableauAssoc()) != false) { ?>
    				$this->row = array($rows);	
    		<?php }

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Et surtout pourquoi fermer les balises php avant le $this->row = array($rows); ?

    Au passage, faire $this->row = array($rows); implique que tu recrées le tableau à chaque tour de boucle, donc que tu ne vas conserver que le dernier résultat de ta requête...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Comment fait t'on s'il vous avec un exemple de news par exemple ?

  5. #5
    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
    Avec mysql et mysqli tu dois créer ton tableau de récupération avec un while. Si tu utilises pdo tu peux utiliser directement fetchall. ça va dans le sens de ta question ?

  6. #6
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Merci.
    En faite doit faire un while
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while .. {
    ?>
    bon bjours bonjours
    <?
    }
    Moi ce que j'aielmerai c'est faire un forach deans ma vue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    views/news.php
    foreach ($tjost>rows = $rows){
    echo $titls.
    }
    Cest deja mieu se se seare le model de la vue,

    Mais je n'y arrive pas

    Voici le code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class News extends odbc
    {
    	function get() 
    	{
    		$conn = new odbc();
    		$conn->connect('xxx');
    		$sql = 'SELECT *
    			  FROM news';
    		$conn->executer($sql);
    		$this->rows = $conn->tableauAssoc();	
    	}
    }
    Et l'appel dans la vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    $news = new News;
    $news->get();
    $news = array($news->rows);
     
    foreach ($news as $n) { ?
    <?php echo $n['date']?>]
    Sauf que la 3 ieme new aparait et pas toutes

  7. #7
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonsoir,

    plusieurs remarques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class News extends odbc
    Tu fais de l'héritage fonctionnel : tu dérives la classe odbc afin de récupérer uniquement ses fonctions dans la classe enfant. C'est une erreur conceptuelle sévère. Une news n'est pas une connexion odbc. Ta classe News doit avoir une dépendance avec ta classe odbc (composition/agrégation/association) mais en aucun cas elle ne doit être sa dérivée.

    Pour tes problèmes de récupération des données, tu dois nous indiquer quelle approche tu utilises : PDO/PDOStatement ou les fonction mysql_*
    Pour PDOStatement tu as à ta disposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdoStatement->fetchall()
    et pour les fonctions mysql_* : mysql_fetch_row()/mysql_fetch_array()/mysql_fetch_assoc() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while($row = mysql_fetch_assoc($res)) {
       $all[] = $row;
    }
    Enfin pour ton affichage, il t'est possible d'utiliser les méthodes alternatives :
    un exemple pour t'inspirer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <html>
       <?php foreach($news as $new): ?>
       <span><?php echo $new['date']; ?></span>
       <span> --- </span>
       <span><?php echo $new['titre']; ?></span>
       <?php endforeach; ?>
    </html>

  8. #8
    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
    Citation Envoyé par rawsrc Voir le message
    Enfin pour ton affichage, il t'est possible d'utiliser les méthodes alternatives :
    un exemple pour t'inspirer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <html>
       <?php foreach($news as new): ?>
       <span><?php echo $new['date']; ?></span>
       <span> --- </span>
       <span><?php echo $new['titre']; ?></span>
       <?php endforeach; ?>
    </html>
    Oui bon c'est une alternative, mais cela n'apporte rien de plus que les accolades, sinon de ne pas faire comme "tout le monde". C'est un détail insignifiant quand à la conception du code, et je me dis qu'avec les débutants il faut avoir le sens des priorités
    Ce que je veux dire c'est que ce que tu dis auparavant dans ton message est bien plus important et instructif pour le sujet de thebarbarius et que c'est là dessus qu'il faut qu'il se concentre

  9. #9
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Oui bon c'est une alternative, mais cela n'apporte rien de plus que les accolades, sinon de ne pas faire comme "tout le monde".
    Enfin, rien de plus... Tu y gagne en lisibilité parce que quand t'as des éléments imbriqués en pagaille, tu repères plus facilement les blocs avec un endforeach, endwhile ou toute autre syntaxe alternative qu'avec une simple accolade fermante. Pour peu que tu repasse après quelqu'un (qui code comme un cochon), crois-moi c'est appréciable.

    Et puis l'argument qui tue "ne pas faire comme tout le monde", bon là je ne dis rien parce que je vais faire monter ma tension pour rien

  10. #10
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Merci.

    Peut t'on rester sur mon code ?

    Car il fonctionne mais me retounr qu'un resutat.

    Je souhaietai les affiher tous.

  11. #11
    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
    Citation Envoyé par rawsrc Voir le message
    Enfin, rien de plus... Tu y gagne en lisibilité parce que quand t'as des éléments imbriqués en pagaille, tu repères plus facilement les blocs avec un endforeach, endwhile ou toute autre syntaxe alternative qu'avec une simple accolade fermante. Pour peu que tu repasse après quelqu'un (qui code comme un cochon), crois-moi c'est appréciable.
    J'ai une expérience totalement contraire. Simplement parce que tout éditeur légèrement évolué possède une fonction bien pratique qui s'appelle l'équilibrage des accolades et donc qu'il est beaucoup plus facile en un clic de retrouver le bloc concerné qu'avec la syntaxe endforeach etc. pour laquelle il n'existe pas d'équivalent pratique (tout au moins dans mon éditeur).

    Ensuite quand je dis "comme tout le monde", cela fait simplement référence à plus de 95% (ou plus) des exemples que l'on trouve sur le web y compris dans le manuel php. Et je comptais pas faire monter ta tension pour si peu

    Après chacun peut défendre ses préférences mais ce n'est pas la dessus que l'on juge de la qualité et de l'organisation d'un code. Et ma remarque dans mon message précédent allait simplement dans ce sens, histoire de recentrer les priorités : thebarbarius à bien d'autres choses à apprendre avant de se préoccuper de ces détails.


    @thebarbarius tu enregistre les résultats de ta requête dans un tableau et ensuite tu liste les résultats de ce tableau avec ton foreach pour l'affichage dans ta vue.
    Suivant que tu utilises ou non PDO, tu pourras récupérer directement le tableau avec fetchall si tu utilise l'extension PDO, ou tu devras construire ce tableau en faisant un while si tu utilise les extensions mysql, mysqli.
    C'est que que je t'ai déjà dit dans mon avant dernier message et c'est que t'a détaillé un peu plus rawsrc par la suite.
    Alors où est-il ce tableau dans ton code ?

  12. #12
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Merci.

    Peut t'on rester sur mon code ?

    Car il fonctionne mais me retounr qu'un resutat.

    Je souhaietai les affiher tous.

  13. #13
    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
    Citation Envoyé par ABCIWEB Voir le message
    @thebarbarius tu enregistre les résultats de ta requête dans un tableau et ensuite tu liste les résultats de ce tableau avec ton foreach pour l'affichage dans ta vue.
    Suivant que tu utilises ou non PDO, tu pourras récupérer directement le tableau avec fetchall si tu utilise l'extension PDO, ou tu devras construire ce tableau en faisant un while si tu utilise les extensions mysql, mysqli.
    C'est que que je t'ai déjà dit dans mon avant dernier message et c'est que t'a détaillé un peu plus rawsrc par la suite.
    Alors où est-il ce tableau dans ton code ?
    Euh... sais plus quoi dire, tu ne veux pas le faire ce tableau ?

Discussions similaires

  1. [MySQL] Retour ligne tableau PHP HTML
    Par iMax92 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/03/2013, 16h06
  2. Retour d'un tableau PHP vers Flex
    Par stage2009 dans le forum Flex
    Réponses: 4
    Dernier message: 18/11/2010, 10h32
  3. Recuperer un tableau php dans javascript
    Par 17mounir dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/08/2005, 09h07
  4. [DOM XML] XML -> tableau PHP
    Par Mucsy dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 03/06/2005, 11h44
  5. [PHP-JS] Remplir un tableau javascript selon un tableau php
    Par jerome38000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/01/2005, 14h02

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