Problème SQL PHP HTML !!!
9 messages
• Page 1 sur 1
- hx.jonathan
- WRInaute discret

- Messages: 162
- Inscription: 2 Mar 2005
Problème SQL PHP HTML !!!
Bonjour à tous,
J'ai un petit souci.
J'ai crée une table "JOUR" avec phpmyadmin. Mon but est que l'utilisateur qui mettra à jour ces informations sur le site web puisse donc afficher tous les enregistrements de cette table, faire les modifs qu'il veut et ensuite cliquer sur le bouton valider en bas de page afin de sauver les modifications apportées.
Je fais donc une boucle afin de lister tous les enregistrements. Mais quand je cliquer sur envoyer il me modifie tous les champs avec la même valeur.
Je ne comprends pas. Si vous pouviez m'aider ou me donner un exemple qui marche afin que je comprenne la bonne manière de faire. Merci
Dans ma page php je fais ceci :
--------------------------------------------------------------------------------
<!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>
Agenda
<form action="check.php" method="post">
<table>
<tr>
<?php
connexion_DB('bd_club'); //fonction de connexion à la base
$select = mysql_query('SELECT * FROM jour');
while ($donnees = mysql_fetch_array($select)) // On fait une boucle pour lister les enregistrements
{ // début de la boucle
?>
<td><input name="id_jour" value="<?php echo $donnees['id_jour']; ?>" /></td>
<td><input name="num" value="<?php echo $donnees['num']; ?>" /></td>
<td><input name="nom" value="<?php echo $donnees['nom']; ?>" /></td>
<td><input name="autres" value="<?php echo $donnees['autres']; ?>" /></td>
</tr>
<?php
} // Fin de la boucle
?>
</table>
<input type="submit" value="Envoyer" />
</form>
<?php
deconnexion_DB();
?>
</body>
</html>
-----------------------------------------------------------------------------
Voici mon problème.
J'obtiens bien un tableau avec tous les enregistrements.
Mais comment faire pour enregistrer toutes ces informatins dans ma table ?
J'ai un petit souci.
J'ai crée une table "JOUR" avec phpmyadmin. Mon but est que l'utilisateur qui mettra à jour ces informations sur le site web puisse donc afficher tous les enregistrements de cette table, faire les modifs qu'il veut et ensuite cliquer sur le bouton valider en bas de page afin de sauver les modifications apportées.
Je fais donc une boucle afin de lister tous les enregistrements. Mais quand je cliquer sur envoyer il me modifie tous les champs avec la même valeur.
Je ne comprends pas. Si vous pouviez m'aider ou me donner un exemple qui marche afin que je comprenne la bonne manière de faire. Merci
Dans ma page php je fais ceci :
--------------------------------------------------------------------------------
<!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>
Agenda
<form action="check.php" method="post">
<table>
<tr>
<?php
connexion_DB('bd_club'); //fonction de connexion à la base
$select = mysql_query('SELECT * FROM jour');
while ($donnees = mysql_fetch_array($select)) // On fait une boucle pour lister les enregistrements
{ // début de la boucle
?>
<td><input name="id_jour" value="<?php echo $donnees['id_jour']; ?>" /></td>
<td><input name="num" value="<?php echo $donnees['num']; ?>" /></td>
<td><input name="nom" value="<?php echo $donnees['nom']; ?>" /></td>
<td><input name="autres" value="<?php echo $donnees['autres']; ?>" /></td>
</tr>
<?php
} // Fin de la boucle
?>
</table>
<input type="submit" value="Envoyer" />
</form>
<?php
deconnexion_DB();
?>
</body>
</html>
-----------------------------------------------------------------------------
Voici mon problème.
J'obtiens bien un tableau avec tous les enregistrements.
Mais comment faire pour enregistrer toutes ces informatins dans ma table ?
-

Krysss - WRInaute discret

