Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en 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 02/08/2007, 10h02   #1
Membre régulier
 
Inscription : novembre 2005
Messages : 371
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 371
Points : 80
Points : 80
Par défaut insert de la meme variable mais avec nom différents

Bonjour, le forum.

Comme a mon habitude, je vous sollicite pour un truc trés compliqué.

Je souhaite faire un tableau sportif PHP/SQL.

Le probleme vient du fait que je ne parvient pas a inserer dans la BDD les infos contenues dans les variables, le pb est d'identifier les variables dans mon insert :

Voici mon code :


fichier b.php
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 
// je récupére dans l url la variable de la journée :
$j=@$_GET['j'];
 
// tableau comportant la journée, l equipe Domicile MD, le score domicile RD, l equipe exterieur ME et son resultat RE. 
echo "<table border='0' cellpadding='0' cellspacing='0' width='300'>
  <tr>
    <td width='100%'>
      <form method='POST' action='valide-b.php'>
        <table border='0' cellpadding='0' cellspacing='0' width='300'>
          <tr>
            <td width='25%'>Journée : 
  	  <select onchange='document.location=(this.options[this.selectedIndex].value)' name='J'>
              <option value='b.php?j=$j' selected>$j</option>
              <option value='b.php?j=1'>1</option>
              //etc...
              </select>
	    </td>
            <td width='14%'></td>
            <td width='5%'></td>
            <td width='12%'></td>
            <td width='44%'></td>
          </tr>
          <tr>
            <td width='25%'></td>
            <td width='31%' colspan='3' align='center'><b><font size='4' face='Arial'>Score</font></b></td>
            <td width='44%'></td>
          </tr>";
 
 
// je liste les matchs de la journée selectionnée :
 
$res=mysql_query("SELECT * FROM L1R where J='$j'");
while($list = mysql_fetch_array($res, MYSQL_ASSOC))
{ 
$rd = 'RD' + $list['MD'];
$re = 'RE' + $list['ME'];
echo 'RD : $rd<br>RE : $re<br>';
echo '<tr>
      <td width="25%">
 
<select size="1" name="MD'.$list['MD'].'">
<option value="'.$list['MD'].'" selected>'.$list['MD'].'</option>';
 
// liste des equipes qui recoivent
$reseq=mysql_query("SELECT * FROM L1 order by Pts ASC");
while($listeq = mysql_fetch_array($reseq, MYSQL_ASSOC))
{ 
$md = $list['MD'];
$me = $list['ME'];
echo '<option value="'.$listeq['EQ'].'">'.$listeq['EQ'].'</option>';
}  
echo '</select>
 
</td>';
 
// resultat des match avec identification de chaque resultat dont une partie du nom est composé du nom de l'equipe pour l'UPDATE.
 
echo '<td width="14%"><input type="text" name="RD'.$list['MD'].'" size="2" value="'.$list['RD'].'"></td>
<td width="5%">-</td>
<td width="12%"><input type="text" name="RE'.$list['ME'].'" size="2" value="'.$list['RE'].'"></td>
 
<td width="25%">
 
<select size="1" name="ME'.$list['ME'].'">
<option value="'.$list['ME'].'" selected>'.$list['ME'].'</option>';
 
// liste des equipes reçues
$reseq=mysql_query("SELECT * FROM L1 order by Pts ASC");
while($listeq = mysql_fetch_array($reseq, MYSQL_ASSOC))
{ 
echo '<option value="'.$listeq['EQ'].'">'.$listeq['EQ'].'</option>';
}  
echo '</select</td>
      </tr>';
}
echo "</table><input name='valider' type='submit' value='VALIDER' style='font-size: 8 pt'>
      </form>
    </td>
  </tr>
</table>
";
?>
fichier valide-b.php qui reçoit les données

Soit rien ne foncitonne, soit il enregistre le dernier match
Code :
1
2
3
// c'est ici que se pose mon PB, car il n'identifie que les variables du dernier match. C'est comme si je devais faire une boucle dans l'update.
$modif = mysql_query("UPDATE L1R SET RD='$rd', RE='$re' WHERE MD='$md' and ME='$me' and J='$j'");
?>
Voici l'url du fichier. http://www.test-internet.com/b.php

Merci pour votre aide et bonne journée
kaolivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 16h56   #2
Membre régulier
 
Inscription : novembre 2005
Messages : 371
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 371
Points : 80
Points : 80
ouaou, j'aurai jamais pensé que mon PB était si compliqué.....
kaolivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 17h14   #3
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 423
Points : 6 423
Citation:
Envoyé par kaolivier
ouaou, j'aurai jamais pensé que mon PB était si compliqué.....
Bonjour,

Pas étonnant que tu n'aies pas trop de réponses, vu que tu n'es pas sur le bon forum pour ça . C'est un problème de PHP que tu rencontres, MySQL n'a rien à y voir (n'importe quel SGBD aurait le même soucis) .

Pour cause, tu essaies de modifier plusieurs lignes avec deux variables $rd et $re qui se font écraser au fur et à mesure que ta boucle de parcours des matchs s'effectue (par la fonction mysql_fetch_array).
Au bilan, ces deux variables ne contiennent plus que les résultats de la dernière ligne, comportement que tu observes très justement, et qui est normal...
Pour t'en sortir, il faut transformer $rd et $re en tableaux, avec une ligne par match, que tu passes en paramètres à ton update (et là, t'es bon pour faire une boucle pour mettre à jour chaque ligne...).

ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 20h42   #4
Membre régulier
 
Inscription : novembre 2005
Messages : 371
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 371
Points : 80
Points : 80
un petit exemple peut etre ?
kaolivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 10h00   #5
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 423
Points : 6 423
Ben là, comme ça, j'en n'ai pas sous la main...
Ca fait une paye que j'ai plus fait de PHP...
Tu as 2 solutions :
1/ tu fais de tes variables $rd et $re des tableaux que tu passes en paramètre (en post, parce que en get il faut serialiser et c'est plus compliqué) au script qui traitera les résultats.
2/ tu ajoutes à chaque ligne un _numLigne pour $rd et $re (ex : match1 => $rd_1 et $re_1, match2 => $rd_2 et $re_2...) et comme ça, dans le script de traitement des résultats, tu retrouves tous les scores de tous les matchs.

Je suis sûr que sur le forum PHP, tu dois trouver des exemples ou des pros de la question...

Bon courage,
ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 12h04   #6
Membre régulier
 
Inscription : novembre 2005
Messages : 371
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 371
Points : 80
Points : 80
Merci, bcp, je vais tenter ça et mettre un post sur le forum php en meme temps.

Trés bonne journée
kaolivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h13.


 
 
 
 
Partenaires

Hébergement Web