[resolu]souci dans mon code php..

souci dans mon code php.. [resolu] - PHP - Programmation

Marsh Posté le 25-08-2008 à 02:02:33    

Bonjour,  
j'ai un souci dans mon code php :  
j'ai un tableau a 8 colonnes  
 ___________________________________  
| classement | Equipe | V | N | D | F | PG | PP |  
 
( v=victoire / n=nul / d=defaite etc..) bref vous avez compris le type de tableau..  
 
mon probleme c'est que, quand j'arrive sur la page pour modifier le classement ou le corriger, j'arrive bien a changer les chiffres (nombre de victoire, nombre de defaite, point gagner, etc...)et sa s'enregistre mais quand je veu changer le nom de l'Equipe sa ne s enregistre pas..  
sur ma page classement les chiffres y son bien mais pas le nom de l equipe que j'ai voulu modifier.  
 
voici ma page pour modifier le classement :
 
<?php require_once('connexion.php'); ?>  
<html>  
 <head>  
  <title>Corriger le classement</title>  
  <link href="styles.css" rel="stylesheet" type="text/css">  
 </head>  
 <body>  
  <div align="center">  
  <p class="titre">- Correction Classement -</p>  
  <form method="post" action="updateclt.php">  
<?php  
 $id=$_POST['champ'];  
 // sélection de la table pour afficher le classement en fonction des points  
 $query_mysql=("SELECT * FROM equipes WHERE idchamp = $id ORDER BY Pts DESC " );  
 $result_mysql=mysql_query($query_mysql,$connexion);  
 echo '<table width="650" border="3" cellpadding="5" cellspacing="0" bordercolor="#666666">';  
 echo '<tr bgcolor="#CCCCCC">';  
 echo '<th> Clt </th>';  
 echo '<th> Equipe </th>';  
 echo '<th> V </th>';  
 echo '<th> N</th>';  
 echo '<th> D </th>';  
 echo '<th> F </th>';  
 echo '<th> PG </th>';  
 echo '<th> PP </th>';  
 echo '</tr>';  
 $nb=0;  
  while($ligne=mysql_fetch_array($result_mysql))  
  {  
   // variable pour chaque champ  
   // nb++ est utile pour afficher la position de l'équipe :1-2-3-4-5-6-7-8  
   $nb++;  
   $num = $ligne['idequipe'];  
   $nom = $ligne['nomequipe'];  
   $vic = $ligne['nbvictoire'];  
   $nul = $ligne['nbnul'];  
   $def = $ligne['nbdefaite'];  
   $for = $ligne['nbforfait'];  
   $pg = $ligne['pg'];  
   $pp = $ligne['pp'];  
   // affichage du tableau avec les variables enregistrées  
   echo'<tr>';  
   echo '<td align="center">'.$nb.'</td>';  
   echo '<td><input name="Equipe[]" type="text" value="'.$nom.'" size="10" maxlength="10" /></td>';  
   echo '<td><input name="v[]" type="text" value="'.$vic.'" size="1" maxlength="1" /></td>';  
   echo '<td><input name="n[]" type="text" value="'.$nul.'" size="1" maxlength="1" /></td>';  
   echo '<td><input name="d[]" type="text" value="'.$def.'" size="1" maxlength="1" /></td>';  
   echo '<td><input name="f[]" type="text" value="'.$for.'" size="1" maxlength="1" /></td>';  
   echo '<td><input name="pg[]" type="text" value="'.$pg.'" size="2" maxlength="3" /></td>';  
   echo '<td><input name="pp[]" type="text" value="'.$pp.'" size="2" maxlength="3" /></td>';  
   echo '</tr>';  
   echo '<input name="e[]" type="hidden" value="'.$num.'" />';  
 
  }  
  mysql_close();  
 echo "</table>";  
?>  
<p><input type="submit" name="Submit" value="OK" /></p>  
<p><a href="index.php"><strong>&lt; Retour accueil</strong></a></p>  
</form>  
</div>  
 
et voila la page updateclt.php :  
 
