UPDATE TABLE MYSQL !

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

hx.jonathan
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 118
Inscription: Mer Mar 02, 2005 17:42

UPDATE TABLE MYSQL !

Message le Lun Aoû 06, 2007 14:27

Bonjour à tous,

J'ai déjà cherché sur le site d'autre sujets identique mais aucun ne réponds bien à mon prblème.

J'ai une page d'affichage d'enregistrement et une page de mise à jour. La page d'affichage fonctionne bien.

La page de mise à jour par contre pose problème car elle ne prends pas en compte mes modifications que j'effectue dans le formulaire.

Voici mes deux pages.

page affichage :

Code: Tout sélectionner
<?php

include_once 'fonctions.php';
   
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <link rel="stylesheet" type="text/css" href="styles_club.css" />
          <title>Accueil</title>
          </head>
          <body>
        <?php
       
      connexion_DB('bd_club');
      $res = mysql_query('SELECT * FROM jour');
      print '<form method="POST" action="check.php">';

$cpt=0;
while($row = mysql_fetch_array($res))
{
$cpt++;
$id_jour=$row['id_jour'];
$num=$row['num'];
$nom=$row['nom'];

print "<input type='hidden' name='IDJour' size='1' value='$id_jour'></input>";
print "<input type='text' name='numJour'".$cpt." size='1' value='$num'></input>";


echo "<br />";
}
echo "<br />";
print '<div align="center"><input type="submit" name="envoie" VALUE="Confirmer la validation du traitement"></div>';
print '</form>';

mysql_close();
?>
        </body>
       
       
        </html>


page de mise à jour :

Code: Tout sélectionner
<?php

   
include_once 'fonctions.php';




if(isset($_POST['numJour']))     

$numJour=$_POST['numJour'];
else      $num="";
echo $num[15];

connexion_DB('bd_club');


for($i=1; $i<31;$i++){

$ZeVar='numJour'.$i;
$sql = "UPDATE jour SET num = '".$ZeVar."' WHERE id_jour = '$i'";
echo "<br/>".$sql;

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
}

header("Location:http://127.0.0.1/absence/index.php?page=02");
   



   
      
?>


Edit HawkEye: mise en forme BBcode [ code] + [/code]


D'avance merci. J'attends vos suggestions.

John


bproductiv
WRInaute accro
WRInaute accro
 
Messages: 2853
Inscription: Lun Déc 27, 2004 16:29

Message le Lun Aoû 06, 2007 15:15

Je crois que tu devrais commencer par bien formater ton code source, du style :
Code: Tout sélectionner
if(condition){
action;
}else{
autreaction;
}

on comprendra mieux..
As tu vu que tu recupere une valeur dans une variable $numjour et que si elle n'est pas remplie tu met $num vide.. quel rapport?
Un peu de précision serait les bienvenue...


HawkEye
Modérateur
Modérateur
 
Messages: 15041
Inscription: Lun Fév 23, 2004 12:33

Message le Lun Aoû 06, 2007 15:22

Pour commencer,

Code: Tout sélectionner
$sql = "UPDATE `jour` SET `num` = '$ZeVar' WHERE `id_jour` = '$i'";


--> fais un
Code: Tout sélectionner
<?php echo $sql; ?>
pour vérifier la query.

hx.jonathan
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 118
Inscription: Mer Mar 02, 2005 17:42

Message le Lun Aoû 06, 2007 15:32

Salut HawkEye,

Le test de ma requete est déjà fait après la requête. Tu as du la louper dans le code.

hx.jonathan
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 118
Inscription: Mer Mar 02, 2005 17:42

Message le Lun Aoû 06, 2007 15:42

Voici quelque commentaires afin que de voir plus clair:


page affichage enregistrements :

Code: Tout sélectionner
//connexion BDD
       
connexion_DB('bd_club');

// REQUETE SQL
$res = mysql_query('SELECT * FROM jour');
print '<form method="POST" action="check.php">';

//boucle

