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 :

Insertion de données compliqueé


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 124
    Points : 50
    Points
    50
    Par défaut Insertion de données compliqueé
    Bonjour,

    Je réalise actuellement pour mon club de foot un petit jeu de prono de foot. J'ai déjà pas mal travaillé mais je bloque sur un script.

    En faite je présente les matchs avec les balises SELECT pour choisir les scores.

    En script ça me donne ceci :


    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
    <?php
    while($match = mysql_fetch_array($query_match))
    {
    		echo "<input type='hidden' value='".$match['id_match']."' name='cache'>";		
    //---------------------------------------------------------------------------------------------------------------------		
         echo "<td class='equipe_dom'>";//Ouverture des cases pour les équipes jouant à domicile
     
             echo $match['equipe_dom']."</td>";
     
     
    	       echo "<td class='bordure-bas'><select name='score_dom'>";//Ouverture de la balise SELECT pour le choix du score de l'équipe jouant à domicile
     
    		for($j=0; $j<=10; $j++)//Boucle pour le choix du score pour l'équipe jouant à domicile
    		{
    			echo "<option value='".$j."' name='num_".$j."'>".$j."</option>";
    		}
     
     
    		echo "</select></td>";//Fermeture de la balise SELECT pour le choix du score de l'équipe jouant à domicile
     
    		echo "<td class='bordure-bas'>";//Ouverture des cases pour les équipes jouant à l'exterieur
     
    			echo "<select name='score_ext'>";//Ouverture de la balise SELECT pour le choix du score de l'équipe jouant à l'exterieur
     
     
    		for($i=0; $i<=10; $i++)//Boucle pour le choix du score pour l'équipe jouant à l'exterieur
    		{
    			echo "<option value='".$i."' name='num_".$i."'>".$i."</option>";
    		}
     
    		              echo "</select></td>";//Fermeture de la balise SELECT pour le choix du score de l'équipe jouant à l'exterieur
     
    				echo "<td class='equipe_ext'>";
    				echo $match['equipe_ext']."</td>";
     
    			echo "</tr><tr>";
    		}
     
    	echo "</table>";
    ?>
    J'ai mis un champ caché pour récupérer l'id du match.

    Mais là ou je bloque c'est que je ne sais pas trop comment faire pour enregistrer ça dans mes tables. En faite je dois enregistrer l'id du match (present sur l'image 12-13-14 etc...) et le score à domicile, et score a l'exterieur.

    J'avoue que je bloque, malgré mes recherches.

    En vous remerciant pour vos réponses.

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    A mon sens il faudrait exploiter des tableaux au niveau HTML, ce qui fait que tu obtiendras un tableau aussi en Php ($_POST).

    En tout cas, les champs cachés vont difficilement permettre d'associer les éléments à mon avis.


    Essai un truc du genre :
    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
     
    <!-- simulation de la boucle while des match -->
    <!-- match 12 -->
    <select name="match[12][dom]">
        <option value="0">0</option>
        <option value="1">1</option>
        ... score etc ...
    </select>
     
    <select name="match[12][ext]">
        <option value="0">0</option>
        <option value="1">1</option>
        ... score etc ...
    </select>
     
     
    <!-- match 13 -->
    <select name="match[13][dom]">
        <option value="0">0</option>
        <option value="1">1</option>
    </select>
     
    <select name="match[13][ext]">
        <option value="0">0</option>
        <option value="1">1</option>
    </select>
     
    ... boucle etc ...
    Théoriquement, on devrait obtenir 1 tableau au nom de "match" de tous les match avec leur score dom/ext

    Pour essai, fait un print_r($_POST) pour voir ce que ça contient.
    Un foreach() sera nécessaire pour le parcourir afin de récupérer les données (si c'est correcte).
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 141
    Points : 101
    Points
    101
    Par défaut
    Bonsoir,

    A mon sens tu devrais récupérer dans une table un truc du style :
    table resultat:
    id match
    equipe 1
    equipe 2
    score1
    score2


    Pour les champs , une solution que j'aurai tenter c'est mettre sa dans un form Post, et de mettre des champs cachés pour récupérer toute tes données.

    Cordialement.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 124
    Points : 50
    Points
    50
    Par défaut
    Bonjour,

    Aprés des essais infructueux, j'ai abandonnée les champs cachés.

    J'ai préféré les tableaux HTML comme tu me l'as proposer RunCodePhp. Mais mon petit souci perdure, car j'ai bien mes id de match dans mon tableau, mais impossible d'enregistrer les scores.

    Il ne m'enregistre tout correctement, sauf les scores des matchs. Soit il m'enregistre le score du dernier match de la liste, soi il n'enregistre rien tu tout.

    Voilà mon code avec ma requête:

    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
     
    	foreach($tableau_match as $key => $value)
    		{
     
     
    			$domicile = $_POST['score_dom'.$match['id_match']];
    			$exterieur = $_POST['score_ext'.$match['id_match']];
     
                                    //ECHO pour verifier que j'ai les valeurs que je souhaite.
    				echo "La clé est ".$key." et cette clé vaut ".$value.". Le score dom est : ".$domicile." est ext est : ".$exterieur." <br>";
     
    					$req_insert_prono = "INSERT INTO $table_19 VALUES ('', '".$id_joueur."', '".$value."', '".$domicile."', '".$exterieur."', CURRENT_TIMESTAMP())";
     
    						$query_insert_prono = mysql_query($req_insert_prono) or die (mysql_error());
    		}
    Au final je me demande si je ne dois pas mettre les scores également dans un tableau? Mais cela ferait je pense beaucoup. Car je me dis que aucun élément ne permet à ma requête de définir exactement quel score dois être enregistré.


    EDIT:

    J'ai modifié un peu mon code pour avoir au lieu de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $domicile = $_POST['score_dom'.$match['id_match']];
    			$exterieur = $_POST['score_ext'.$match['id_match']];
    j'ai maintenant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $domicile = $_POST['score_dom'.$tableau_match[$key]];
    			$exterieur = $_POST['score_ext'.$tableau_match[$key]];
    Cela à l'air de fonctionner, pensez vous que ce soit le meilleur solution, et pensez vous que cela pourrait provoquer un jour des conflits problèmes ou autres.

    En vous remerciant d'avance

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/05/2004, 14h32
  2. problème d'insertion de données
    Par Falgan dans le forum ASP
    Réponses: 2
    Dernier message: 06/04/2004, 09h29
  3. [Interbase 7] Problème d'insertion de données
    Par Tuscelan dans le forum InterBase
    Réponses: 12
    Dernier message: 19/11/2003, 22h58
  4. insertion de données
    Par m-l dans le forum SQL
    Réponses: 9
    Dernier message: 25/07/2003, 13h59
  5. [Postgresql] pb lors d'insertion de données
    Par bob20000 dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/11/2002, 15h33

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