<?php require_once('connexion.php'); ?>  
<?php  
    $Equipe=$_POST['Equipe'];  
 $v=$_POST['v'];  
 $n=$_POST['n'];  
 $d=$_POST['d'];  
 $f=$_POST['f'];  
 $pg=$_POST['pg'];  
 $pp=$_POST['pp'];  
 $e=$_POST['e'];  
 // echo "$table";  
 // for($i=0;$i<count($v);$i++)  
 // {  
  // echo $v[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // for($i=0;$i<count($n);$i++)  
 // {  
  // echo $n[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // for($i=0;$i<count($d);$i++)  
 // {  
  // echo $d[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // for($i=0;$i<count($f);$i++)  
 // {  
  // echo $f[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // for($i=0;$i<count($pg);$i++)  
 // {  
  // echo $pg[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // for($i=0;$i<count($pp);$i++)  
 // {  
  // echo $pp[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // for($i=0;$i<count($e);$i++)  
 // {  
  // echo $e[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // echo "$e[0]";  
?>  
 
<html>  
 <head>  
  <title>Mise à jour du Classement</title>  
  <link href="styles.css" rel="stylesheet" type="text/css">  
 </head>  
 <body>  
  <div align="center">  
  <br />  
  <br />  
  <p class="titre">- Classement Corrigé -</p>  
<?php  
 for($i=0;$i<count($e);$i++)  
 {  
  $query="UPDATE equipes SET nomequipe=$Equipe[$i], nbvictoire=$v[$i], nbnul=$n[$i], nbdefaite=$d[$i], nbforfait=$f[$i], pg=$pg[$i], pp=$pp[$i] WHERE idequipe=$e[$i] ;";  
  $result=mysql_query($query);  
 }  
 $query="UPDATE equipes SET pts = `nbvictoire` *3 + `nbnul` *2 + `nbdefaite` *1";  
 $result=mysql_query($query);  
 $query="UPDATE equipes SET nbmatch = nbvictoire + nbnul + nbdefaite + nbforfait";  
 $result=mysql_query($query);  
 mysql_close($connexion);  
?>  
 </body>  
    <p><a href="index.php"><strong>&lt; Retour accueil</strong></a></p>  
 </div>  
</html>  
 
je suis a votre disposition si vous voulez d'autre infos  
si une personne peu m'aider sa serai cool merci


Message édité par eek le 25-08-2008 à 11:16:48
Reply

Marsh Posté le 25-08-2008 à 02:02:33   

Reply

Marsh Posté le 25-08-2008 à 10:02:14    

print_r($_POST) donne quoi dans ta page updateclt.php quand tu modifies l'équipe?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-08-2008 à 10:13:09    

Bonjour,
tu veus que je mette print_r($_POST) a kel ligne ?
   $Equipe=print_r($_POST)['Equipe'];  
 $v=$_POST['v'];  
 $n=$_POST['n'];  
 $d=$_POST['d'];  
...
comme sa ?
 

Reply

Marsh Posté le 25-08-2008 à 10:26:42    

nooooooooooon ça ne veut rien dire ça.
Lis la doc, au lieu de faire n'importe-quoi, print_r() affiche toutes les informations disponibles sur une variable...
Au début de ta page, ajoute une ligne avec seulement print_r($_POST); et dis-nous ce que ça t'affiche...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-08-2008 à 10:30:42    

;)
dsl je debute un peu en php je comprend pas bien tout defois
 
donc sa donne Parse error: syntax error, unexpected T_VARIABLE in /mnt/102/sdb/b/d/****/updateclt.php on line 4

Reply

Marsh Posté le 25-08-2008 à 10:32:08    

montre ce que donne ton code, t'as oublié un truc...un point virgule en fin de ligne?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-08-2008 à 10:35:14    

mon code de la page updateclt.php
 
