Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Site Web > PHP > Vos Fonctions ou astuces > Lecture du sujet

Vos Fonctions ou astuces

Vous devez être inscrit pour pouvoir poster des messages

Page : Précédente  1  2  3  4  5  6  7  8  9  ...  97  98  99  100  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  4  5  6  7  8  9  ...  97  98  99  100  Suivante
Hors ligne Quadehar # Posté le 04/04/2006 à 23:17:14
Avatar
Groupe : Membres
Reprise du dernier message de la page précédente :
je ne suis pas d'accord pour le == 'u' pour le 'x', parce que par exemple : des objets perdus.

Libre Pensée - Blog regroupant des histoires et nouvelles rédigées par mes soins.
 
Hors ligne Makkhdyn # Posté le 04/04/2006 à 23:18:49
Beuhhhh
Avatar
Groupe : Membres
Code : PHP
<?php
function pln($n, $nbr, $echo_nbr=false, $forallnames=false){
        $return = '';
        if($echo_nbr) $return .= $nbr.' ';
        if($nbr>1){
                if($forallnames){
                        $names = explode(' ', $n);
                        foreach($names as $key => $name)
                                $names[$key] = pln($name, $nbr);
                        $return .= implode($names, ' ');
                }else{
                        $last = substr($n, -1, 1);
                        $return .= $n;
                        if($last === 'u')
                                $return .= 'x';
                        elseif($last !== 's' && $last !== 'x')
                                $return .= 's';
                }
        }else
                $return .= $n;
        return $retun;
} ?>

Je crois qu'elle tient la route ;)

EDIT: Heu j'avais oublié des trucs :p
Édité le 04/04/2006 à 23:22:33 par Makkhdyn

Ceci n'est pas une signature
 
Hors ligne Anewa29 # Posté le 05/04/2006 à 11:56:37
Zér0 en force !
Avatar
Groupe : Membres
Voila quelques astuces pour requête SQL, la premier va séléctionné les pseudo aléatoirement et la deuxième par ordre alphabétique !

Code : PHP

mysql_query('SELECT *  FROM membre ORDER BY RAND() ');
// et
mysql_query('SELECT * FROM membre ORDER BY pseudo ASC');
 
Hors ligne Eraz0r # Posté le 05/04/2006 à 13:55:13
Ultimate Spider-Fan
Avatar
Groupe : Membres

Faire une miniature simplement



Code : PHP
<?php
function dimensions($image,$nouvelledestination,$longueur,$hauteur)
{
        $source = imagecreatefromjpeg($image); // La photo est la source
        $destination = imagecreatetruecolor($longueur, $hauteur); // On crée la miniature vide

        $largeur_source = imagesx($source);
        $hauteur_source = imagesy($source);
        $largeur_destination = imagesx($destination);
        $hauteur_destination = imagesy($destination);

        imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);

        imagejpeg($destination, $nouvelledestination);
}
?>

J'ai pas vraiment vérifié si quelqu'un l'avait déjà donnée.

Exemple :
Code : PHP
dimensions($_POST['image'],"" . $_POST['dossier'] . "/" . $_POST['destination'] . ".jpg",$_POST['longueur'],$_POST['hauteur']);
 
Hors ligne madyn # Posté le 05/04/2006 à 14:38:37
Avatar
Groupe : Membres
Avec cette demande j'ai mis ma fonction à jour :

Liste de ses fonctions :
  • Elle gère l'affichage du nombre
  • Elle gère plusieurs mots
  • Met un espace après le mot si ce n'est pas le dernier mot
  • Gère l'affichage du 's' ou du 'x'
  • Si $plnames est égal a false la fonction ne mettra au pluriel que le dernier mot
  • Gère les exceptions
  • Remet le mot au singulier si il était mit au pluriel


Ah, j'allais oublié, voici la fonction :

