Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/02/2011, 19h09   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2009
Messages : 63
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : juin 2009
Messages : 63
Points : 14
Points : 14
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 :
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.
roukgreg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 21h12   #2
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 706
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 706
Points : 3 274
Points : 3 274
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 :
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]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2011, 01h59   #3
Membre du Club
 
Sebastien
Inscription : janvier 2011
Messages : 76
Détails du profil
Informations personnelles :
Nom : Sebastien

Informations forums :
Inscription : janvier 2011
Messages : 76
Points : 50
Points : 50
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.
kirua99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 12h04   #4
Candidat au titre de Membre du Club
 
Inscription : juin 2009
Messages : 63
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : juin 2009
Messages : 63
Points : 14
Points : 14
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 :
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 :
1
2
$domicile = $_POST['score_dom'.$match['id_match']];
			$exterieur = $_POST['score_ext'.$match['id_match']];
j'ai maintenant:

Code :
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
roukgreg est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h36.


 
 
 
 
Partenaires

Hébergement Web