<?php require_once('connexion.php'); ?>  
<?php  
    $Equipe=$_POST['Equipe'];  
 $v=$_POST['v'];  
 $n=$_POST['n'];  
 $d=$_POST['d'];  
 $f=$_POST['f'];  
 $pg=$_POST['pg'];  
 $pp=$_POST['pp'];  
 $e=$_POST['e'];  
 // echo "$table";  
 // for($i=0;$i<count($v);$i++)    
 // {  
  // echo $v[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // for($i=0;$i<count($n);$i++)    
 // {  
  // echo $n[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // for($i=0;$i<count($d);$i++)    
 // {  
  // echo $d[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // for($i=0;$i<count($f);$i++)    
 // {  
  // echo $f[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // for($i=0;$i<count($pg);$i++)    
 // {  
  // echo $pg[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // for($i=0;$i<count($pp);$i++)    
 // {  
  // echo $pp[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // for($i=0;$i<count($e);$i++)    
 // {  
  // echo $e[$i];  
  // echo "-";  
 // }  
 // echo "<p>";  
 // echo "$e[0]";  
?>  
   
<html>  
 <head>  
  <title>Mise à jour du Classement</title>  
  <link href="styles.css" rel="stylesheet" type="text/css">  
 </head>  
 <body>  
  <div align="center">  
  <br />  
  <br />  
  <p class="titre">- Classement Corrigé -</p>  
<?php  
 for($i=0;$i<count($e);$i++)  
 {  
  $query="UPDATE equipes SET nomequipe=$Equipe[$i], nbvictoire=$v[$i], nbnul=$n[$i], nbdefaite=$d[$i], nbforfait=$f[$i], pg=$pg[$i], pp=$pp[$i] WHERE idequipe=$e[$i] ;";  
  $result=mysql_query($query);  
 }  
 $query="UPDATE equipes SET pts = `nbvictoire` *3 + `nbnul` *2 + `nbdefaite` *1";  
 $result=mysql_query($query);  
 $query="UPDATE equipes SET nbmatch = nbvictoire + nbnul + nbdefaite + nbforfait";  
 $result=mysql_query($query);  
 mysql_close($connexion);  
?>  
 </body>  
    <p><a href="index.php"><strong>&lt; Retour accueil</strong></a></p>  
 </div>  
</html>  

Reply

Marsh Posté le 25-08-2008 à 10:49:25    

je vois pas de print_r, là.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-08-2008 à 10:50:27    

<?php require_once('connexion.php'); ?>
<?php
print_r($_POST)
    $Equipe=$_POST['Equipe'];
 $v=$_POST['v'];
 $n=$_POST['n'];
 $d=$_POST['d'];
 $f=$_POST['f'];
 $pg=$_POST['pg'];
 $pp=$_POST['pp'];
 $e=$_POST['e'];
 // echo "$table";
 // for($i=0;$i<count($v);$i++)  
 // {
  // echo $v[$i];
  // echo "-";
 // }
 // echo "<p>";
 // for($i=0;$i<count($n);$i++)  
 // {
  // echo $n[$i];
  // echo "-";
 // }
 // echo "<p>";
 // for($i=0;$i<count($d);$i++)  
 // {
  // echo $d[$i];
  // echo "-";
 // }
 // echo "<p>";
 // for($i=0;$i<count($f);$i++)  
 // {
  // echo $f[$i];
  // echo "-";
 // }
 // echo "<p>";
 // for($i=0;$i<count($pg);$i++)  
 // {
  // echo $pg[$i];
  // echo "-";
 // }
 // echo "<p>";
 // for($i=0;$i<count($pp);$i++)  
 // {
  // echo $pp[$i];
  // echo "-";
 // }
 // echo "<p>";
 // for($i=0;$i<count($e);$i++)  
 // {
  // echo $e[$i];
  // echo "-";
 // }
 // echo "<p>";
 // echo "$e[0]";
?>
 
<html>
 <head>
  <title>Mise à jour du Classement</title>
  <link href="styles.css" rel="stylesheet" type="text/css">
 </head>
 <body>
  <div align="center">
  <br />
  <br />
  <p class="titre">- Classement Corrigé -</p>
