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 :

Récuperer valeur dans un While avec 2 tableaux


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2020
    Messages : 4
    Par défaut Récuperer valeur dans un While avec 2 tableaux
    Bonjour à tous,

    Je suis en train développer un logiciel pour la gestion de tournoi à titre personnel.
    Afin de faire gagner du temps aux personnes que le gèrent.

    J’ai réussi à générer les poules / gestion des doublons et edition pdf via fpdf.
    Exemple ci-dessous
    Nom : pdf.png
Affichages : 490
Taille : 51,8 Ko

    Le problème c’est que je voudrai développer la partie saisie des résultats.
    J’ai déjà réussi à gérer la saisi de chacun des cellules pour une seule poule. Si valeur est null ou 0 ou -0, 2 points d'écarts etc etc
    Nom : pdf2.png
Affichages : 529
Taille : 47,1 Ko

    Mon problème c'est que si j'ai 19 poules par exemple comment récupérer les valeurs dans les cases. Par défaut si je fais ma requête la valeur sera récupéré sera la dernière de ma boucle.

    ça fait 3 jours que je cherche et je ne trouve pas la solution et je demande votre l'aide.

    Nom : pdf4.png
Affichages : 485
Taille : 110,2 Ko

    j'ai ma variable $_POST['SET1maj2'] qui me récupère bien l'ensemble de mes scores saisi.
    Exemple: [0]=> string(2) "10" [1]=> string(2) "08".

    $_POST['id'] qui me récupère bien l'ensemble de mes clés.
    Exemple: [0]=> string(22) "0114048-1700-2-6943827" [1]=> string(21) "6932502-1700-3-735566" et j'ai ma valeur

    Je voudrai récupérer la [0] 10 avec 0114048-1700-2-6943827

    Pour arriver à ce résultat là : update resultat1799 set set1='10' where id = '0114048-1700-2-6943827;.

    j'ai tellement essayé de chose que je sais plus quoi faire et je fais du piff.

    Voici mon foreach dans mon While

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      foreach ($_POST['id'] as $key => $value) 
    		 {
    		    $sql = 'update resultat1799 set set1 ='.mysqli_real_escape_string($cnx, $_POST['SET1maj2'][$key]).' where id='.mysqli_real_escape_string($cnx, $value);
     
            mysqli_query($cnx, $sql);
    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
    if (!empty($_POST['miseajour2'])) {
     
    			echo $_POST['SET1maj2'];  // j'affiche les données récupérées à titre d'information pour vérifier les valeurs
                            echo $_POST['id'];
    		  foreach ($_POST['id'] as $key => $value) 
    		 {
    		    $sql = 'update resultat1799 set set1 ='.mysqli_real_escape_string($cnx, $_POST['SET1maj2'][$key]).' where id='.mysqli_real_escape_string($cnx, $value);
                       mysqli_query($cnx, $sql);
    		 }
     
    // ici il y a mon de code qui gère les calculs des cases . Pour attribuer la victoire ou non du set.
     
      echo <<<html
    <TD><input size ='12%' type="text" value='$row[0]'name="SET1maj2[]"/></TD>  
    <TD><input size ='12%' type="text" value='05' name="SET2maj2"/></TD>    //  Value j'ai mis en dure des valeurs pour faire des tests
    <TD><input size ='12%' type="text" value='-04' name="SET3maj2"/></TD>
    <TD><input size ='12%' type="text" value='-03' name="SET4maj2"/></TD>
    <TD><input size ='12%' type="text" value='02' name="SET5maj2"/></TD>
     
    html;
     
      echo '<input type="hidden" value="',$row['14'],'" name="id[]"/>';	
     echo <<<html
    <td><center><input size ='15%' type="submit" class="boutonvert" value="Mise a Jour2" name="miseajour2" /></center></td>
     
    html;
     
    }
    Merci de vos retour et j'espère que j'étais claire.

  2. #2
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Salut,
    Quelque chose n'est pas clair dans ce que tu expliques
    Mon problème c'est que si j'ai 19 poules par exemple comment récupérer les valeurs dans les cases.
    1) Ton formulaire est rempli, tu veux enregistrer les valeurs saisies dans la base ?
    2) Tu veux remplir le formulaire avec les données de la base ?

    Par défaut si je fais ma requête la valeur sera récupéré sera la dernière de ma boucle.
    Pas forcément. Le moteur DB ne renvoie que ce que tu lui demandes :-)

    Montre-nous la structure de ta/tes table(s)

  3. #3
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    salut,

    si tu veux gérer la saisie du score pour plusieurs poules et sets simultanément ; utilise un tableau multidimensionnel avec comme premier index l'id de la poule et pour second l'id du set: quelque chose dans ce style name="score[$id_poule][$id_set]". Ce qui se traduira par exemple dans le tableau récupéré $_POST['score'][25][10] = "02"ensuite pour le traitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach ($_POST['score'] as $id_poule => $data) {
        foreach ($data as $id_set => $score) {
            // ...
        }
    }

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2020
    Messages : 4
    Par défaut
    Merci pour les 2 retours,

    c'est exactement, je veux gérer la saisi du score pour plusieurs poules et sets simultanément.

    Exemple
    Les poules sont constituées de 3 joueurs.
    Dans mon cas j'ai 8 joueurs une poule de 2 et 2 poules de 3

    Voici ma table
    Nom : poulesresultat.png
