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 22/08/2011, 09h08   #1
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
Par défaut problème récupération variable contenu dans un tableau

Bonjour à tous ,
Je vous explique mon souci , je débute en php et j'ai un tableau contenant plusieurs variables .
Les 5 premières colonnes contiennent des variables directement récupérées dans ma base de données, jusque la pas de souci .

La ou ça se complique c concernant les 2 dernières colonnes , l'avant dernière contient un input de type bouton radio j'arrive a récupère la valeur de mon bouton si coché et à la faire s'enregistrer dans la base de données mais impossible le de faire de même pour la dernière colonne.

La dernière colonne contient un input de type text , et je voudrais réussir à enregistrer la valeur saisie dans le champ dans la BDD au changement de page.

J'utilise la method post dans mon formulaire et sur la page de destination récupère mes variables post et les déclarent en variable de session mais ça coince ^^

Je vous copie colle mon formulaire en method post et les lignes de la page suivante pour enregistrer et afficher les valeurs.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<table id="hovertable">
<form name="list" METHOD="POST" ACTION="admin6.php">
<?php
 
echo '<tr><th>table:</th><th>personnel:</th><th>service:</th><th>pour la periode du:</th><th>au:</th><th>motif:</th><th>type:</th><th>date:</th><th>effectue:</th><th>à modifier:</th><th>annotation:</th></tr>';
while($ligne = mysql_fetch_object($res))
 
	{	
	 echo '<tr onmouseover="this.style.backgroundColor="#ffff66";" onmouseout="this.style.backgroundColor="#d4e3e5";"><td>'.$ligne->nom_table.'</td><td>'.$ligne->nom.'</td><td>'.$ligne->service.'</td><td>'.$ligne->date_debut.'</td><td>'.$ligne->date_fin.'</td><td>'.$ligne->motif.'</td><td>'.$ligne->type.'</td><td>'.$ligne->date.'</td><td>'.$ligne->effectue.'</td><td><INPUT TYPE="radio" name="modif" value="'.$ligne->nmr.'">'.'</td><td><INPUT TYPE="text" name="annotation">'.'</td></tr>';
	}
 
?>
</table>
<div><input type=submit name=envoyer value=envoyer></div>
<br>
</form>
et sur ma page admin6 j'ai cela:


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$_SESSION['modif']=$_POST["modif"];
$_SESSION['annotation']=$_POST["annotation"];
$oui="oui";
$sql1 = 'update fusion set effectue = "'.$oui.'" where nmr = "'.$_SESSION['modif'].'"';
$res1= mysql_query($sql1);
 
$sql2 = 'INSERT INTO fusion VALUES ("'.'","'.'","'.'","'.'","'.'","'.'","'.'","'.'","'.'","'.'","'.$_SESSION['annotation'].'")';
$res2 = mysql_query($sql2);
 
$sql="select * from fusion WHERE effectue like 'oui' order by nmr desc";
$res= mysql_query($sql);
 
echo '<tr><th>table:</th><th>personnel:</th><th>service:</th><th>pour la periode du:</th><th>au:</th><th>motif:</th><th>type:</th><th>date:</th><th>effectue:</th><th>annotation:</th></tr>';
while($ligne = mysql_fetch_object($res))
    {	
	 echo '<tr><td>'.$ligne->nom_table.'</td><td>'.$ligne->nom.'</td><td>'.$ligne->service.'</td><td>'.$ligne->date_debut.'</td><td>'.$ligne->date_fin.'</td><td>'.$ligne->motif.'</td><td>'.$ligne->type.'</td><td>'.$ligne->date.'</td><td>'.$ligne->effectue.'</td><td>'.$ligne->annotation.'</tr>';
	}
 
?>
</table>
D'avance merci .
mac-addict est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 09h53   #2
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
ps :
- toutes les balises html s'écrivent en minuscules.
- les input, br (et img) sont fermantes (<.../>):
Code :
1
2
<input type="text" name="annotation" value="" />
<br />
- ta façon d'écrire le code html dans le php, + le fait que tout soit sur la même ligne : c'est vite illisible, et ne facilite pas le débogage.
- une bonne indentation du code est recommandée (pour : lisibilité, maintenance, débogage du code)
- il faut absolument proteger la BdD des injections sql ! -> mysql_real_escape_string()