$cpt=0;
while($row = mysql_fetch_array($res))
{
$cpt++;
$id_jour=$row['id_jour'];
$num=$row['num'];
$nom=$row['nom'];

//affichage enregistrements

print "<input type='hidden' name='IDJour' size='1' value='$id_jour'></input>";
print "<input type='text' name= numJour".$cpt." size='1' value='$num'></input>";


echo "<br />";
}
echo "<br />";
print '<div align="center"><input type="submit" name="envoie" VALUE="Confirmer la validation du traitement"></div>';
print '</form>';

mysql_close();




page de mise à jour:
Code: Tout sélectionner
include_once 'fonctions.php';




if(isset($_POST['numJour']))     

$numJour=$_POST['numJour'];

//fonction connexion BDD
connexion_DB('bd_club');

//boucle

for($i=1; $i<10;$i++){

$ZeVar='numJour'.$i;

//instruction SQL UPDATE des champs

$sql = "UPDATE jour SET num = '".$ZeVar."' WHERE id_jour = '$i'";
echo $sql;

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
}

//redirection

header("Location:http://127.0.0.1/absence/index.php?page=02");
   

[/code]

hx.jonathan
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 118
Inscription: Mer Mar 02, 2005 17:42

Message le Lun Aoû 06, 2007 15:46

Voici ce qu'il m'affiche pour ma requête SQL


Code: Tout sélectionner
UPDATE jour SET num = 'numJour1' WHERE id_jour = '1'UPDATE jour SET num = 'numJour2' WHERE id_jour = '2'UPDATE jour SET num = 'numJour3' WHERE id_jour = '3'UPDATE jour SET num = 'numJour4' WHERE id_jour = '4'UPDATE jour SET num = 'numJour5' WHERE id_jour = '5'UPDATE jour SET num = 'numJour6' WHERE id_jour = '6'UPDATE jour SET num = 'numJour7' WHERE id_jour = '7'UPDATE jour SET num = 'numJour8' WHERE id_jour = '8'UPDATE jour SET num = 'numJour9' WHERE id_jour = '9'


f_trt
WRInaute passionné
WRInaute passionné
 
Messages: 781
Inscription: Sam Sep 17, 2005 22:36

Message le Lun Aoû 06, 2007 16:39

Les requetes sont bonnes, qu'est ce qui ne va pas ?
Si tu regardes dans ta table jour avec phpMyAdmin qu'as tu ?

hx.jonathan
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 118
Inscription: Mer Mar 02, 2005 17:42

Message le Lun Aoû 06, 2007 16:47

Salut,

merci pour ta réponse.

Sur la page de mon formulaire, quand je modifie un champ et que je clique sur le bouton de validation, il me remplace tous les champs par 0.

Je cherche depuis super longtemps et personne ne parvient à m'aider. Je ne suis peut être pas clair.

Robinson
WRInaute accro
WRInaute accro
 
Messages: 1857
Inscription: Mar Oct 25, 2005 23:10

Message le Lun Aoû 06, 2007 16:52

C'est ici ton problème :

$ZeVar='numJour'.$i;

Avec ça, tu ne récupères nullement la valeur du POST.
Enfin, ce n'est pas exactement là ton problème.

