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 :

[Tableaux] Mise en relation des membres ?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Points : 63
    Points
    63
    Par défaut [Tableaux] Mise en relation des membres ?
    Bonjour
    J'ai un site avec un forum phpbb http://www.sirpriz.com qui permet de mettre en relation des membres qui veulent d'envoyer de vrais cadeaux à une date donnée chaque mois (tous les 15).
    J'ai déjà 100 membres, mais je n'arrive pas à faire mon script d'envoi de mise en relation des membres.

    Chaque membre doit recevoir par message privé le pseudo du membre à qui il doit envoyer le cadeau ce mois çi.

    Chaque mois, a chaque lancement du script, le membre va recevoir un pseudo différent a chaque fois.

    Par exemple le membre Isa va savoir le 15 janvier par message privée qu'elle doit envoyer son cadeau au membre Magmi. Le 15 février, le membre Isa devra envoyer au membre PapaNoel. Magmi le 15 janvier doit lui envoyer un vrai cadeau au membre Membre2 etc (un membre différent a chaque fois).

    J'ai pensé à un script avec un while, mais je suis perdue apres de multiples essais

    Auriez vous une piste ? Un plan de script ? Un script similaire pour m'aider ?

    Merci beaucoup !
    Isa

  2. #2
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Moi je ferais deux requetes pour remplir deux tableaux comme ça:

    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
     
    $From = new_array();
    $To = new_array();
     
     
    $sql = "SELECT pseudo FROM membres order by RAND()";
    $SQL = mysql_query($sql);
    while ($RowSQL = mysql_fetch_assoc($SQL)) {
    	array_push($From, $RowSQL['pseudo']);
    }
     
    $sql = "SELECT pseudo FROM membres order by RAND()";
    $SQL = mysql_query($sql);
    while ($RowSQL = mysql_fetch_assoc($SQL)) {
    	array_push($To, $RowSQL['pseudo']);
    }
    Ensuite une boucle comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    foreach ($From as $MembreFrom) {
    		foreach ($To as $Key => $Value) {
    			if ($Value!=$MembreFrom) {		//Ne pas demander à un membre de s'envoyer un cadeau à lui même
    				if ($Value) {
    					echo "<br>Le membre $MembreFrom doit envoyer un cadeau à $Value";
    					$To[$Key] = false;		//Marque ce membre comme recevant déjà un cadeau
    					break;
    				}			
    			}
    		}
    }
    Bon le code n'est pas optimisé mais comme c'est un script qui tourne une fois par mois, je ne pense pas que ça pose problème...

  3. #3
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Points : 63
    Points
    63
    Par défaut merci
    Merci beaucoup pour ton aide
    Voici mon code entier, ça n'affiche que "salut" (du premier echo)
    J'ai essayé avec ton code et celui du bas.
    Que dois je changer ?

    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
    <?
     
     
    $db = mysql_connect('localhost', 'test', 'test') or die(mysql_error());  // 1 
    mysql_select_db('sirpriz',$db);                    // 2 
     
    echo "salut";
     
    $From = new_array(); 
    $To = new_array(); 
     
    $sql = "SELECT username FROM phpbb_users order by RAND()"; 
    $sql2 = mysql_query($sql); 
    while ($Rowsql2 = mysql_fetch_array($sql2)) 
    { 
    	echo "$From";
       array_push($From, $Rowsql2[username]); 
    } 
     
    $sql = "SELECT username FROM phpbb_users order by RAND()"; 
    $sql2 = mysql_query($sql); 
    while ($Rowsql2 = mysql_fetch_array($sql2)) 
    { 
       array_push($To, $Rowsql2[username]);
    } 
     
     
    foreach ($From as $MembreFrom) { 
          foreach ($To as $Key => $Value) { 
             if ($Value!=$MembreFrom) {      
    				//Ne pas demander à un membre de s'envoyer un cadeau à lui même 
                if ($Value) { 
                   echo "<br>Le membre $MembreFrom doit envoyer un cadeau à $Value"; 
                   $To[$Key] = false;      
    				//Marque ce membre comme recevant déjà un cadeau 
                   break; 
                }          
             } 
          } 
    } 
     
    ?>
    merci

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    que donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump('<pre>',$From,$To,'</pre>');
    une fois remplis (avant le foreach) ?

  5. #5
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Tu as une erreur au niveau de tes lignes array_push($From, $Rowsql2[username]);

    C'est plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     array_push($From, $Rowsql2['username']);

  6. #6
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Points : 63
    Points
    63
    Par défaut non
    J'ai changé l'erreur (j'ai rajouté les ')

    et j'ai copié ce que tu m'as indiqué avec le for each ca n'affiche rien

  7. #7
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Rajoute un or die au niveau des requetes comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql2 = mysql_query($sql) or die(mysql_error());
    Il y a peut etre une erreur au niveau de la requete.

  8. #8
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Points : 63
    Points
    63
    Par défaut
    C'est tres bizarre ca m'affiche toujours le salut, ça ne change rien

  9. #9
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Désolé, je ne sais pas pourquoi j'ai fait ça et je ne comprend pas pourquoi ca ne te génére pas d'erreur mais au début les lignes de déclaration de tableaux sont fausses:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $From = array();
    $To = array();

  10. #10
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Points : 63
    Points
    63
    Par défaut MERCI
    Merci c'était ça
    Merci beaucoup tu es trés fort !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise en relation des boutons du .xml avec le .java possible ?
    Par KiKoM@So dans le forum Composants graphiques
    Réponses: 4
    Dernier message: 11/07/2011, 18h47
  2. [Tableaux] Code de mise en relation
    Par isa150183 dans le forum Langage
    Réponses: 5
    Dernier message: 23/11/2007, 22h45
  3. [Tableaux] Afficher les données des membres
    Par iBook dans le forum Langage
    Réponses: 3
    Dernier message: 14/06/2007, 19h46
  4. [Tableaux] Listes des membres Php
    Par toulousain3117 dans le forum Langage
    Réponses: 4
    Dernier message: 28/02/2007, 16h50
  5. [ACCESS-EXCEL] Mise en forme des tableaux
    Par mpascolo dans le forum Access
    Réponses: 4
    Dernier message: 20/10/2005, 17h03

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