- Messages: 139
- Inscription: 2 Fév 2007
Regarde ton code dans ta boucle:
Tu liste bien toutes les infos de la base apparement mais tu as toujours les mêmes noms de champs
<input name="id_jour"
<input name="num"
<input name="nom"
<input name="autres"
Quand tu vas poster ton formulaire ces variables vont voir leur valeurs s'ecraser...
Pour remedier à celà il faut en premier différencier les variables par exemple :
...
$i=0;
while ($donnees = mysql_fetch_array($select)) // On fait une boucle pour lister les enregistrements
{ // début de la boucle
?>
<td><input name="id_jour<?=$i;?>" value="<?php echo $donnees['id_jour']; ?>" /></td>
<td><input name="num<?=$i;?>" value="<?php echo $donnees['num']; ?>" /></td>
<td><input name="nom<?=$i;?>" value="<?php echo $donnees['nom']; ?>" /></td>
<td><input name="autres<?=$i;?>" value="<?php echo $donnees['autres']; ?>" /></td>
</tr>
<?php
$i++;
} // Fin de la boucle
...
Je te laisse deviner la suite...
Tu liste bien toutes les infos de la base apparement mais tu as toujours les mêmes noms de champs
<input name="id_jour"
<input name="num"
<input name="nom"
<input name="autres"
Quand tu vas poster ton formulaire ces variables vont voir leur valeurs s'ecraser...
Pour remedier à celà il faut en premier différencier les variables par exemple :
...
$i=0;
while ($donnees = mysql_fetch_array($select)) // On fait une boucle pour lister les enregistrements
{ // début de la boucle
?>
<td><input name="id_jour<?=$i;?>" value="<?php echo $donnees['id_jour']; ?>" /></td>
<td><input name="num<?=$i;?>" value="<?php echo $donnees['num']; ?>" /></td>
<td><input name="nom<?=$i;?>" value="<?php echo $donnees['nom']; ?>" /></td>
<td><input name="autres<?=$i;?>" value="<?php echo $donnees['autres']; ?>" /></td>
</tr>
<?php
$i++;
} // Fin de la boucle
...
Je te laisse deviner la suite...
- hx.jonathan
- WRInaute discret

- Messages: 162
- Inscription: 2 Mar 2005
Salut,
Tout d'abord merci de ta réponse.
Ben en fait oui c'est normal que j'ai les mêmes champs. En fait, voici comment se présenterait l'interface de mise à jour:
accès à la BDD pour affichier tous oles enregistrements. Il s'agit en fait de jours donc par exemple:
id_jour(unique) num (numéro du jour) nom(lundi...) autres
-------------------------------------
1 14 lundi erfeef
2 15 mardi
3 16 mercredi
....
1) la personne voit tous ces enregistrements dans des zones de texte.Ceux-ci doivent donc etre modifiables
2) elle doit pouvoir modifier ce qu'elle veut
3) un bouton unique doit permettre de sauvegarder les changements dans la BDD
Tu vois peut être mieux ce que je souhaite comme ça.
Dans ton explication je ne comprends ce qu'est $i=0 ??? pourquoi i et pourquoi 0.
A quoi est censé servir ce bout de code <td>..<?=$i;?></td> ???
Je crois que je ne comprends pas bien la logique. Pourrais-tu m'éclaircir à ce niveau ?
Un grand merci. Je ne suis peut etre pas très clair désolé.
[/img]
Tout d'abord merci de ta réponse.
Ben en fait oui c'est normal que j'ai les mêmes champs. En fait, voici comment se présenterait l'interface de mise à jour:
accès à la BDD pour affichier tous oles enregistrements. Il s'agit en fait de jours donc par exemple:
id_jour(unique) num (numéro du jour) nom(lundi...) autres
-------------------------------------
1 14 lundi erfeef
2 15 mardi
3 16 mercredi
....
1) la personne voit tous ces enregistrements dans des zones de texte.Ceux-ci doivent donc etre modifiables
2) elle doit pouvoir modifier ce qu'elle veut
3) un bouton unique doit permettre de sauvegarder les changements dans la BDD
Tu vois peut être mieux ce que je souhaite comme ça.
Dans ton explication je ne comprends ce qu'est $i=0 ??? pourquoi i et pourquoi 0.
A quoi est censé servir ce bout de code <td>..<?=$i;?></td> ???
Je crois que je ne comprends pas bien la logique. Pourrais-tu m'éclaircir à ce niveau ?
Un grand merci. Je ne suis peut etre pas très clair désolé.
[/img]
-

Krysss - WRInaute discret