La valeur récupérée doit se trouver avec $$ZeVar (si j'ai bien compris ce que tu souhaites même si ton code n'a pas l'air de faire cela lol).

Edit : il te met 0 car c'est un champ de type int (ou numérique)

hx.jonathan
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 118
Inscription: Mer Mar 02, 2005 17:42

Message le Lun Aoû 06, 2007 16:57

Que dois-je modifier exactement a ton avis ?

John

Robinson
WRInaute accro
WRInaute accro
 
Messages: 1857
Inscription: Mar Oct 25, 2005 23:10

Message le Lun Aoû 06, 2007 17:05

Un vieux bout de code que j'utilisais :
Code: Tout sélectionner
   //Pour tous les champs
   for($i=0; $i <= $nbchamps; $i++){
      $num = "numJour".($i+1);
      $valeurdupost = $_POST[$num];
      $listedesposts[$i] = $valeurdupost;
   }

Tu récupères ainsi tes valeurs dans un tableau et hop tu en fais ce que tu veux.


f_trt
WRInaute passionné
WRInaute passionné
 
Messages: 781
Inscription: Sam Sep 17, 2005 22:36

Message le Lun Aoû 06, 2007 18:48

Robinson a raison tu modifies juste
Code: Tout sélectionner
$sql = "UPDATE jour SET num = '".$ZeVar."' WHERE id_jour = '$i'";

par
Code: Tout sélectionner
$sql = "UPDATE jour SET num = '".$$ZeVar."' WHERE id_jour = '$i'";


Le double $$ est très très important dans ton cas car il s'agit bien de récupérer la valeur pointée par $ZeVar

A+

hx.jonathan
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 118
Inscription: Mer Mar 02, 2005 17:42

Message le Lun Aoû 06, 2007 22:37

Voilà j'ai essayé en changeant par $$ZeVar mais ça ne règle pas le problème. Voici ce qu'il me marque comme erreur :

Code: Tout sélectionner
Notice: Undefined variable: numJour1 in D:\SEERYX\absence\check.php on line 28

UPDATE jour SET num = '' WHERE id_jour = '1'
Notice: Undefined variable: numJour2 in D:\SEERYX\absence\check.php on line 28

UPDATE jour SET num = '' WHERE id_jour = '2'
Notice: Undefined variable: numJour3 in D:\SEERYX\absence\check.php on line 28

UPDATE jour SET num = '' WHERE id_jour = '3'
Notice: Undefined variable: numJour4 in D:\SEERYX\absence\check.php on line 28

UPDATE jour SET num = '' WHERE id_jour = '4'
Notice: Undefined variable: numJour5 in D:\SEERYX\absence\check.php on line 28

UPDATE jour SET num = '' WHERE id_jour = '5'
Notice: Undefined variable: numJour6 in D:\SEERYX\absence\check.php on line 28

UPDATE jour SET num = '' WHERE id_jour = '6'
Notice: Undefined variable: numJour7 in D:\SEERYX\absence\check.php on line 28

UPDATE jour SET num = '' WHERE id_jour = '7'
Notice: Undefined variable: numJour8 in D:\SEERYX\absence\check.php on line 28

UPDATE jour SET num = '' WHERE id_jour = '8'
Notice: Undefined variable: numJour9 in D:\SEERYX\absence\check.php on line 28

UPDATE jour SET num = '' WHERE id_jour = '9'





f_trt
WRInaute passionné
WRInaute passionné
 
Messages: 781
Inscription: Sam Sep 17, 2005 22:36

Message le Lun Aoû 06, 2007 22:56

Alors la piste de Robinson
$sql = "UPDATE jour SET num = '".$_POST[$ZeVar]."' WHERE id_jour = '$i'";

hx.jonathan
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 118
Inscription: Mer Mar 02, 2005 17:42

Message le Lun Aoû 06, 2007 23:04

Il me met Undefined index à la place de undefined variable:

Code: Tout sélectionner

la variable numJour existe
Notice: Undefined index: numJour1 in D:\SEERYX\absence\check.php on line 27

UPDATE jour SET num = '' WHERE id_jour = '1'
Notice: Undefined index: numJour2 in D:\SEERYX\absence\check.php on line 27

UPDATE jour SET num = '' WHERE id_jour = '2'
Notice: Undefined index: numJour3 in D:\SEERYX\absence\check.php on line 27

UPDATE jour SET num = '' WHERE id_jour = '3'
Notice: Undefined index: numJour4 in D:\SEERYX\absence\check.php on line 27

UPDATE jour SET num = '' WHERE id_jour = '4'
Notice: Undefined index: numJour5 in D:\SEERYX\absence\check.php on line 27

UPDATE jour SET num = '' WHERE id_jour = '5'
Notice: Undefined index: numJour6 in D:\SEERYX\absence\check.php on line 27

UPDATE jour SET num = '' WHERE id_jour = '6'
Notice: Undefined index: numJour7 in D:\SEERYX\absence\check.php on line 27

UPDATE jour SET num = '' WHERE id_jour = '7'
Notice: Undefined index: numJour8 in D:\SEERYX\absence\check.php on line 27

UPDATE jour SET num = '' WHERE id_jour = '8'
Notice: Undefined index: numJour9 in D:\SEERYX\absence\check.php on line 27

UPDATE jour SET num = '' WHERE id_jour = '9'



UPDATE TABLE MYSQL !

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités