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 :

Trier et insérer dans une base de données


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Points : 19
    Points
    19
    Par défaut Trier et insérer dans une base de données
    Bonjour,

    J'aimerais avoir de l'aide pour trier des données.
    Je m'explique, j'ai 20 utilisateurs inscrits à une compétitions (Ligue 1 par exemple).

    Ces 20 utilisateurs doivent tous se rencontrer deux fois (Match aller et retour).
    J'aimerais, en PHP, insérer toutes les combinaisons possibles aléatoirement dans une base de données.
    Donc, une question qui viendrait par la suite, comment modéliser cette table ?

    Ce qui me permettra, une fois un utilisateur connecté, de pouvoir voir sur son profil les matchs qu'il lui reste à jouer.
    Et ensuite faire ces matchs et les valider et ensuite générer un classement.

    Auriez-vous des idées ?

    Merci de votre aide.

    Amicalement,
    DexX

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Voici un bout de code en brut que j'ai fais pour générer les combinaisons de 2 occurrences de n éléments.

    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
    $tabl = array('a', 'b', 'c');
     
    	$long_tabl = count($tabl);
     
    	$tabl_result = $tabl;
     
    	for($i=1; $i<2; $i++) {
    		foreach($tabl as $element1) {
    			foreach($tabl_result as $element2) {
    				if (strpbrk($element1, $element2) == false) {
    					$tabl_temp[] = $element1.$element2;
    				}
    			}
    		}
     
    		$tabl_result = $tabl_temp;
    		unset($tabl_temp);
    	}
     
    	print_r($tabl_result[0]);
    	print_r($tabl_result);
    Est-ce correct selon vous ? Comment feriez-vous pour ajouter cela dans une table afin de pouvoir l'afficher pour chacun des utilisateurs et comment modéliseriez-vous la table ?

    Merci

  3. #3
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    $long_tabl n'est pas utilisé dans ton code.
    Tu utilises la même variable, $tabl_result, pour deux choses différentes : parcours des données puis stockage des résultats.
    Tu as deux tableaux totalement identiques, inutile donc d'utiliser strpbrk : une simple comparaison suffit !
    Je ne vois pas trop à quoi te sers ta première boucle : for($i=1; $i<2; $i++) { ?
    Un petit code simple :
    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
     
    <?php
        $competiters = array('a', 'b', 'c');
     
        $matchs = array();
        $tmpCompetiters = $competiters;
     
        foreach ($competiters as $element1) {
            foreach($tmpCompetiters as $element2) {
                if ($element1 !== $element2) {
                   $matchs[$element1][] = $element2;
                   $matchs[$element2][] = $element1;
                }
            }
        }
        var_dump($matchs);
    ?>
    Ou une version un tantinet plus complexe avec une notion d'aléatoire :
    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
     
    <?php
        $competiters = array('a', 'b', 'c');
        $nbElements = count($competiters);
     
        $matchs = array();
        $tmpCompetiters = $competiters;
     
        foreach ($competiters as $element1) {
            foreach($tmpCompetiters as $element2) {
                if ($element1 !== $element2) {
                    do {
                        $key = rand(0, $nbElements);
                    } while (!empty($matchs[$element1][$key]));
                    $matchs[$element1][$key] = $element2;
                    while (!empty($matchs[$element2][$key]))
                    {
                        $key = rand(0, $nbElements);
                    }
                    $matchs[$element2][$key] = $element1;
                }
            }
        }
        foreach ($matchs as $key=>$element) {
            ksort($matchs[$key]);
        }
        var_dump($matchs);
    ?>
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

Discussions similaires

  1. [Excel] Extraire données dans fichier excel et insérer dans une base de données
    Par Bionik6 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/04/2013, 16h39
  2. [1.x] insérer dans une base de données
    Par foufou.mr dans le forum Symfony
    Réponses: 2
    Dernier message: 27/02/2013, 17h32
  3. [Débutant] Insérer dans une base de données SQLserver
    Par mawuedzro dans le forum C#
    Réponses: 1
    Dernier message: 04/09/2012, 14h51
  4. [OpenOffice][Base de données] Récupérer les données d'un fichier .txt et les insérer dans une base de données
    Par frack dans le forum OpenOffice & LibreOffice
    Réponses: 9
    Dernier message: 05/08/2009, 10h52
  5. Récupérer l'id d'un bouton radio et l'insérer dans une base de donnée
    Par narama87 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/04/2009, 13h18

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