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

PHP & Base de données Discussion :

Optimisation de scripts PHP/MySQL [Débat]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2003
    Messages : 152
    Par défaut
    Apprendre à faire des commandes SQL bien compliquées pour sortir un seul recordset avec toutes les infos necessaires (mais pas d'inutile), pour reduire d'autant les acces à la base.

    Recement j'ai refais une page ou je fais 1 acces à la base qui me renvoie tte les infos dont j'ai besoin, contre 3 par entrée dans la version d'avant, un premier et 2 autres par passage dans la boucle du premier (le gars avait l'air de s'etre arreté à 'select * from table' en sql).

  2. #2
    DgG
    DgG est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 22
    Par défaut
    Ouai c'est bien vrais tout ça
    J'ai une ptite question, comment on fait pour rajouter une variable dans un champ d'une base ?
    pour les aditions on peut faire champ=champ+$nb
    Mais pour du texte par exemple on peut le faire ?
    genre (marche pas):
    champ=champ.'text a rentrer'
    Nan ?

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Décembre 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 2
    Par défaut passage PHP / HTML ?
    Bonjour,

    Puisqu'on parle d'optimisation des scripts PHP, voilà une question que je me suis toujours posé.

    Lorsqu'on veut écrire du texte statique (typiquement les balises <table> ou <div>), est ce qu'il vaut mieux utiliser la commande ECHO ou arreter le script php ?

    Pour une question de lisibilité du code, il m'arrive souvent d'utiliser des ECHO, afin de ne pas interrompre mon script (?> ... <?php) pour seulement une ou deux lignes ; mais je ne suis pas certain que ca soit bon pour les performances ?

    Quelqu'un à un avis ?


    Vincent

  4. #4
    Nouveau candidat au Club
    Inscrit en
    Octobre 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 2
    Par défaut
    Si tu utilise des echo avec un texte statique privilege le '' plutot que ""

    De plus si la mémoire occupetrop pensez à faire des unset(); qui libere la mémoire utilisé mais niveau performance je sais pas si c'est ça mais si le serveur est compilé avec l'option --memory-limit alors cette fonction peut-etre utile

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 12
    Par défaut
    Utilier les décalages à droite ou à gauche sur les bits ( << et >> ) pour diviser ou multiplier par deux .

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 12
    Par défaut
    Il arrive fréquement que l'on affiche un form qui liste toutes les entrées d'une table SQL et que l'on y associe une checkbox pour supprimer l'entrée si c'est coché
    ( je prend le cas le plus simple mais bien sur il peut y avoir plusieurs checkbox, ou alors un champ qui permet de modifier la valeur de l'entrée, etc .. .)
    Si l'on nomme check_id chaque checkbox, avec id verifiant l'id de l'entrée dans la table .

    Dans la page qui reçoit le formulaire,

    on peut faire ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for ($i = 0; $i < $max; $i++)
    # le max représente l'id maximum des entrées de la table, a vous de voir comment vous la récupérez
    {
    if ($_POST['check_'.$i] == on) mysql_query("DELETE FROM table WHERE id = '$i'");
    }
    cette solution est mauvaise parce qu'elle va générer une requete mysql par checkbox cochée, ce qui entraine des grosse perte de performances .

    Mieux vaut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $query = "DELETE FROM table WHERE id IN (";
     
    for ($i = 0; $i < $max; $i++)
    # le max représente l'id maximum des entrées de la table, a vous de voir comment vous la récupérez
    {
    if ($_POST['check_'.$i] == on) $query .= "'$i',";
    }
     
    $query = substr($query, 0, strlen($query) - 2) . ")";
    mysql_query($query);
    Cela ne fait qu'une seule requete, donc gros gain de performances .

  7. #7
    DgG
    DgG est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 22
    Par défaut
    Ouaw génial, je connaisait pas le IN () !!! c trop bien ça !!
    sinan ca sert a koi ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query = substr($query, 0, strlen($query) - 2) . ")";
    enfin ca fait koi plustot ?

    Sinan pour les echo ou le stopage du script php (?>)
    je pense qu'il faut utiliser ?> dés que on a un peut de texte a afficher sans trop de variable .
    remarque on peut afficher les variables comme ceci : <?=$var?> lorsque le script php est coupé.

    Sinan j'ai une aure question : faut t'il faire unset($var); des que l'on ne sert plus d'une variable par la suite. le fait d'executer la fonction unset() ne bouffe pas un peut de ressources ? faut voir si pour des variable ou on a mis casiment que dale dedan, c'est la peine de faire un unset() ...

    Encore une chose ; je pense qu'il vaut mieu utiliser des nombres plustot que des chaines de caractère dans des variable
    exemple :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['check_'.$i] == 1 au lieu de $_POST['check_'.$i] == on
    M'en veut po Dozer

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 12
    Par défaut
    La syntaxe officielle c'est "on" pour une checkbox cochée, je t'assure, fait un print_r($_POST); pour t'en assurer .

    Sinon le substr() sur la $query, c'est pour retirer le ", " en trop bien sur.

    Et pour afficher beaucoup de texte qui ne comporte pas de variables la meilleur solution c'est la syntaxe "here doc"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo <<< PTR
    ligne1
    ligne2
    ligne3
    ...
    PTR;

  9. #9
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 133
    Par défaut Re: Optimisation de scripts Php/MySQL
    Citation Envoyé par DgG
    A vous maintenant de donner vos astuces, ou de poser des questions.
    - je rajouterais unset($objet) lorsque l'on utilise des objets
    - j'ai aussi pu constater que pour des requetes compliquées le fait de liberer le resultset accelerait considerablement le script , la toujours avec unset

  10. #10
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Par défaut
    pour le <?=$var?> dit plus haut.
    ça marche bien, mais la syntaxe <? ?> n'est pas valable sur tous les serveurs.
    Donc si le script doit être distribué( projet sourceforge ou autre) il vaut mieux mettre <?php echo $var; ?>

    c'est + long mais ça marche partout

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 27
    Par défaut
    salut,

    • les calculs répétés dans les boucles du style

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      for($i=0;$i<sizeof($arr);$i++)
      ca c'est pas bon!!!
      il vaut mieux
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
       
      $j = sizeof($arr);
      for($i=0;$i<$j;$i++)
      car on evite d'appeller la fonction à chaque itération
    • les fonctions ob_start et ob_en_flush au debut et à la fin d'un script, on l'air (retour d'experience) d'ameliorer la vitesse mais pas la charge mémoire
      The second issue is that in PHP 4, echoing multiple times is slower than storing everything in a string and echoing it in one call. This is because echo is an expensive operation that could involve sending TCP/IP packets to a HTTP client. Of course accumulating the string in $s has some scalability issues as it will use up more memory, so you can see a trade-off is involved here.
      An alternate way of speeding the above code would be to use output buffering. This will accumulate the output string internally, and send the output in one shot at the end of the script. This reduces networking overhead substantially at the cost of more memory and an increase in latency. In some of my code consisting entirely of echo statements, performance improvements of 15% have been observed.


    ici un tutorial en anglais sur les optimisations php assez complet qui pourrait peut etre, aprés accord de son auteur, être traduit et mis sur le site.
    je suis volontaire
    ++

  12. #12
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Par défaut
    Citation Envoyé par _Gabriel_
    salut,

    - les calculs répétés dans les boucles du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for($i=0;$i<sizeof($arr);$i++)
    ca c'est pas bon!!!
    peux-tu préciser un peu, je capte pas là...

  13. #13
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Est-ce qu'on peut optimiser ce sujet ?
    Il est trop lourd à charger dans ma RAM grise.

  14. #14
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    J'ai un résumé très simple : "Pour optimiser, il faut d'abord chercher ce qui est lent dans un programme, identifier les goulots d'étranglement". Ce résumé rends miraculeusement 90% de ce topic d'intérêt très faible : on connaît des solutions meilleures que d'autres mais dont l'application fait perdre en lisibilité contre des performances ne dépassant rarement les 1% d'amélioration. Parmi les conseils vraiment utiles, on peut citer Yogui en dernière page :

    Parfois (souvent), il ne faut pas penser à l'optimisation d'un script (réduire le temps d'exécution) mais à l'organisation du code (permettre une relecture facile).
    Et une URL :

    http://phplens.com/lens/php-book/opt...ugging-php.php

    ______
    Fin du résumé : D (à compléter évidement, ce s'rait un travail intéressant, mais très long)

    Il y avait des interventions intéressantes, mais c'est vrai que tout relire... Tous ce qui concerne l'optimisation des requêtes sur une base de donnée est quasiment utile, mais il faudrait certainement se référer au forum correspondant à la BDD utilisée. Il y en a beaucoup à prendre avec des pincettes. Genre, les calculs de temps d'execution en oubliant le temps de parsing. Et certaines solutions désignées comme "mauvaises" sont plus rapides à parser que les "bonnes" solutions. Ce qui revient à dire que le gain se fait uniquement dans des conditions de répétions, ou quand un cache d'opcode est activé. (Certains utilisent les optimisations, voir les conseillent dans leur signature, dans des cas qui sont hors de ces conditions) Cet exemple illustre bien la complexité de l'optimisation, quelque soit le langage d'ailleurs, et que l'on perd souvent beaucoup trop de temps à essayer d'optimiser pour des résultats ridicules voir insignifiants. (Et comme le dit implicitement Yogui à détruire la lisibilité du code) Gagner des microsecondes sur des scripts qui s'executent en des temps de l'ordre de la centaine de milliseconde ce n'est pas intéressant.


    Il y a des études d'optimisation de script qui peuvent être efficaces avec les bons outils. On peut programmer ces outils soit même, en php : l'astuce est donnée dans une page assez inconnue du manuel php :

    http://www.php.net/manual/fr/control...es.declare.php

    Avec une poignée de lignes, on peut calculer le temps d'execution d'un script ligne par ligne : on peut mesurer avec une marge d'erreur raisonable le temps que la machine passe sur chaque ligne, ce qui permet d'identifier au premier coup d'oeil ce qui prends du temps dans un code php, quelles fonctions, quelles lignes, en rapport avec le temps total d'exécution, y compris le temps passé dans un include pour récupérer le temps de parsing. A partir de là, on peut identifier les segments de code lents et seulement alors tenter de les optimiser.

  15. #15
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    En termes plus pratiques un truc qui n'à pas été que peu abordé c'est la mise en cache des objets durant l'execution, c'est plutot pour php5.
    zaventem en à un peu parlé sur un cas extrèmement particulier.

    Bref, sa arrive souvent qu'un objet soit construit plusieurs fois pour une même représentation en base.

    Un exemple simple serait le cas d'une liste de produit ave des marques.
    Chaque objet produit pourrait avoir en son sein une référence vers une marque.
    Hors il arrive souvent qu'une marque appartiennent à de multiples produits différent.
    Ce qui, si l'on y fait pas attention, instanciera 20 objet de la marque toto.

    en conséquence on obtient :
    - Une rupture entre l'unicité de la marque en base, et l'unicité de la marque lors de sa transofmation en objet.
    - Alourdit betement l'application qui execute N requetes identique pour le même objet.

    Pour éviter ces pertes idiotes une bonne solution est de créer une petite classe de cache... et d'instancier ces objets au travers de méthodes statique. A bas le new Produit( $id );

    En code sa donne :
    Code méthode gourmande : 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
     
    class produit
    {
    	public $nom;
    	public $marque;
     
    	public function __construct( $id )
    	{
    		$sql = "SELECT * FROM ...";
    		$query ....
    		$res....
     
    		$this->nom = $res["nom"];
    		$this->marque = new Marque( $res["idmarque"]);
    	}
    }
     
    class Marque
    {
    	public $id;
    	public $nom;
     
     
     
    	public function __construct( $id )
    	{
    		$sql = "SELECT * FROM ...";
    		$query ....
    		$res....
     
    		$this->id = $res["id"];
    		$this->nom = $res["nom"];
    	}
    }

    Ou bien :

    Code méthode plus légére : 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    class produit
    {
     
    	public $nom;
    	public $marque;
     
    	public function __construct( $id )
    	{		
    		$this->nom = NULL;
    		$this->marque = NULL;
    	}
     
    	public static function lire( $id )
    	{
    		$objet = Cache::Get( __CLASS__."lire".$id );
    		if( $objet != NULL )
    			return $objet;
     
    		$objet = new Produit();
     
    		$sql = "SELECT * FROM ...";
    		$query ....
    		$res....
     
    		$objet->nom = $res["nom"];
    		$objet->marque = Marque::lire( $res["idmarque"]);
     
    		 Cache::Put( $objet , __CLASS__."lire".$id );
     
    		return $objet;
    	}
    }
    class Marque
    {
     
    	public $id;
    	public $nom;
     
    	public function __construct( $id )
    	{		
    		$this->id = NULL;
    		$this->nom = NULL;
    	}
     
    	public static function lire( $id )
    	{
    		$objet = Cache::Get( __CLASS__."lire".$id );
    		if( $objet != NULL )
    			return $objet;
     
    		$objet = new Marque();
     
    		$sql = "SELECT * FROM ...";
    		$query ....
    		$res....
     
    		$objet->id = $res["id "];
    		$objet->nom = $res["nom"];
     
    		 Cache::Put( $objet , __CLASS__."lire".$id );
     
    		return $objet;
    	}
    }

    Et le petit bout de code qui va bien pour sauvegarder/lire des objets en cache :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    //////////////////////////////////////////////////////////
    ///	\class Cache
    ///	Classe qui permet de mettre en mémoire des objets, puis de les récupérer
    //////////////////////////////////////////////////////////
    class Cache
    {
     
    	//////////////////////////////////////////////////////////
    	//	propriétés
    	//////////////////////////////////////////////////////////
    	private static $Cache = array();
     
    	//////////////////////////////////////////////////////////
    	///	constructeur
    	//////////////////////////////////////////////////////////
    	private function __construct()
    	{
    	}
     
    	//////////////////////////////////////////////////////////
    	///	Mets en un objet en cache
    	///	l'uoid (Unique Object ID) est un identifiant unique
    	//////////////////////////////////////////////////////////
    	public static function Put( $Object , $uoid )
    	{
    		if($Object == NULL)
    			return false;
    		if( $uoid == NULL)
    			return false;
     
    		self::$Cache[$uoid] = $Object;
     
    		return true;
    	}
     
    	//////////////////////////////////////////////////////////
    	///	Recherche un objet en cache
    	///	l'uoid (Unique Object ID) est un identifiant unique
    	//////////////////////////////////////////////////////////
    	public static function Get( $uoid )
    	{
    		if( isset( self::$Cache[$uoid] ) )
    			return self::$Cache[$uoid];
    		return NULL;
    	}
     
    	//////////////////////////////////////////////////////////
    	///	destructeur
    	//////////////////////////////////////////////////////////
    	public function __destruct()
    	{
    	}
    }
    Je me suis permit de poster cela car j'ai vu assez souvent sur le forum des forumeurs qui faisait cela : new Produit( $id ); ce qui me laisse pensé que ce que je viens d'exposer pourrait les aider à ne plus executer de requetes inutiles.

    voilou,

    bbye

  16. #16
    Membre confirmé Avatar de sigap
    Inscrit en
    Avril 2002
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 113
    Par défaut
    parce le processeur PHP évalue les instructions "echo", il est préférable d'utiliser echo 'hello world' au lieu d'utiliser echo "hello world". Avec les guillements PHP parcoure toute la chaine afin d'y chercher d'éventuelles variables. Si vous n'en proposez pas ? alors utilisez les quotes.

  17. #17
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Nous avons un tutoriel à ce sujet : http://pbnaigeon.developpez.com/tuto...phe-guillemet/

  18. #18
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Ce tutoriel est parfait pour induire tout le monde en erreur :

    • La lisibilité vaut dans les deux sens. Certes, il est très pertinent que dire que d'afficher de l'html est bien plus aisé avec des guillemets simples du fait de l'usage des guillemets doubles pour les attributs, mais il existe des cas où les guillemets doubles sont plus pratiques, notement pour les requêtes mysql. Ce détail est scrupuleusement omis.
    • L'auteur est-il conscient qu'il parle dans tout un paragraphe d'une optimisation de l'ordre d'une à cinq microsecondes, tout en sachant qu'un script moyen a un temps d'execution de l'ordre de 100 ms ? (0.01 % d'optimisation par chaine)

  19. #19
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Il me semble que tu n'as pas bien lu le tutoriel. En effet, il traite ces deux points que tu mets en valeur : la section IV Conclusion évoque et illustre un cas d'utilisation de chaîne contenant des apostrophes (il s'agit de SQL, justement), donc un cas d'utilisation où les guillemets sont bien plus intéressants pour délimiter la chaîne.

    Concernant ton commentaire sur l'optimisation ridicule, oui, l'auteur en est conscient et l'a précisé dans le tutoriel. Lis attentivement.

    À l'avenir, merci de ne pas poster de remarques cinglantes à 2h43 du matin car cela semble affecter ton jugement.

  20. #20
    Invité(e)
    Invité(e)
    Par défaut
    apprenez aussi à dénormaliser votre base de données pour éviter les jointures multiples dans vos select.

Discussions similaires

  1. [Débutant] Accélérer et optimiser ses scripts PHP
    Par Metallic-84s dans le forum Langage
    Réponses: 6
    Dernier message: 24/03/2006, 12h37
  2. [MySQL] [SGBD] Script PHP/MYSQL d'access FTP
    Par ChRom dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/01/2006, 01h52
  3. Réponses: 9
    Dernier message: 05/01/2006, 12h24
  4. Recherche Login Script PHP & MySQL
    Par whbh dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 01/12/2005, 16h45
  5. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/08/2004, 08h33

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