Affichages : 455
Taille : 49,4 Ko


    Je comprend idée mais je ne vois pas comment tu peux récupérer $id_poule et $id_set
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    name="score[$id_poule][$id_set]".
    ça me rappel les cours de BTS tableau multidimensionnel ou j'avais toujours 0.

    Si j'ai bien compris

    ma variable s'appelle name="miseajour2"

    en gros mon code va ressembler à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      if (!empty($_POST['miseajour2']))
     
         foreach ($_POST['score'] as $id_poule => $data) {
        foreach ($data as $id_set => $score) {
            //ici je      $sql = 'update resultat1799 set set1 ='$score' where id='$id_poule';
               mysqli_query($cnx, $sql);
        }
       }
    Mon code ou il y a les cellules.

    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
    {
    $affichage2 = " select SET1,SET2,SET3,SET4,SET5,resultat1,resultat2, classification, nom1, prenom1, NumLicence1,nom2, prenom2, NumLicence2,id from resultats1799 WHERE id = '".$id."'";
    $affichage2 = mysqli_query($cnx, $affichage2);
     }
     
    	    while ($row=mysqli_fetch_array($affichage2)) 
    		{ 
    		$resultat1 = $row[5];
    		$resultat2 = $row[6];
    		$resultat3 = $row[7];
    		$resultat4 = $row[8];
    		$resultat5 = $row[11];
    		$resultat6 = $row[12];
    		$id = $row[14];
     
     echo <<<html
    <TD><input size ='12%' type="text" value='$row[0]' name="SET1maj2"/></TD>  // name="SET1maj2[]"  je dois récupérer ma variable dans une tableau  ou pas ??
    <TD><input size ='12%' type="text" value='$row[1]' name="SET2maj2"/></TD>  // name 
    <TD><input size ='12%' type="text" value='$row[2]' name="SET3maj2"/></TD>
    <TD><input size ='12%' type="text" value='$row[3]' name="SET4maj2"/></TD>
    <TD><input size ='12%' type="text" value='$row[4]' name="SET5maj2"/></TD>
     
    html;
     
     
      echo '<input type="hidden" value="',$row['14'],'" name="id_poule[]"/>';
      // c'est ici que tu voudrai créer ta la variable name="score[$id_poule][$id_set]"    ????
     
     echo <<<html
    <td><center><input size ='15%' type="submit" class="boutonvert" value="Mise a Jour2" name="miseajour2" /></center></td>
    Merci

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    tu gères tout sous une seule et unique table (joueurs, tournois, parties, scores...) ?
    Tennis ?

  6. #6
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2020
    Messages : 4
    Par défaut
    tennis presque
    c'est du tennis de table

    non j'ai un table tournoi qui va gérer les inscriptions sur internet. ( pointage des personnes, calcul des taux de rentabilité avec la gestion des coûts par inscription , le pourcentage des 'inscriptions par tableau , trier par département/région etc etc )
    je gère aussi les dates d'inscriptions, tant % d'inscrit avant du 48 h du début du tournoi etc etc

    une table poules_"le nom du tableau" ou je traite les calculs pour déterminer t'elle personne est dans cette poule avec gestion des doublons car 2 personnes du même club ne peuvent jouer dans la même poule. et après que j’exporte en PDF .
    ce résultat que j'importe dans une table résultat_le nom du tableau qui est en cours de construction.

  7. #7
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    je pense que tu as un souci de design de ta base de données.
    Tu devrais avoir plusieurs tables :
    - t_club
    - t_joueur
    - t_tournoi
    - t_poule
    - t_partie
    - t_set
    Et pas une table du genre resultats1799 qui d'après ta notation correspondrait aux résultats du tournoi n°1799.

    Si tu tapes à côté sur le design de ta base de données, tu vas galérer sévère par la suite (crois-moi), comme c'est d'ailleurs plus ou moins déjà le cas...

  8. #8
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2020
    Messages : 4
    Par défaut
    Tout à fait d'accord avec toi.
    Il faudrait refaire la structure de la base. et faire un joli MCD.

    j'ai commencé à réaliser pour les clubs, j'ai crée une table département / club.
    Avec une petite liste déroulante qui recherche tout ce qui contient. trouvé sur site ^^
    une exemple
    Nom : pou.png
Affichages : 408
Taille : 3,9 Ko


    Au début j'avais juste développé pour faire des inscriptions en ligne puis on me dit ça serai bien que ça etc etc je fais des rajouts en rajouts

    J'ai trouvé une solution de contournement, j'ai mis en place une liste déroulante qui sélectionnera la poule.
    ça permet à mon script de fonctionner.

    Les tableaux multidimensionnelles,j'ai jamais rien compris c'est pour ça que j'ai fini admin réseau ^^ )

    et Merci d'avoir pris le temps de me répondre.

Discussions similaires

  1. Comment afficher une valeur dans un edittext avec un autre programme
    Par pitizone dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 14/05/2007, 07h45
  2. [XI] Calcul de valeurs dans un graphique avec une periode de temps
    Par campia dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 23/04/2007, 09h17
  3. Réponses: 28
    Dernier message: 07/06/2006, 13h30
  4. [SQL] Dans un while avec fichier
    Par ozzmax dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 10/02/2006, 20h54
  5. Renvoi d'une valeur dans un champ avec un style
    Par m@thieu dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/11/2005, 18h09

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