<?php
 for($i=0;$i<count($e);$i++)
 {
  $query="UPDATE equipes SET nomequipe="$Equipe[$i]", nbvictoire=$v[$i], nbnul=$n[$i], nbdefaite=$d[$i], nbforfait=$f[$i], pg=$pg[$i], pp=$pp[$i] WHERE idequipe=$e[$i] ;";
  $result=mysql_query($query);
 }
 $query="UPDATE equipes SET pts = `nbvictoire` *3 + `nbnul` *2 + `nbdefaite` *1";
 $result=mysql_query($query);
 $query="UPDATE equipes SET nbmatch = nbvictoire + nbnul + nbdefaite + nbforfait";
 $result=mysql_query($query);
 mysql_close($connexion);
?>
 </body>
    <p><a href="index.php"><strong>&lt; Retour accueil</strong></a></p>
 </div>
</html>

Reply

Marsh Posté le 25-08-2008 à 10:51:25    

et le point virgule il est où? :o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-08-2008 à 10:51:25   

Reply

Marsh Posté le 25-08-2008 à 10:57:50    

voila le code que j ai quand je mé print_r($_POST);
 
Array ( [Equipe] => Array ( [0] => ddfdf [1] => [Equipe10] [2] => [Equipe11] [3] => [Equipe12] [4] => [Equipe13] [5] => [Equipe14] [6] => [Equipe15] [7] => [Equipe16] ) [v] => Array ( [0] => 3 [1] => 1 [2] => 1 [3] => 1 [4] => 0 [5] => 0 [6] => 0 [7] => 0 ) [n] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 ) [d] => Array ( [0] => 1 [1] => 1 [2] => 1 [3] => 0 [4] => 2 [5] => 1 [6] => 0 [7] => 0 ) [f] => Array ( [0] => 1 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 ) [pg] => Array ( [0] => 164 [1] => 372 [2] => 180 [3] => 12 [4] => 140 [5] => 3 [6] => 0 [7] => 0 ) [pp] => Array ( [0] => 125 [1] => 274 [2] => 22 [3] => 111 [4] => 430 [5] => 20 [6] => 0 [7] => 0 ) [e] => Array ( [0] => 12 [1] => 15 [2] => 18 [3] => 11 [4] => 13 [5] => 17 [6] => 14 [7] => 16 ) [Submit] => OK )  
 
 
 
- Classement Corrigé -
 
< Retour accueil

Reply

Marsh Posté le 25-08-2008 à 11:06:09    

je crois avoir trouvé l erreur (trouvé la reponse sur une autre board)
 
reponse :  
Il faut mettre des " " de chaque côté de $Equipe[$i] dans la mise à jour de ta base car c'est une chaîne de caractères. ça ressemblera à ça:  
 
...equipes SET nomequipe=\"$Equipe[$i]\", nbv........  
 
je v testé

Reply

Marsh Posté le 25-08-2008 à 11:06:11    

Donc $_POST['Equipe'] contient ceci :

Citation :

Array ( [0] => ddfdf [1] => [Equipe10] [2] => [Equipe11] [3] => [Equipe12] [4] => [Equipe13] [5] => [Equipe14] [6] => [Equipe15] [7] => [Equipe16] )


 
Est-ce que c'est ce que tu attends? Si oui, quelle est l'erreur que tu obtiens par la suite?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-08-2008 à 11:08:06    

eek a écrit :

je crois avoir trouvé l erreur (trouvé la reponse sur une autre board)
 
reponse :  
Il faut mettre des " " de chaque côté de $Equipe[$i] dans la mise à jour de ta base car c'est une chaîne de caractères. ça ressemblera à ça:  
 
...equipes SET nomequipe=\"$Equipe[$i]\", nbv........  
 
je v testé


 
En sql on utilise les simples quotes pour une chaine de caractères : '$Equipe[$i]'.
 
Par ailleurs je suggèrerais volontiers l'utilisation de requêtes paramétrées, mais j'ai peur que ce ne soit un peu compliqué pour toi vu comme on est partis...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 25-08-2008 à 11:15:47    

LOL SKEYE kler ;)
bon pour le momment sa a l air de bien fonctionner avec les \"
sa s enregistre bien et sa s'affiche nikel..
je te remercie quand meme pour ta patience :) ...
 
je verrai plus tard pour des "requêtes paramétrées" bcp plus tard ;)  
merci encore !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed