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 :

utiliser une classe plusieurs fois


Sujet :

Langage PHP

  1. #1
    Débutant   Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Points : 262
    Points
    262
    Par défaut utiliser une classe plusieurs fois
    bonjour tous le monde!

    alors 'oilou, $database est une classe passée en variable globale, qui permet d'avoir acces a la bdd. Classique.

    mais alors que je fais une boucle pour recuperer mes valeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php 
    $query="select * from jos_bataille where id_defense='$id'  ";
    	$prem=$database->setQuery($query);
    	$rows = $database->loadObjectList($prem);
    foreach ( $rows as $arrow ) {
    		?>
    	<td> <?php echo $arrow->victoire;?> </td>	<?php
    	}

    j'essaye de refaire une boucle a l'interieur de mon foreach en reutilisant database :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $query="select * from jos_bataille where id_defense='$id'  ";
    	$prem=$database->setQuery($query);
    	$rows = $database->loadObjectList($prem);
    foreach ( $rows as $arrow ) {
    	$id_atta=$arrow->id_attaque;
    	$querys="select username from jos_users where id='$id_atta'  ";
    	$deu=$database->setQuery($querys);
    	$troi=$database->loadObjectList($deu);
     
    	?>
    	<td> <?php echo $arrow->victoire; ?> </td>
    <td> <?php echo $troi->username;?> </td>	<?php
    	}

    sauf que la, mon username ne s'affiche pas! pourquoi???!


    because que si je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $query="select * from jos_bataille where id_defense='$id'  ";
    	$prem=$database->setQuery($query);
    	$rows = $database->loadObjectList($prem);
    	foreach ( $rows as $arrow ) {
    	$id_atta=$arrow->id_attaque;
    	$querys="select username from jos_users where id='$id_atta'  ";
    	$deu=mysql_query($querys);
    	$troi=mysql_fetch_array($deu);
    	?>
    	<td> <?php echo $arrow->victoire; ?> </td>
    <td> <?php echo $troi['username']; ?> </td>
    	<?php
    	}

    he bien mon username s'affiche!



    ou est mon prob siouplais? merci bien

  2. #2
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Points : 40
    Points
    40
    Par défaut
    euh...
    Quel version de php?

    Et disons le code de ta classe database... car elle a l'air complique pour faire peu de chose.
    Je comprends pas par exemple pourquoi tu prepares et recuperes tes donnees en 2 methodes. Ca me parait compliqué alors que le but c'est quand meme de se simplifier la vie ;-)


    Ensuite j'ai vraiment un peu de mal avec le melange php html...
    Plutot que cela
    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
     
    <?php
    $query="select * from jos_bataille where id_defense='$id'  ";
    	$prem=$database->setQuery($query);
    	$rows = $database->loadObjectList($prem);
    foreach ( $rows as $arrow ) {
    	$id_atta=$arrow->id_attaque;
    	$querys="select username from jos_users where id='$id_atta'  ";
    	$deu=$database->setQuery($querys);
    	$troi=$database->loadObjectList($deu);
     
    	?>
    	<td> <?php echo $arrow->victoire; ?> </td>
    <td> <?php echo $troi->username;?> </td>	<?php
    	}
    tu peux pas mettre ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    $query="select * from jos_bataille where id_defense='$id'  ";
    	$prem=$database->setQuery($query);
    	$rows = $database->loadObjectList($prem);
    foreach ( $rows as $arrow ) {
    	$id_atta=$arrow->id_attaque;
    	$querys="select username from jos_users where id='$id_atta'  ";
    	$deu=$database->setQuery($querys);
    	$troi=$database->loadObjectList($deu);
            echo "<td> $arrow->victoire </td>\n";
            echo "<td> $troi->username </td>\n";
    	}
    ?>
    Et pis bon en plus je presumes que tu as un seul username gagnant non?
    SELECT * FROM jos_bataille bat, jos_users us WHERE id_defense='$id' AND us.id = bat.id_attaque
    Ca devrait tout te ramener un une seule fois...
    Mais bon ca explique pas ton pb quand meme ;-) (meme si ca le resoud...)

  3. #3
    Débutant   Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Points : 262
    Points
    262
    Par défaut
    ha oué t'as bien raison, mieux vaut faire ca grace a une seule requete, c'est beaucoup plus propre! merci beaucoup garrath


    par contre effectivement, je comprends pas pourquoi mon $database peut pas etre utilisé plusieurs fois!

    si quelqu'un a une idee siouplais merci, j'aimerais vraimenbt beaucoup savoir!

  4. #4
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Points : 40
    Points
    40
    Par défaut
    yep c plus propre et cela sera plus rapide...

    Mais bon tu peux laisser tel que c'est actuellement pour essayer de comprendre le pb avec ta classe.
    Mais sans le code de la classe on peut pas faire grand chose.

  5. #5
    Débutant   Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Points : 262
    Points
    262
    Par défaut
    c'est pas le code de la classe le probleme a mon avis!

    n'ayant jamais codé avec les classes, je suis a peu pres certain que le probleme vient de mon utilisation -la clase database est la classe de joomla! pour tout ce qui est rapport avec la bdd, elle est donc bien codée^^

    a mon avis, pour appeler la meme classe dans une boucle plusieurs fois, y'a un truc a faire que je ne connais pas



    sinon, je vais laisser le code que tu m'as conseiller, merci beaucoup

    mais il faut absolument que je sache comment faire! because que c'est frequent ce type de cas!

  6. #6
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Points : 40
    Points
    40
    Par défaut
    Essayes avec un truc du style $troi[0]->victoire.

    Et c'est pas propre ce que fais joomla ;-) 2 methodes pour lancer une requete et recuperer le resultat. L'interet est tres limité.

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/06/2008, 10h56
  2. Réponses: 5
    Dernier message: 03/04/2006, 09h57
  3. [Applet]utiliser une classe d'un package dans une applet
    Par jeromejanson dans le forum Applets
    Réponses: 1
    Dernier message: 30/06/2005, 08h13
  4. [EJB][JONAS] EJB utilisant une classe "externe"
    Par Gregory3000 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 13/12/2004, 19h57
  5. [Servlet] Comment utilisé une servlet plusieurs fois ?
    Par gandalf_le_blanc dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 03/06/2004, 14h49

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