Code : PHP
function pln($n, $nbr, $exce=false, $echo_nbr=false, $plnames=false){
 if($nbr>1){
  if(!$plnames){
   if($exce!=false){
    if(!$echo_nbr) return($exce); else return($nbr.' '.$exce);
        }elseif(substr($n, -1, 1) == 's' OR substr($n, -1, 1) == 'x'){
        if(!$echo_nbr) return($n); else return($nbr.' '.$n);
        }elseif(substr($n, -1, 1) == 'u'){
    if(!$echo_nbr) return($n.'x'); else return($nbr.' '.$n.'x');
    }else{
    if(!$echo_nbr) return($n.'s'); else return($nbr.' '.$n.'s');
    }
   }else{
   $array_nms=explode(' ', $n);
   $return='';
   $tr=0;
   $nbr=count($array_nms);
   foreach($array_nms as $nom){
    ++$tr;
        if($exce!=false){
         $tbl_exce=explode(' ', $exce);
         $return.=$tbl_exce[($tr-1)];
         }elseif(substr($nom, -1, 1) == 's' OR substr($nom, -1, 1) == 'x'){
         $return.=$nom;
         }elseif(substr($nom, -1, 1) == 'u'){
     $return.=$nom.'x';
     }else{
     $return.=$nom.'s';
     }
        if($tr!=$nbr) $return.=' ';
        }
   if(!$echo_nbr) return($return); else return($nbr.' '.$return);
   }
  }else{
  if(!$plnames){
   if(!$echo_nbr) return($n); else return($nbr.' '.$n);
   }else{
   $array_nms=explode(' ', $n);
   $return='';
   $tr=0;
   $nbr=count($array_nms);
   foreach($array_nms as $nom){
    ++$tr;
        if($exce!=false){
         $tbl_exce=explode(' ', $exce);
         $return.=$tbl_exce[($tr-1)];
         }else{
         if(substr($nom, -1, 1)=='s') $return.=rtrim($nom, 's');
         if(substr($nom, -1, 1)=='x') $return.=rtrim($nom, 'x');
         }
        if($tr!=$nbr) $return.=' ';
        }
   if(!$echo_nbr) return($return); else return($nbr.' '.$return);
   }
  }
 } // Fonction de pluriel des noms : pln($nom, $nombre, $exce[false], $echo_nbr[false], $forallnames[false]);


Alors là si quelqu'un trouve une critique... :colere:

Je rigole :p

@bientôt ;)

m A d y n - :)

Secret (cliquez pour afficher)
999999999999999999999999999999999999999999999999999999999 : neuf cent quatre-vingt-dix-neuf decillions neuf cent quatre-vingt-dix-neuf nonilliards neuf cent quatre-vingt-dix-neuf nonillions neuf cent quatre-vingt-dix-neuf octilliards neuf cent quatre-vingt-dix-neuf octillions neuf cent quatre-vingt-dix-neuf sextiliards neuf cent quatre-vingt-dix-neuf sextillions neuf cent quatre-vingt-dix-neuf quintilliards neuf cent quatre-vingt-dix-neuf quintillions neuf cent quatre-vingt-dix-neuf quadrillards neuf cent quatre-vingt-dix-neuf quadrillons neuf cent quatre-vingt-dix-neuf trilliards neuf cent quatre-vingt-dix-neuf trillions neuf cent quatre-vingt-dix-neuf billiards neuf cent quatre-vingt-dix-neuf billions neuf cent quatre-vingt-dix-neuf milliards neuf cent quatre-vingt-dix-neuf millions neuf cent quatre-vingt-dix-neuf mille neuf cent quatre-vingt-dix-neuf
 
Hors ligne nax # Posté le 05/04/2006 à 15:32:23
Avatar
Groupe : Membres
Citation : skateur80

Faire une miniature simplement



