|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
hx.jonathan WRInaute discret

Inscrit le: 02 Mar 2005 Messages: 71
|
Posté le : Lun Aoû 06, 2007 15:27 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
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: |
<?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: |
<?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

Inscrit le: 27 Déc 2004 Messages: 2211 Localisation: La roche s/ yon
|
Posté le : Lun Aoû 06, 2007 16:15 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
Je crois que tu devrais commencer par bien formater ton code source, du style :
| Code: |
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

Inscrit le: 23 Fév 2004 Messages: 12418 Localisation: Google
|
Posté le : Lun Aoû 06, 2007 16:22 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
Pour commencer,
| Code: |
| $sql = "UPDATE `jour` SET `num` = '$ZeVar' WHERE `id_jour` = '$i'"; |
--> fais un
| Code: |
| <?php echo $sql; ?> |
pour vérifier la query. |
|
| |
|
 |
hx.jonathan WRInaute discret

Inscrit le: 02 Mar 2005 Messages: 71
|
Posté le : Lun Aoû 06, 2007 16:32 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
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 discret

Inscrit le: 02 Mar 2005 Messages: 71
|
Posté le : Lun Aoû 06, 2007 16:42 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
Voici quelque commentaires afin que de voir plus clair:
page affichage enregistrements :
| Code: |
//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: |
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 discret

Inscrit le: 02 Mar 2005 Messages: 71
|
Posté le : Lun Aoû 06, 2007 16:46 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
Voici ce qu'il m'affiche pour ma requête SQL
| Code: |
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é

Inscrit le: 17 Sep 2005 Messages: 763 Localisation: Sud Oues
|
Posté le : Lun Aoû 06, 2007 17:39 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
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 discret

Inscrit le: 02 Mar 2005 Messages: 71
|
Posté le : Lun Aoû 06, 2007 17:47 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
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

Inscrit le: 26 Oct 2005 Messages: 1383
|
Posté le : Lun Aoû 06, 2007 17:52 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
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 discret

Inscrit le: 02 Mar 2005 Messages: 71
|
Posté le : Lun Aoû 06, 2007 17:57 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
Que dois-je modifier exactement a ton avis ?
John |
|
| |
|
 |
Robinson WRInaute accro

Inscrit le: 26 Oct 2005 Messages: 1383
|
Posté le : Lun Aoû 06, 2007 18:05 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
Un vieux bout de code que j'utilisais :
| Code: |
//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é

Inscrit le: 17 Sep 2005 Messages: 763 Localisation: Sud Oues
|
Posté le : Lun Aoû 06, 2007 19:48 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
Robinson a raison tu modifies juste
| Code: |
$sql = "UPDATE jour SET num = '".$ZeVar."' WHERE id_jour = '$i'";
|
par
| Code: |
$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 discret

Inscrit le: 02 Mar 2005 Messages: 71
|
Posté le : Lun Aoû 06, 2007 23:37 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
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: |
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é

Inscrit le: 17 Sep 2005 Messages: 763 Localisation: Sud Oues
|
Posté le : Lun Aoû 06, 2007 23:56 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
Alors la piste de Robinson
$sql = "UPDATE jour SET num = '".$_POST[$ZeVar]."' WHERE id_jour = '$i'"; |
|
| |
|
 |
hx.jonathan WRInaute discret

Inscrit le: 02 Mar 2005 Messages: 71
|
Posté le : Mar Aoû 07, 2007 0:04 Sujet du message: UPDATE TABLE MYSQL ! |
|
|
Il me met Undefined index à la place de undefined variable:
| Code: |
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'
|
|
|
| |
|
 |
| |
|
|