Autant prendre de "bonnes habitudes" tout de suite :
D'après toi, lequel de ton code et du mien est le plus clair et le plus "propre" ?
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
<form name="list" method="post" action="admin6.php">
<table id="hovertable">
<thead>
	<tr>
		<th>table:</th>
		<th>personnel:</th>
		<th>service:</th>
		<th>pour la periode du:</th>
		<th>au:</th><th>motif:</th>
		<th>type:</th><th>date:</th>
		<th>effectue:</th><th>à modifier:</th>
		<th>annotation:</th>
	</tr>
</thead>
<tbody>
<?php
while($ligne = mysql_fetch_object($res))
{
?>
	<tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
		<td><?php echo $ligne->nom_table; ?></td>
		<td><?php echo $ligne->nom; ?></td>
		<td><?php echo $ligne->service; ?></td>
		<td><?php echo $ligne->date_debut; ?></td>
		<td><?php echo $ligne->date_fin; ?></td>
		<td><?php echo $ligne->motif; ?></td>
		<td><?php echo $ligne->type; ?></td>
		<td><?php echo $ligne->date; ?></td>
		<td><?php echo $ligne->effectue; ?></td>
		<td><input type="radio" name="modif" value="<?php echo $ligne->nmr; ?>" /></td>
		<td><input type="text" name="annotation" /></td>
	</tr>
<?php
}
?>
</tbody>
</table>
<div><input type="submit" name="envoyer" value="envoyer"/></div>
<br />
</form>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 10h05   #3
Membre régulier
 
Étudiant
Inscription : octobre 2010
Messages : 92
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 92
Points : 78
Points : 78
Code illisible, puis merci d'utiliser les balises [ CODE][/CODE ] si tu veux un debug.
zeclad01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 10h06   #4
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Code :
1
2
3
4
5
6
<table id="hovertable">
<form name="list" METHOD="POST" ACTION="admin6.php">
....
</table>
....
</form>
Vois-tu le problème ?
Ca ira mieux comme ca :
Code :
1
2
3
4
5
6
<form name="list" method="post" action="admin6.php">
<table id="hovertable">
....
</table>
....
</form>
Au fait, pour ton problème :
Code :
$sql2 = "INSERT INTO fusion (annotation) VALUES ('".mysql_real_escape_string($_SESSION['annotation'])."');";
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 10h42   #5
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
Tout d'abord merci pour vos réponses et désolé pour la présentation, je vais faire un effort.

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
 
<table id="hovertable">
<?php
$_SESSION['modif']=$_POST["modif"];
 
$_SESSION['annotation']=$_POST["annotation"];
$oui="oui";
 
$sql1 = 'update fusion set effectue = "'.$oui.'" and annotation = "'.$_SESSION['annotation'].'"  where nmr = "'.$_SESSION['modif'].'"';
$res1= mysql_query($sql1);
 
$sql="select * from fusion WHERE effectue like 'oui' order by nmr desc";
$res= mysql_query($sql);
 
echo '<tr>
              <th>table:</th>
              <th>personnel:</th>
              <th>service:</th>
              <th>pour la periode du:</th>
              <th>au:</th>
              <th>motif:</th>
              <th>type:</th>
              <th>date:</th>
              <th>effectue:</th>
              <th>annotation:</th>
       </tr>';
while($ligne = mysql_fetch_object($res))
    {	
	 echo '<tr>
                       <td>'.$ligne->nom_table.'</td>
                       <td>'.$ligne->nom.'</td>
                       <td>'.$ligne->service.'</td>
                       <td>'.$ligne->date_debut.'</td>
                       <td>'.$ligne->date_fin.'</td>
                       <td>'.$ligne->motif.'</td>
                       <td>'.$ligne->type.'</td>
                       <td>'.$ligne->date.'</td>
                       <td>'.$ligne->effectue.'</td>
                       <td>'.$ligne->annotation.'</td>
                </tr>';
	}
 
?>
</table>
Donc voila une partie du code de admin6 celle sensée afficher l'annotation saisie dans le champ texte a la page précédente et récupérée via le post, j'espère que c'est plus lisible.

Dans mon tableau sur la page précédente je me retrouve donc avec une colonne entière d'input type text mais je ne veux récupérer que la valeur du champ qui est rempli ( celui à côté du bouton radio modifié qui sera coché , le but étant ici de mettre une tâche effectué en traitée : oui et de mettre une annotation sur la manière dont le problème a été résolu).

Je précise que je suis sur un réseau intranet .
mac-addict est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 11h02   #6
Membre régulier
 
Étudiant
Inscription : octobre 2010
Messages : 92
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 92
Points : 78
Points : 78
Est-ce que tes variables ne sont pas vides lorsque tu les récupères/affectes ?

Code :
1
2
echo "SESSION : ".$_SESSION['annotation'];
echo "POST : ".$_POST['annotation'];
zeclad01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 11h11   #7
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
effectivement , elles restent vide même si je rempli le champ annotation dans mon tableau.

Je ne comprends pas
mac-addict est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 11h26   #8
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
J'ai vu le problème !

Il faut identifier tes input pour chaque ligne du tableau (sinon, il ne prend que le dernier) : name="modif[]" et name="annotation[]"

Pour chaque enregistrement (ligne), tu dois sûrement avoir un id (int, auto-increment) :
=> on va mettre cet id comme indice des array modif[] et annotation[] :
Code :
1
2
		<td><input type="radio" name="modif[<?php echo $ligne->id; ?>]" value="<?php echo $ligne->nmr; ?>" /></td>
		<td><input type="text" name="annotation[<?php echo $ligne->id; ?>]" /></td>
=> tu récupères ici des array :
Code :
1
2
$array_modif = $_POST['modif']; // array
$array_annotation = $_POST['annotation']; // array
qu'il faut donc traiter comme suit :
Code :
1
2
3
4
5
6
foreach($array_modif as $key => $val) {
   // [...] $key est en fait l'id !
}
foreach($array_annotation as $key => $val) {
   // [...] $key est en fait l'id !
}
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 11h31   #9
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Et si j'ai bien compris : ce n'est pas une requete INSERT que tu dois faire.

Mais une requete UPDATE pour chaque ligne !
Code :
1
2
3
4
5
6
7
8
<?php
foreach($_POST['annotation'] as $key => $val) {
	// $key est l'indice de l'array (ici = l'id de l'enregistrement !)
	// $val est la valeur
	$sql2 = "UPDATE fusion SET annotation = '".mysql_real_escape_string($val)."' WHERE id = '".intval($key)."';";
	// ...
}
?>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 12h03   #10
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
Tout d'abord un grand merci , je comprends le principe de parcourir chaque élément un par un et effectivement cela parait très utile.

Cependant dans ma base l'id c nmr (pour numéro) , je dois donc remplacer id par nmr dans mon cas c'et bien cela?

De plus en mettant nmr a la place de id pour numéroter mes array
J'obtiens comme rentrée dans mes bases : Array pour chaque annotation.

Voila ce que j'ai mis sur la première page
Code :
1
2
<td><input type="radio" name="modif[<?php echo $ligne->nmr; ?>]" value="<?php echo $ligne->nmr; ?>" /></td>
<td><input type="text" name="annotation[<?php echo $ligne->nmr; ?>]" /></td>
et sur ma 2ième page j'ai fait ceci:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$array_modif = $_POST['modif']; // array
$array_annotation = $_POST['annotation']; // array
$oui="oui";
 