Code : PHP
<?php
function dimensions($image,$nouvelledestination,$longueur,$hauteur)
{
        $source = imagecreatefromjpeg($image); // La photo est la source
        $destination = imagecreatetruecolor($longueur, $hauteur); // On crée la miniature vide

        $largeur_source = imagesx($source);
        $hauteur_source = imagesy($source);
        $largeur_destination = imagesx($destination);
        $hauteur_destination = imagesy($destination);

        imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);

        imagejpeg($destination, $nouvelledestination);
}
?>

J'ai pas vraiment vérifié si quelqu'un l'avait déjà donnée.

Exemple :
Code : PHP
dimensions($_POST['image'],"" . $_POST['dossier'] . "/" . $_POST['destination'] . ".jpg",$_POST['longueur'],$_POST['hauteur']);


Oui, mais on ne poste pas forcement un jpg,
Code : PHP

<?php
function resize($from, $dossier, $nom)
{
        $ext = $from;
        $ext = substr($ext,strrpos($ext,".")+1);
        $ext = strtolower($ext);
        if($ext == 'jpg' or $ext == 'jpeg')
                $source = imagecreatefromjpeg($from); // On crée par une jpg
        elseif($ext == 'png')
                $source = imagecreatefrompng($from); // un png
        elseif($ext == 'gif')
                $source = imagecreatefromgif($from); // un gif
       
        // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
        $largeur_source = imagesx($source);
        $hauteur_source = imagesy($source);
        $largeur_destination = 100;
        $hauteur_destination = 100 * $hauteur_source;
        $hauteur_destination = $hauteur_destination / $largeur_source;
        $hauteur_destination = round($hauteur_destination);
        $destination = imagecreatetruecolor($largeur_destination, $hauteur_destination); // On crée la miniature vide
       
        // On crée la miniature
        imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
       
        // On enregistre la miniature
        if(strrchr($nom,".") == ".jpg" OR strrchr($nom,".") == ".jpeg")
                imagejpeg($destination, $dossier . $nom);
        if(strrchr($nom,".") == ".png")
                imagepng($destination, $dossier . $nom);
        if(strrchr($nom,".") == ".gif")
                imagegif($destination, $dossier . $nom);
}
?>
 
Hors ligne Makkhdyn # Posté le 05/04/2006 à 18:19:51
Beuhhhh
Avatar
Groupe : Membres
Madyn a tu lu mon code ?

Ceci n'est pas une signature
 
Hors ligne madyn # Posté le 05/04/2006 à 18:27:05
Avatar
Groupe : Membres
Citation : Makkhdyn
Madyn a tu lu mon code ?


Nan :p

m A d y n - :)

Secret (cliquez pour afficher)
999999999999999999999999999999999999999999999999999999999 : neuf cent quatre-vingt-dix-neuf decillions neuf cent quatre-vingt-dix-neuf nonilliards neuf cent quatre-vingt-dix-neuf nonillions neuf cent quatre-vingt-dix-neuf octilliards neuf cent quatre-vingt-dix-neuf octillions neuf cent quatre-vingt-dix-neuf sextiliards neuf cent quatre-vingt-dix-neuf sextillions neuf cent quatre-vingt-dix-neuf quintilliards neuf cent quatre-vingt-dix-neuf quintillions neuf cent quatre-vingt-dix-neuf quadrillards neuf cent quatre-vingt-dix-neuf quadrillons neuf cent quatre-vingt-dix-neuf trilliards neuf cent quatre-vingt-dix-neuf trillions neuf cent quatre-vingt-dix-neuf billiards neuf cent quatre-vingt-dix-neuf billions neuf cent quatre-vingt-dix-neuf milliards neuf cent quatre-vingt-dix-neuf millions neuf cent quatre-vingt-dix-neuf mille neuf cent quatre-vingt-dix-neuf
 
Hors ligne SquallX # Posté le 05/04/2006 à 20:38:14
Créateur de projets
Avatar
Groupe : Membres
Fonction de redirection plus poussée :

Code : PHP
#
#       Fonction permettant de rediriger vers une autre page
#
        #       $url : url où rediriger
        #       $methode : méthode à utiliser
        #       $mode : type d'url par rapport au script
        #       $temps de redirection
       
function redirection($url, $methode = 'JS', $mode = 'IN', $temps = 0)
{
        global $racine;

        #        On définit l'url finale
        if( $mode == 'IN' )
        {
                $url_finale = $racine . $url;
        }
        else if( $methode == 'OUT' )
        {
                $url_finale = $url;
        }
        else
        {
                $url_finale = $url;
        }       

        #       On définit la méthode utilisée
        if( $methode == 'META' )
        {
                echo '<meta http-equiv="refresh" content="' . $temps . '; url=' . $url_finale . '" />';
        }       
        else if( $methode == 'JS' )
        {
                echo '<script language="javascript" type="text/javascript">' . "\n" . '<!--' . "\n" . 'window.location.replace("' . $url_finale . '");' . "\n" . '-->' . "\n" . '</script>';
        }
        else if( $methode == 'HEADER' )
        {
                @header('Location : ' . $url_finale);
        }       
        else
        {
                @header('Location : ' . $url_finale);
        }
}     


 
Hors ligne doctorrock # Posté le 05/04/2006 à 23:09:32
Avatar
Groupe : Membres
on peut s'amuser avec la librairie GD (entre autre) aussi ^^ :
http://divers.splintercellmaps.com/dppt.php
Hors ligne pofexpray # Posté le 06/04/2006 à 11:50:24
Punk Oï F
Avatar
Groupe : Membres
Fonction pour afficher une banniere aléatoire (ou tout autre élément aléatoire):
Code : PHP
/*Prérequis une BDD
                Requète SQL: CREATE TABLE banniere (
                ID int(11) NOT NULL AUTO_INCREMENT,
                ban_nom varchar(10) NOT NULL DEFAULT '',
                ban_lien varchar(50) NOT NULL DEFAULT '',
                PRIMARY KEY  (ID)
                ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
        */

        /* Début de la fonction, celle-ci effectue un random sur l'id choisi, et filtre en fonction de celui-ci, on affiche le résultat */
        /*A Placé dans le header: */
               
                $connexion = mysql_connect('localhost', 'root', ''); //Connexion a la base
                mysql_select_db('essai', $connexion)//Selection de la base

                $banniere = mysql_query("SELECT * FROM banniere")//Selection des enregistrements présents
                $nb_banniere = mysql_num_rows($banniere); //Recuperation du nombre d'enregistrement
                $rand_id_banniere = rand(1,($nb_banniere));   //Random sur le numéro d'id de l'enregistrement le 1 c'est l'id de mon premier élément de table (si tu commence a zéro alors tu mettra rand(0,($nb_banniere-1)

                $aff_banniere = mysql_query("SELECT * FROM banniere WHERE ID = $rand_id_banniere"); //Filtre avec l'id de l'enregistrement
               
        /*Affichage des résultat dans le body:*/
                while ($ban = mysql_fetch_assoc($aff_banniere)) {
                        echo "<a href=\"". $ban['ban_lien'] . "\"><img src=\"" . $ban['ban_nom'] . "\" alt=\"photo\" /></a>";
                }
               
        /*Fin de la fonction */

Mieux ne vaut rien dire et passer pour un con, que de l'ouvrir et ne laisser aucun doute à ce sujet
Image utilisateur
Plein de news, d'actualités, des tutorials orientés Lans
 
Hors ligne lastsseldon # Posté le 06/04/2006 à 13:04:33
Avatar
Groupe : Membres
pofexpray > c'est sensé etre optimisé ? :P


[gnustep,etoile,Io ,haskell, erlang ]
 
Hors ligne thelittlegui # Posté le 06/04/2006 à 13:12:47
Yupe.
Avatar
Groupe : Membres
pofexpary < au risque de donner raison à ta signature, je pense qu'on peut bien optimiser tout ça ;)

