Problème SQL PHP HTML !!!
9 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
- hx.jonathan
- WRInaute occasionnel

- Messages: 115
- Inscription: Mer Mar 02, 2005 17:42
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 ?
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 occasionnel

- Messages: 115
- Inscription: Mer Mar 02, 2005 17:42
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]
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 occasionnel

- Messages: 115
- Inscription: Mer Mar 02, 2005 17:42
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 - WRInaute accro

- Messages: 4942
- Inscription: Lun Juin 05, 2006 14:15
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 occasionnel

- Messages: 115
- Inscription: Mer Mar 02, 2005 17:42
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]
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 occasionnel

- Messages: 115
- Inscription: Mer Mar 02, 2005 17:42
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
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 :
- 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
- 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
- Google prend il en compte le code html du SQL ?
- pb sql et php
- Fonctions php et sql
- Double table SQL et PHP
- fonction php avec du SQL
- Requete sql complexe en php
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

le forum