foreach($array_modif as $key => $val) 
{
$sql1 = 'update fusion set effectue = "'.$oui.'" where nmr = "'.$array_modif.'"';
$res1= mysql_query($sql1);
}
foreach($array_annotation as $key => $val) 
{
$sql2 = 'update fusion set annotation = "'.$array_annotation.'"';
$res2 = mysql_query($sql2);
}
Je sais que je suis nul lol, mais je pense que la soutien ne doit pas être loin , c'est juste que je m'y prends mal , car je ne maitrise pas ce que j'utilise.
D'avance merci.
mac-addict est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 13h04   #11
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Moi aussi, j'ai eu du mal avec foreach($blabla as $key => $val) ....
Remplace :
Code :
1
2
3
4
5
foreach($array_annotation as $key => $val) 
{
$sql2 = 'update fusion set annotation = "'.$array_annotation.'"';
$res2 = mysql_query($sql2);
}
par (ce que j'avais pourtant écrit ici !) :
Code :
1
2
3
4
5
6
7
 
foreach($array_annotation as $key => $val) // se traduit par : "pour chaque couple indice=>valeur de l'array ..."
{
	// ici, $key (indice de l'array) a été défini comme nmr (l'id dans la bdd)
	$sql2 = "UPDATE fusion SET annotation = '".mysql_real_escape_string($val)."' WHERE nmr = '".intval($key)."';";
	$res2 = mysql_query($sql2);
}
Tu peux jeter un oeil ici aussi : Apostrophes ou guillemets : lesquels choisir ?

ps : Si tu veux voir à quoi ressemble l'array (couples [indice] => valeur), affiche :
Code :
1
2
3
4
5
<?php
echo '<pre>';
print_r($array_annotation);
echo '</pre>';
?>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 14h14   #12
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
si je fais cela :
Code :
1
2
3
4
5
<?php
echo '<pre>';
print_r($array_annotation);
echo '</pre>';
?>
j'obtiens ceci :

Array
(
[nmr; ?>] => test4
)


et si je fais ceci :
Code :
1
2
3
4
5
<?php
echo '<pre>';
print_r($array_modif);
echo '</pre>';
?>
j'obtiens ceci :

Array
(
[nmr; ?>] => oui
)

oui correspondant bien a la valeur que je veux mettre si le bouton radio est coché et test4 étant la valeur mise dans le champ texte.

Donc désolé de poster à nouveau mais ou est le souci ?
mac-addict est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 14h30   #13
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Code :
1
2
3
4
Array
(
[nmr; ?>] => oui
)
Tu ne vois pas comme un défaut ?
nmr; ?> -> on devrait avoir l'indice (un nombre entier)
Manifestement, une erreur dans le code ... au niveau du formulaire

Peux-tu remontrer le bout de code (tes 2 input) ?

Ca devrait ressembler à ca :
Code :
1
2
		<td><input type="radio" name="modif[<?php echo $ligne->nmr; ?>]" value="<?php echo $ligne->nmr; ?>" /></td>
		<td><input type="text" name="annotation[<?php echo $ligne->nmr; ?>]" /></td>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 14h41   #14
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
j'ai changé et j'ai mis ça à la place dans mon input :
Code :
<td><input type="radio" name="modif[<?php echo '.$ligne->nmr.'; ?>]" value="oui" /></td>
résultat j'obtiens ceci :

Array
(
[] => oui
)
mac-addict est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 14h54   #15
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
C'est sûr qu'en passant le code au shaker ... ca marche moins bien.

Il te suffit de copier-coller ceci (sans rien changer !) :
Code :
1
2
		<td><input type="radio" name="modif[<?php echo $ligne->nmr; ?>]" value="oui" /></td>
		<td><input type="text" name="annotation[<?php echo $ligne->nmr; ?>]" /></td>
Astuce : clique sur "sélectionner tout", ci-dessus (en haut à droite du code) ------------------------------^
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 15h35   #16
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
j'ai rigoureusement copié collé vos 2 lignes et quand je teste le résultat est toujours le même à savoir :

Array
(
[nmr; ?>] => oui
)
mac-addict est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 15h39   #17
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Si tu ne nous mets pas ton code, on ne pourra pas te dire d'où vient l'erreur ...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 15h44   #18
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
donc sur la première page j'ai 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
<form name="list" METHOD="POST" ACTION="admin6.php">
<table id="hovertable">
<?php
 
echo '<tr>
<th>table:</th>
<th>personnel:</th>
<th>service:</th>
<th>pour la periode du:</th>
<th>au:</th>
<th>motif:</th>
<th>type:</th>
<th>date:</th>
<th>effectue:</th>
<th>à modifier:</th>
<th>annotation:</th>
</tr>';
while($ligne = mysql_fetch_object($res))
 
	{	
	 echo '<tr onmouseover="this.style.backgroundColor="#ffff66";" onmouseout="this.style.backgroundColor="#d4e3e5";">
	 <td>'.$ligne->nom_table.'</td>
	 <td>'.$ligne->nom.'</td>
	 <td>'.$ligne->service.'</td>
	 <td>'.$ligne->date_debut.'</td>
	 <td>'.$ligne->date_fin.'</td>
	 <td>'.$ligne->motif.'</td>
	 <td>'.$ligne->type.'</td>
	 <td>'.$ligne->date.'</td>
	 <td>'.$ligne->effectue.'</td>
	 <td><input type="radio" name="modif[<?php echo $ligne->nmr; ?>]" value="oui" /></td>
	 <td><input type="text" name="annotation[<?php echo $ligne->nmr; ?>]" /></td>
	 </tr>';
	}
 
?>
</table>
<div><input type=submit name=envoyer value=envoyer></div>
<br>
</form>
et sur la deuxième j'ai 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
41
42
43
44
45
46
47
48
49
50
51
52
<table id="hovertable">
<?php
$array_modif = $_POST['modif']; 
$array_annotation = $_POST['annotation']; 
$oui="oui";
 
foreach($array_modif as $key => $val) 
{
$sql1 = "update fusion set effectue = = '".mysql_real_escape_string($val)."' WHERE nmr = '".intval($key)."';";
$res1= mysql_query($sql1);
}
foreach($array_annotation as $key => $val) 
{
 
	$sql2 = "UPDATE fusion SET annotation = '".mysql_real_escape_string($val)."' WHERE nmr = '".intval($key)."';";
	$res2 = mysql_query($sql2);
}
 
$sql="select * from fusion WHERE effectue like 'oui' order by nmr desc";
$res= mysql_query($sql);
 
echo '<tr>
<th>table:</th>
<th>personnel:</th>
<th>service:</th>
<th>pour la periode du:</th>
<th>au:</th>
<th>motif:</th>
<th>type:</th>
<th>date:</th>
<th>effectue:</th>
<th>annotation:</th>
</tr>';
 
while($ligne = mysql_fetch_object($res))
    {	
	 echo '<tr>
<td>'.$ligne->nom_table.'</td>
<td>'.$ligne->nom.'</td>
<td>'.$ligne->service.'</td>
<td>'.$ligne->date_debut.'</td>
<td>'.$ligne->date_fin.'</td>
<td>'.$ligne->motif.'</td>
<td>'.$ligne->type.'</td>
<td>'.$ligne->date.'</td>
<td>'.$ligne->effectue.'</td>
<td>'.$ligne->annotation.'</td>
</tr>';
	}
 
?>
</table>
mac-addict est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 15h51   #19
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Regarde la couleur syntaxique des lignes 31 et 32 du 1er code ci-dessus :
ca devrait te mettre la puce à l'oreille !
On constate une différence dans les couleurs !

Le fait que tu as bien copié-collé les lignes (qui contiennent des echo)
... sauf que ...
tu les as copiées à l'intérieur d'un autre echo !

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
	 echo '<tr onmouseover="this.style.backgroundColor="#ffff66";" onmouseout="this.style.backgroundColor="#d4e3e5";">
	 <td>'.$ligne->nom_table.'</td>
	 <td>'.$ligne->nom.'</td>
	 <td>'.$ligne->service.'</td>
	 <td>'.$ligne->date_debut.'</td>
	 <td>'.$ligne->date_fin.'</td>
	 <td>'.$ligne->motif.'</td>
	 <td>'.$ligne->type.'</td>
	 <td>'.$ligne->date.'</td>
	 <td>'.$ligne->effectue.'</td>
	 <td><input type="radio" name="modif['.$ligne->nmr.']" value="oui" /></td>
	 <td><input type="text" name="annotation['.$ligne->nmr.']" /></td>
	 </tr>';
A moins que ton écran soit en noir & blanc, on voit nettement la différence, non ?

ps : je mettrais même (pour afficher les annotations déjà enregistrées) :
Code php :
1
2
3
4
5
	 echo '<tr 
....
	 <td><input type="text" name="annotation['.$ligne->nmr.']" value="'.$ligne->annotation.'" /></td>
....
	 </tr>';
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 16h12   #20
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
Un grand merci à toi jreaux62 , effectivement cela venait bien de là.

Une autre erreur bête de copier coller me bloquait également , ligne 9 dans LA 2ième partie j'avais :
Code :
$sql1 = "update fusion set effectue = = '".mysql_real_escape_string($val)."' WHERE nmr = '".intval($key)."';";
Au lieu de :
Code :
$sql1 = "update fusion set effectue = '".mysql_real_escape_string($val)."' WHERE nmr = '".intval($key)."';";
Un simple égal en trop , donc encore merci pour tout
mac-addict 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 09h34.


 
 
 
 
Partenaires

Hébergement Web