Code : PHP
/* Prérequis : une table (ici "banniere") dans une BDD
Requête SQL (à adapter) :
CREATE TABLE banniere (
  id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  ban_nom VARCHAR(10) NOT NULL DEFAULT '',
  ban_lien VARCHAR(50) NOT NULL DEFAULT '',
  PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
*/


/* Début du script, il effectue un random sur le nombre d'entrées, prend une entrée à partir de ce nombre, et affiche le résultat */
       
        $connexion = mysql_connect('localhost', 'root', '') or exit('Erreur de connexion : ' . mysql_error()); // connexion à MySQL
        mysql_select_db('essai', $connexion) or exit('Erreur de sélection de BDD : ' . mysql_error()); // sélection de la base

        $query_banniere = mysql_query('SELECT COUNT(*) FROM banniere;', $connexion) or exit(mysql_error()); // selection du nombre d'enregistrements présents
        $nb_bannieres = mysql_result($query_banniere, 0); // récupération du nombre d'enregistrements
        $rand_banniere = mt_rand(0, $nb_bannieres-1); // on se servira de ce nombre aléatoire pour un LIMIT (et mt_rand() 4 fois + rapide que rand())

        $aff_banniere = mysql_query('SELECT ban_nom, ban_lien FROM banniere LIMIT ' . $rand_banniere . ', 1;', $connexion) or exit(mysql_error()); // sélectionne une entrée au hasard
        // Affichage du résultat :
        $ban = mysql_fetch_assoc($aff_banniere);
        echo '<a href="' . $ban['ban_lien'] . '"><img src="' . $ban['ban_nom'] . '" alt="photo" /></a>';
       
        mysql_close($connexion);
       
        /* Fin du script */

L'avantage d'utiliser un LIMIT X,1 plutôt que de sélectionner selon un ID se fait sentir si une ou plusieurs entrées ont été supprimées, et qu'il y a donc des "trous" dans la suite des ID :)


Sinon, pour généraliser et simplifier au maximum (le code ci-dessus a l'air gros à cause des commentaires) :
Code : PHP
/* Prendre une entrée au hasard dans une table */

// nécessite une connexion MySQL

$req_count = mysql_query('SELECT COUNT(*) FROM la_table');
$nbre_entrees = mysql_result($req_count, 0);
$rand = mt_rand(0, $nbre_entrees-1);

$req_result = mysql_query('SELECT champ1, champ2... FROM la_table LIMIT '.$rand.', 1');
// ensuite on peut faire un mysql_fetch_***() sur $req_result...

(j'ai vraiment simplifié là, par exemple je n'ai pas mis les or exit(mysql_error())...)


PS : ça peut aussi se faire en une seule requête : Code : PHP
$req_result = mysql_query('SELECT champ1, champ2... FROM la_table ORDER BY RAND() LIMIT 0, 1');
// ensuite on peut faire un mysql_fetch_***() sur $req_result...
mais c'est + lent, surtout pour les grosses tables...


Edit : lastsseldon < pas la peine de poster si c'est juste pour le titiller :\
Édité le 06/04/2006 à 13:16:45 par thelittlegui
Hors ligne pofexpray # Posté le 06/04/2006 à 14:54:41
Punk Oï F
Avatar
Groupe : Membres
Je n'ai pas dit qu'il était optimiser ou que c'était le meilleur, le plus rapide. Je propose juste un script qui marche, et facilement compréhensible, pour ceux qui cherche.

La c'est pour une liste de bannières donc les trous dans la table n'ont pas lieux d'être, mais bon optimisation bienvenue.

(En ma parlant de ma signature c'est limite si je me suis pas senti insulter ;) ;) )

Merci pour l'optimisation et c'est vrai que poster juste pour critiquer ca apporte rien.
Édité le 06/04/2006 à 14:58:52 par pofexpray

Mieux ne vaut rien dire et passer pour un con, que de l'ouvrir et ne laisser aucun doute à ce sujet
Image utilisateur
Plein de news, d'actualités, des tutorials orientés Lans
 
Hors ligne thelittlegui # Posté le 06/04/2006 à 15:04:51
Yupe.
Avatar
Groupe : Membres
Euh... faut pas te sentir insulté ._.
Si j'ai parlé de ta signature c'est juste parce que j'ai hésité à poster mais que je l'ai quand même fait ^^' (mais j'espère avoir malgré cela laissé un doute au sujet de ma connerie :p )
Enfin bref ce n'était pas contre toi, mais plutôt contre moi (sado-maso, moi ? ^^')
Édité le 06/04/2006 à 15:08:02 par thelittlegui
Hors ligne pofexpray # Posté le 06/04/2006 à 15:32:27
Punk Oï F
Avatar
Groupe : Membres
lol t'inquiete c'etais pour faire mon martyre (deux post a la suite me reprenant sur l'optimisation de mon code j'suis vexer :p )

Vas-y flagèle toi thelittlegui ca fait toujours du bien, qd au doute sur ta connerie il reste présent n'est pas peur lol ;)

Mieux ne vaut rien dire et passer pour un con, que de l'ouvrir et ne laisser aucun doute à ce sujet
Image utilisateur
Plein de news, d'actualités, des tutorials orientés Lans
 
Hors ligne Makkhdyn # Posté le 06/04/2006 à 18:31:21
Beuhhhh
Avatar
Groupe : Membres
SquallX,
Code : PHP
function redirection($url, $methode = 'js', $inner = true, $temps = 0){
    if($inner)
        $url = $racine.$url;
    if( $methode === 'meta' )
        echo '<meta http-equiv="refresh" content="', $temps, '; url=', $url, '" />';
    elseif($methode === 'js')
        echo '<script language="javascript" type="text/javascript">', "\n",
            '<!--', "\n",
            'window.location.replace("', $url, '");', "\n",
            '-->', "\n",
            '</script>';
    else
        @header('Location : '.$url);
}
Édité le 06/04/2006 à 18:32:07 par Makkhdyn

Ceci n'est pas une signature
 
Hors ligne Dutiona # Posté le 06/04/2006 à 20:06:52
Vis pour être heureux !
Avatar
Groupe : Membres
Mais o_O
un simple order by rand :lol:
Code : PHP
/*Prérequis une BDD
                Requète SQL: CREATE TABLE banniere (
                ID int(11) NOT NULL AUTO_INCREMENT,
                ban_nom varchar(10) NOT NULL DEFAULT '',
                ban_lien varchar(50) NOT NULL DEFAULT '',
                PRIMARY KEY  (ID)
                ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
        */

               
                $connexion = mysql_connect('localhost', 'root', '');
                mysql_select_db('essai', $connexion);

                $sql = mysql_query("SELECT ban_lien, ban_lien FROM `banniere` ORDER BY RAND() LIMIT 1");
                $req = mysql_fetch_assoc($sql);

                echo '<a href="'. $req['ban_lien'] .'"><img src="'.$req['ban_nom'].'" alt="photo" /></a>';

AH lala, heuresement que le sdz n'est pas codé comme ça.
N'est ce pas winzou :p



Bisous, Nyu
Édité le 06/04/2006 à 20:08:35 par Dutiona

Défiez ma brute !
Eclipse user | Ubuntu (KDE) user | php/sql/xhtml/css/xml/xsl/javascript/java/python/perl/c/scheme coder.
Framework in use: Seraframework (my own one).
In Microeisti staff.
 
Hors ligne Jukien # Posté le 06/04/2006 à 20:23:36
Avatar
Groupe : Membres
Citation : Dutiona
Mais o_O
un simple order by rand :lol:
[...]


