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 :

conversion php4 => php5


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut conversion php4 => php5
    Bonjour,

    Pour recoder une appli PHP4 en PHP5, je suis a la recherche de la meilleure façon de faire :

    L'une des page de mon appli a pour but de d'afficher un tableau avec toutes les voiture disponibles dans la base de données.

    Actuellement, c'est codé de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $q = 'SELECT ID, couleur, marque, modele FROM Voiture';
    $g = mysql_query($q);
    while ($r = mysql_fetch_array($g)){
    	echo '
    		<tr>
    			<td>'.$r['ID'].'</td>
    			<td>'.$r['couleur'].'</td>
    			<td>'.$r['marque'].'</td>
    			<td>'.$r['modele'].'</td>
    		</tr>';
    }
    De cette façon, 1 requête => 1 boucle => 100 voiture affichée et tout le monde est content.

    Dans la conversion Objet, j'ai évidemment créé une classe Voiture et un programme principal :

    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
     
    Class Voiture{
    	public
    		  $ID
    		, $couleur
    		, $marque
    		, $voiture;
     
    	public function __construct($id){
    		$q = select * from voiture where id = $id;
    		$g = mysql_query($q);
    		$r = mysql_fetch_array($g);
    		$this->ID = $r['ID'];
    		$this->couleur = $r['couleur'];
    		$this->marque = $r['marque'];
    		$this->modele = $r['modele'];
    	}
     
    	// mon but n'est pas de faire du MVC, donc je mets la méthode d'affichage à cet endroit :-)
    	public function AfficheVoiture(){
    		echo '
    			<tr>
    				<td>'.$this->ID.'</td>
    				<td>'.$this->couleur.'</td>
    				<td>'.$this->marque.'</td>
    				<td>'.$this->modele.'</td>
    			</tr>';
    	}
    }
     
    //Programme principal :
    $q = 'SELECT ID FROM Voiture';
    $g = mysql_query($q);
    while ($r = mysql_fetch_array($g)){
    	$v = new Voiture($r['ID']);
    	$v->AfficheVoiture();
    }
    Le souci, vous l'aurez certainement compris est que pour le coup, j'ai non plus 1 mais 101 requêtes ! Je me félicite pour l'optimisation...

    Je me dis que y'a un gros souci de conception. J'imagine qu'on doit utiliser un tableau et initialiser mes instance de voiture via les lignes du tableau, mais du coup je me dis qu'il y a peut être une méthode reconnue pour ce genre de problématique dont je ne suis pas le seul à y être confronté...

    Vos avis d'experts ?

    Merci de votre aide !

  2. #2
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    t'es pas obliger de faire de l'objet en PHP 5, si ton code est bien fait y'a aucun problème de migration entre PHP 4 et PHP 5

  3. #3
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut
    certes, mais l'idée et de pouvoir simplifier nos applications qui utilisent, de façon différentes, des structures identiques... donc l'objet paraît le moyen le plus adapté pour éviter de devoir tout refaire au moindre changement !

  4. #4
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    fait une méthode "findAll"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public function findAll()
    {
        $q = 'SELECT ID, couleur, marque, modele FROM Voiture';
        $g = mysql_query($q);
        $voitures = array();
        while ($voitures[] = mysql_fetch_assoc($g));
     
        return $voitures;
    }

  5. #5
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut
    ok, mais où sont mes instances de Voiture ? et la méthode findall, je la déclare dans la classe Voiture ou dans une autre classe ?

  6. #6
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par grinder59 Voir le message
    ok, mais où sont mes instances de Voiture ? et la méthode findall, je la déclare dans la classe Voiture ou dans une autre classe ?
    Tu fais new Voiture, maps faut rien mettre dans le construct, PDO te permet de directement charger des classe avec FETCH_CLASS

Discussions similaires

  1. [DOM XML] Compatibilité xml php4 et php5
    Par brasco06 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 14/12/2006, 11h48
  2. Applic PHP4 sous PHP5
    Par Michael# dans le forum Langage
    Réponses: 3
    Dernier message: 14/11/2006, 20h54
  3. [Debian + Apache2] PHP4 vers PHP5
    Par Jean_Benoit dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 01/05/2006, 17h43
  4. [POO] class php4 vers php5, redefinition de $this
    Par jeff_! dans le forum Langage
    Réponses: 1
    Dernier message: 23/03/2006, 19h33
  5. mySQL4.1 - PHP5 - conversion PHP4
    Par messier79 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 30/10/2004, 23h27

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