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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Affichage aléatoire avec coéfficients [Tutoriel]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 21
    Points : 19
    Points
    19
    Par défaut Affichage aléatoire avec coéfficients
    Bonjour à tous,

    Débutant depuis quelques temps en PHP (et oui, il faut bien ), je me permet de vous questionner sur un problème qui me bloque depuis quelques temps.

    J'ai un script de gestion de bannières tout simple, ça permet de les faire tourner automatiquement au hasard.
    J'aimerai cependant y intégrer un système de pourcentages.

    Donc quand j'ajoute une bannière dans ma base de données MYSQL, je rajoute un champ "pourcentage", dans lequel je mettrai par exemple 60 pour la bannière A et 40 pour la bannière B.

    La fonction permettant d'afficher actuellement les bannières est la suivante :

    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
    function choisipub($emplacement) {
     
    	$resultat = "";
     
        $query = "SELECT * FROM pubsed_codes WHERE id_emplacement=$emplacement";
        $result = mysql_query($query) or die("Erreur d'affichage.");
    	// on mémorise le nombre de pubs
    	$nb_pubs = mysql_num_rows($result);
     
    	if ($nb_pubs != 0) {
     
    		// on prend une valeur au hasard
    		if ($nb_pubs==1) {
    		  $hasard = 1;
    		} else {
    		  srand((double)microtime()*1000000);
    		  $hasard = rand(1, $nb_pubs);
    		}
    		$passage = 0;
    		while ($tabresult = mysql_fetch_array($result)) {
    			$passage++;
    		  	if ($passage==$hasard) {
    				$resultat = $tabresult['codes'];
    			}
    		}
    	}
     
    	return $resultat;
     
    }
    Comment faire pour jouer avec ses pourcentages ($pourcentage) ?

    Merci de votre aide

  2. #2
    Membre du Club Avatar de tutomania
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 68
    Points : 56
    Points
    56
    Par défaut
    Je vais te répondre avec mes maigres connaissances en php ^^

    Ajoutes un champs dans ta table pour compter le nombre d'affichage de la banière (un simple update).
    Ensuite tu as juste à faire une régle de trois.

    Imagine sur 3 banières :

    La première est vu 5 fois
    La deuxième est vu 14 fois
    La troisème est vu 24 fois

    Tu additionnes les 3 résultats : 5 + 14 + 24 = 43

    Donc 43 = 100 %

    La tu fais une règle de trois pour chacune de tes banières :

    Pour la premiere banière : $pourcentage = 100*5/43;
    Pour la deuxième banière : $pourcentage = 100*14/43;
    Pour la troisème banière : $pourcentage = 100*24/43;

    C'est peut etre pas le meilleur code de la terre mais ça fonctionne ^^
    Je laisse les pros répondre ^^

    Bonne soirée

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Merci de ta réponse.

    Mais en fait, je ne veux pas que ça caclule en fonction du nombre d'affichage
    C'est beaucoup + simple que ça : je détermine auparavant les pourcentages pour telles ou telles bannières à afficher.

    Par exemple :
    - bannière yahoo.fr = sur 100 bannières, afficher 60 bannières yahoo.fr
    - bannière msn = sur 100 bannières, afficher 40 bannières msn
    Sachant donc que 40 et 60 sont déterminés avant dans la base MYSQL.

  4. #4
    Membre du Club Avatar de tutomania
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 68
    Points : 56
    Points
    56
    Par défaut
    Ah oui désolé, effectivement j'ai tout compris de travers ^^ autant pour moi
    Et bien la je ne sais pas ^^

  5. #5
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $ban = rand(1,100);
    // dans mysql yahoo = 60
    if&#40;$ban < 60&#41; $banniere = "yahoo_banniere";
    else $banniere = "msn_banniere";
    ce n'est pas exactement ce que tu veux faire, mais tu as déja plus de chance d'afficher yahoo que msn dans ce cas.

Discussions similaires

  1. [MySQL] Affichage aléatoire avec pagination
    Par pasc06 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 24/06/2011, 14h35
  2. Affichage en aléatoire avec shuffle
    Par yule dans le forum Langage
    Réponses: 6
    Dernier message: 26/03/2010, 23h31
  3. Affichage aléatoire de cellule avec un fond
    Par kalazo dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 24/07/2009, 15h20
  4. [MySQL] sélection des dernières lignes avec affichage aléatoire
    Par nabmoah dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/08/2008, 00h57
  5. Réponses: 1
    Dernier message: 18/10/2007, 01h18

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