ORDER BY RAND() est plus lent, surtout pour les grosses tables.
 
Hors ligne SquallX # Posté le 06/04/2006 à 20:59:31
Créateur de projets
Avatar
Groupe : Membres
Citation : Makkhdyn
SquallX,
Code : PHP
function redirection($url, $methode = 'js', $inner = true, $temps = 0){
    if($inner)
        $url = $racine.$url;
    if( $methode === 'meta' )
        echo '<meta http-equiv="refresh" content="', $temps, '; url=', $url, '" />';
    elseif($methode === 'js')
        echo '<script language="javascript" type="text/javascript">', "\n",
            '<!--', "\n",
            'window.location.replace("', $url, '");', "\n",
            '-->', "\n",
            '</script>';
    else
        @header('Location : '.$url);
}


C'est sensiblement la même chose ;)

J'avais pensé à un code pour optimiser encore mieux que ça et faire plus simple tout en restant performant (j'ai réfléchi à ça durant un cours de math), mais avec toutes ces péripéthies j'ai oublié, sinon il n'y a pas grand chose qui change avec ton code mise à part deux lignes en moins et le retrait des accolades ^^


 
Hors ligne Makkhdyn # Posté le 06/04/2006 à 21:08:05
Beuhhhh
Avatar
Groupe : Membres
Citation : SquallX
C'est sensiblement la même chose ;)


C'est exactement la même chose, en plus court, plus rapide et sans tests inutiles. ;)

EDIT: En fait beaucoup de choses changent, par exemple les trucs qui servent a rien du genre
Code : PHP
if( $methode == 'OUT' )
        {
                $url_finale = $url;
        }
        else
        {
                $url_finale = $url;
        }

L'url finale n'est redéfinie que si on a la methode in activée (et on passe par un bool pour aller plus vite) les == sont remplacés par des ===

Le fond est le même mais la forme change pour être plus adaptée ;)

Ceci n'est pas une signature
 
Hors ligne Dutiona # Posté le 06/04/2006 à 21:30:41
Vis pour être heureux !
Avatar
Groupe : Membres
Citation : Jukien
Citation : Dutiona
Mais o_O
un simple order by rand :p
[...]



ORDER BY RAND() est plus lent, surtout pour les grosses tables.

Bien sûr que non !
Je ne fais qu'une requête et toi 2 donc ta méthode est beaucoup plus lente.
enlever le by rand() ou pas ça n'agit qu'à très faible valeur tandis que 2 requête, ça ça fais mal :o



Bisous, Nyu
Édité le 06/04/2006 à 21:42:28 par Dutiona

Défiez ma brute !
Eclipse user | Ubuntu (KDE) user | php/sql/xhtml/css/xml/xsl/javascript/java/python/perl/c/scheme coder.
Framework in use: Seraframework (my own one).
In Microeisti staff.
 
Hors ligne guiz # Posté le 06/04/2006 à 21:37:13
Avatar
Groupe : Membres
Citation : Dutiona

Bien sûr que non !
Je ne fais qu'une reqûete et toi 2 donc ta méthode est beaucoup plus lente.


Je sais plus ou j'ai lu ca, mais je sais qu'on m'avait dit un jour (je crois que c'est winzou qui avait dit ca mais pas sur) :
C'est dur de faire admettre qu'il est preferable de faire 2 requetes rapides qu'une lente... ;)
Apres, je sais pas qui de vous deux a raison...
Édité le 06/04/2006 à 21:39:29 par guiz
 
Hors ligne Jukien # Posté le 06/04/2006 à 22:09:48
Avatar
Groupe : Membres
Citation : Dutiona
Citation : Jukien
Citation : Dutiona
Mais o_O
un simple order by rand :p
[...]



ORDER BY RAND() est plus lent, surtout pour les grosses tables.