- Messages: 139
- Inscription: 2 Fév 2007
je me réexplique si tu as toujours les mêmes champs (on va prendre id_jour par exemple) dans ta page tu auras :
<td><input name="id_jour" value="journumero1" /></td>
.....
.....
.....
<td><input name="id_jour" value="journumero2"/></td>
.....
.....
.....
<td><input name="id_jour" value="journumero3"/></td>
.....
.....
.....
Quand tu vas poster ton formulaire, tu vas avoir id_jour qui va etre envoyé comme variable. Mais tu ne pourra pas récupérer les trois valeur différentes de id_jour. C'est comme si tu faisais :
$id_jour = 1;
$id_jour = 2845;
$id_jour = 0;
Ben id jour là si tu l'affiches il sera égal à 0;
Comprends-tu le problème ?
<td><input name="id_jour" value="journumero1" /></td>
.....
.....
.....
<td><input name="id_jour" value="journumero2"/></td>
.....
.....
.....
<td><input name="id_jour" value="journumero3"/></td>
.....
.....
.....
Quand tu vas poster ton formulaire, tu vas avoir id_jour qui va etre envoyé comme variable. Mais tu ne pourra pas récupérer les trois valeur différentes de id_jour. C'est comme si tu faisais :
$id_jour = 1;
$id_jour = 2845;
$id_jour = 0;
Ben id jour là si tu l'affiches il sera égal à 0;
Comprends-tu le problème ?
- hx.jonathan
- WRInaute discret

- Messages: 162
- Inscription: 2 Mar 2005
oui ok, je comprends.
Mais alors comment pourrais-je obtenir ces différentes valeurs de id_jour ?
Mais alors comment pourrais-je obtenir ces différentes valeurs de id_jour ?
-

Marie-Aude - Modérateur

- Messages: 11173
- Inscription: 5 Juin 2006
le $i est un index supplémentaire, qui permet de créer dans ta boucle des variables différentes.
Le premier jour sera $id_jour=0, et plus id_jour, le deuxième jour sera id_jour=1, etc... tu ajoutes ainsi une colonne supplémentaire à ton tableau qui te permet de différencier plusieurs lignes
Le premier jour sera $id_jour=0, et plus id_jour, le deuxième jour sera id_jour=1, etc... tu ajoutes ainsi une colonne supplémentaire à ton tableau qui te permet de différencier plusieurs lignes
- hx.jonathan
- WRInaute discret

- Messages: 162
- Inscription: 2 Mar 2005
Salut,
En fait, mon besoin est simple :
je dois aller chercher des infos dans la BDD (ça ça marche), ensuite les afficher à l'écran pour pouvoir les modifier,finalement je dois réintroduire ces infos dans la BDD pour prendre en compte les modifs.
N'aurais-tu pas un script pour moi car je ne m'en sors pas et c'est assez important.
Merci.[/img]
En fait, mon besoin est simple :
je dois aller chercher des infos dans la BDD (ça ça marche), ensuite les afficher à l'écran pour pouvoir les modifier,finalement je dois réintroduire ces infos dans la BDD pour prendre en compte les modifs.
N'aurais-tu pas un script pour moi car je ne m'en sors pas et c'est assez important.
Merci.[/img]
-

Krysss - WRInaute discret

- Messages: 139
- Inscription: 2 Fév 2007
C'est là l'utilité du $i dans mon premier post.
Quand tu affiches tes lignes tu fais ça :
$i=0;
while ($donnees = mysql_fetch_array($select)) // On fait une boucle pour lister les enregistrements
{ // début de la boucle
?>
<td><input name="id_jour<?=$i;?>" value="<?php echo $donnees['id_jour']; ?>" /></td>
<td><input name="num<?=$i;?>" value="<?php echo $donnees['num']; ?>" /></td>
<td><input name="nom<?=$i;?>" value="<?php echo $donnees['nom']; ?>" /></td>
<td><input name="autres<?=$i;?>" value="<?php echo $donnees['autres']; ?>" /></td>
</tr>
<?php
$i++;
} // Fin de la boucle
le $i va prendre la valeur 0 quand la premiere boucle va être effectuée puis 1 pour la seconde puis 2 pour la troisieme......
Dans le HTML, le $i va donc ajouter un nombre apres les variables et ce pour chaque ligne.
Tu auras dans ton HTML
<tr>
<td><input name="id_jour0" value="donnee_jour" /></td>
<td><input name="num0" value="donnee_num" /></td>
<td><input name="nom0" value="donnee_nom" /></td>
<td><input name="autres0" value="donnee_autres" /></td>
</tr>
<tr>
<td><input name="id_jour1" value="donnee_jour" /></td>
<td><input name="num1" value="donnee_num" /></td>
<td><input name="nom1" value="donnee_nom" /></td>
<td><input name="autres1" value="donnee_autres" /></td>
</tr>
<tr>
<td><input name="id_jour2" value="donnee_jour" /></td>
<td><input name="num2" value="donnee_num" /></td>
<td><input name="nom2" value="donnee_nom" /></td>
<td><input name="autres2" value="donnee_autres" /></td>
</tr>
Voilà pour chaque lignes les variables id_jour, num, nom et autres seront differentes et donc elles seront toutes postées sans s'écraser.
Pour l'enregistrement il faut faire une boucle qui enregistre les données de chaque lignes.
Petite précision il manque un "type" dans tes <input>
Quand tu affiches tes lignes tu fais ça :
$i=0;
while ($donnees = mysql_fetch_array($select)) // On fait une boucle pour lister les enregistrements
{ // début de la boucle
?>
<td><input name="id_jour<?=$i;?>" value="<?php echo $donnees['id_jour']; ?>" /></td>
<td><input name="num<?=$i;?>" value="<?php echo $donnees['num']; ?>" /></td>
<td><input name="nom<?=$i;?>" value="<?php echo $donnees['nom']; ?>" /></td>
<td><input name="autres<?=$i;?>" value="<?php echo $donnees['autres']; ?>" /></td>
</tr>
<?php
$i++;
} // Fin de la boucle
le $i va prendre la valeur 0 quand la premiere boucle va être effectuée puis 1 pour la seconde puis 2 pour la troisieme......
Dans le HTML, le $i va donc ajouter un nombre apres les variables et ce pour chaque ligne.
Tu auras dans ton HTML
<tr>
<td><input name="id_jour0" value="donnee_jour" /></td>
<td><input name="num0" value="donnee_num" /></td>
<td><input name="nom0" value="donnee_nom" /></td>
<td><input name="autres0" value="donnee_autres" /></td>
</tr>
<tr>
<td><input name="id_jour1" value="donnee_jour" /></td>
<td><input name="num1" value="donnee_num" /></td>
<td><input name="nom1" value="donnee_nom" /></td>
<td><input name="autres1" value="donnee_autres" /></td>
</tr>
<tr>
<td><input name="id_jour2" value="donnee_jour" /></td>
<td><input name="num2" value="donnee_num" /></td>
<td><input name="nom2" value="donnee_nom" /></td>
<td><input name="autres2" value="donnee_autres" /></td>
</tr>
Voilà pour chaque lignes les variables id_jour, num, nom et autres seront differentes et donc elles seront toutes postées sans s'écraser.
Pour l'enregistrement il faut faire une boucle qui enregistre les données de chaque lignes.
Petite précision il manque un "type" dans tes <input>
- hx.jonathan
- WRInaute discret

- Messages: 162
- Inscription: 2 Mar 2005
Salut,
Merci pour ta réponse.
J'ai bien compris mais j'ai encore 2 points d'interrogation:
1) pq il ne s'incrémente pas malgré que j'ai respecté ton code.
2) ou dois-je alors et comment faire cette boucle :
merci pour tout.
Merci pour ta réponse.
J'ai bien compris mais j'ai encore 2 points d'interrogation:
1) pq il ne s'incrémente pas malgré que j'ai respecté ton code.
2) ou dois-je alors et comment faire cette boucle :
merci pour tout.
9 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Problème SQL et PHP
- [résolu] Problème SQL / PHP
- problème requête SQL dans une fonction PHP
- petite aide pour petit probleme sql et php ( de variable
- Probleme d'UR de PHP en HTML
- Problème d'exclution de .html & .php
- Probleme etrange html/javascript/php
- probleme forum php sur page HTML
- [résolu]problème d'une simple redirection .php en .html
- [Résolu] Problème includes php-répertoire des images en HTML
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