Bien sûr que non !
Je ne fais qu'une requête et toi 2 donc ta méthode est beaucoup plus lente.
enlever le by rand() ou pas ça n'agit qu'à très faible valeur tandis que 2 requête, ça ça fais mal :o



Bisous, Nyu


Je t'encourage à faire des tests sur une grosse table pour t'en rendre compte par toi même.
Tu verras que plusieurs petites requetes sont parfois (souvent ?) plus rapides que une grosse ;)
 
Hors ligne 6(sic)6 # Posté le 06/04/2006 à 22:19:16
Mon macaréneur
Avatar
Groupe : Membres
RAND() sélectionne toute la table, ce qui prend du temps sur une grosse table, c'est pour ça qu'il vaut mieux d'abord compter le nombre d'entrées de la table et ensuite n'en sélectionner qu'une ;)
 
Hors ligne winzou # Posté le 07/04/2006 à 21:59:41
lala
Avatar
Groupe : Membres
yop, là j'arrive et je place mon lien
http://www.siteduzero.com/forum-83-30149-224285.html#r224285

ahah, ce que je suis content :D

cImage utilisateurc
 
Hors ligne guiz # Posté le 07/04/2006 à 23:09:35
Avatar
Groupe : Membres
Hors ligne blastjm # Posté le 08/04/2006 à 10:05:22
Avatar
Groupe : Membres
Fonction pour faire une liste deroulante et de choisir une resolution pour miniaturiser une image :
Code : PHP


function recupereResolution($image,$diviseur)
{


$source = imagecreatefromjpeg($image); // La photo est la source
// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$resolution = $hauteur_source.'*'.$largeur_source;

if ($diviseur == 'default')
        {
        $diviseur = 20/9;
        }
       
$resolution = explode('*',$resolution);
$hauteur = array_shift($resolution);// Premiere valeur
$largeur = array_pop($resolution);//derniere valeur
$rapport = $hauteur/$largeur;
echo '<form action="" method="post"><p><label>Ton choix de resolution??(diviseur par default)<br /><select name="resolution">';
for ($i=0;$i<=6;$i++)
        {
        $tableau = array($diviseur,'0.5','1.5','2','2.5','3','4');
        $hauteurFinale[$i] = ceil(($largeur/$tableau[$i])*$rapport);
        $largeurFinale[$i] = ceil(($largeur/$tableau[$i]));
        $fin[$i] = $largeurFinale[$i].'*'.$hauteurFinale[$i];
        echo '<option value="',$fin[$i],'">',$fin[$i],'</option>';
        }
       
       
        echo '</select></label>';
       
        echo '<input type="submit" /></p></form>';
}



En esperant que sa n'aura pas été posté auparavant. La flême de lire 6 pages :p
Édité le 08/04/2006 à 10:05:55 par blastjm
Hors ligne Makkhdyn # Posté le 08/04/2006 à 11:11:08
Beuhhhh
Avatar
Groupe : Membres
Je ne comprend absolument pas le but de ta fonction....

Ceci n'est pas une signature
 
Hors ligne blastjm # Posté le 08/04/2006 à 11:29:58
Avatar
Groupe : Membres
Salut
En fait ma fonction sert à choisir entre differentes résolutions pour retailler une image uploadée.

C'est pour mon script de news.
Édité le 08/04/2006 à 11:30:25 par blastjm
Hors ligne Dutiona # Posté le 08/04/2006 à 12:29:43
Vis pour être heureux !
Avatar
Groupe : Membres
Oh, je ne savais pas...
dans la logique des chose mysql devrais traiter le limit et effectuer le tri suivant ce que demande le limit...
Enfin bon, merci de la précision :)



Bisous, Nyu

Défiez ma brute !
Eclipse user | Ubuntu (KDE) user | php/sql/xhtml/css/xml/xsl/javascript/java/python/perl/c/scheme coder.
Framework in use: Seraframework (my own one).
In Microeisti staff.
 

Retour au forum "PHP" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages