Transmission de plusieurs valeurs depuis un formulaire
Résolu/Fermé
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
-
Modifié par crapoulou le 14/02/2015 à 21:35
Utilisateur anonyme - 25 févr. 2015 à 08:39
Utilisateur anonyme - 25 févr. 2015 à 08:39
A voir également:
- Transmission de plusieurs valeurs depuis un formulaire
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Formulaire de contact le bon coin introuvable - Forum Réseaux sociaux
- Le formulaire rempli - Guide
- Quand on visite cette page, des messages sont échangés entre le navigateur et le site web. des extraits des messages échangés lors de la première connexion sont reproduits ci-dessous. des valeurs ont été remplacées par des numéros. retrouvez chacune de ces valeurs. - Forum Windows 10
3 réponses
Utilisateur anonyme
14 févr. 2015 à 20:50
14 févr. 2015 à 20:50
Bonjour,
pas facile de comprendre ce que tu veux dire - enfin pour moi - Qu'entends-tu par " ... valeur tarif " ?
si c'est juste pour ajouter un entier incrémenté de 1 pour chaque ligne de ta table, tu peux le faire dans ton fichier de traitement .php
Cdt
pas facile de comprendre ce que tu veux dire - enfin pour moi - Qu'entends-tu par " ... valeur tarif " ?
si c'est juste pour ajouter un entier incrémenté de 1 pour chaque ligne de ta table, tu peux le faire dans ton fichier de traitement .php
Cdt
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
20
Modifié par emrh le 14/02/2015 à 21:02
Modifié par emrh le 14/02/2015 à 21:02
Merci ludobabs de t'interresser à mon problème...
En image c'est mieux :
Je veux envoyer à "modif_tarif.php" les éventuels champs modifié, tout en conservant les autres bien sûr et corriger ma base de données
Je voudrai modifier la chambre à 14€ pour la mettre à 104 € par exemple. Les champs des noms de chambres ne sont pas modifiables...
En image c'est mieux :
Je veux envoyer à "modif_tarif.php" les éventuels champs modifié, tout en conservant les autres bien sûr et corriger ma base de données
Je voudrai modifier la chambre à 14€ pour la mettre à 104 € par exemple. Les champs des noms de chambres ne sont pas modifiables...
tu ne dois pas utiliser l'index primaire ( id ) de ta table comme indice d'identification d'une chambre, en effet, si un jour tu dois exporter ta table ( structure et données / ou juste données ), ou que tu l'optimises, ou n'importe quoi d'autre, les lignes vides de ta table ne seront pas copiées et donc l'id ne correspondra plus. Je te conseille de rajouter un champ id_chambre qui lui sera une donnée pure ( ce ne sera pas un index ) tu peux mettre ce champ en auto-increment.
dans les grandes lignes :
dans ton formulaire
ta mise à jour se ferait comme ça dans modif_tarif.php,
C'est le principe, en espérant que ça puisse t'aider
dans les grandes lignes :
dans ton formulaire
<?php while ($donnees = mysql_fetch_array($sql)) { ?> <tr> <td> <?php echo $donnees['chambre'] ;?> </td> <td> <input name="<?php echo $donnees['id_chambre']; ?>" value="<?php echo $donnees['prix'] ;?>" /> </td> </tr> <?php } ?>
ta mise à jour se ferait comme ça dans modif_tarif.php,
while ($test = mysql_fetch_array($_POST)) { UPDATE `ma_table` SET `prix`= $test['prix'] WHERE `id_chambre`= $test['id_chambre']; } ?>
C'est le principe, en espérant que ça puisse t'aider
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
20
>
Utilisateur anonyme
19 févr. 2015 à 23:22
19 févr. 2015 à 23:22
Je te remercie ludobabs pour ton aide...
J'ai donc ajouté comme tu l'expliques une colonne dans ma bdd "id_chambre".
J'ai ensuite rempli manuellement chacun des champs en attribuant le même
n° id_chambre que id, car pour l'instant il n'y a que peu d'éléments...
J'ai ensuite recopié ton code pour le formulaire, tout s'affiche bien, par contre pour
la modification des prix, sur la page modif_tarif.php j'ai l'erreur suivante :
Parse error: syntax error, unexpected '`' in /homepages/.../modif_tarif.php on line 25
Voici le code :
Je n'ai jamais été foutu de comprendre quand mettre un ` ou un ' ou un "...
J'ai tout essayé et je me demande, si finalement, compte tenu de la faible
quantité de dynamisme sur ce site, il ne serait pas judicieux de passer
finalement à PDO...
J'ai donc ajouté comme tu l'expliques une colonne dans ma bdd "id_chambre".
J'ai ensuite rempli manuellement chacun des champs en attribuant le même
n° id_chambre que id, car pour l'instant il n'y a que peu d'éléments...
J'ai ensuite recopié ton code pour le formulaire, tout s'affiche bien, par contre pour
la modification des prix, sur la page modif_tarif.php j'ai l'erreur suivante :
Parse error: syntax error, unexpected '`' in /homepages/.../modif_tarif.php on line 25
Voici le code :
while ($test = mysql_fetch_array($_POST)) {
UPDATE `tarifs` SET `prix`= $test['prix'] WHERE `id_chambre`= $test['id_chambre'];
}
Je n'ai jamais été foutu de comprendre quand mettre un ` ou un ' ou un "...
J'ai tout essayé et je me demande, si finalement, compte tenu de la faible
quantité de dynamisme sur ce site, il ne serait pas judicieux de passer
finalement à PDO...
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
20
Modifié par emrh le 21/02/2015 à 17:38
Modifié par emrh le 21/02/2015 à 17:38
Bon, me revoilà avec cette fois ci PDO,
Je bloque toujours pour la mise à jour de ma base de donnée, car j'ai pas trouvé
(ou mal cherché) sur Internet comment modifier UN champs dans PLUSIEURS enregistrements....
Voici mon code formulaire qui lui fonctionne :
Merci d'avance pour votre aide !
Je bloque toujours pour la mise à jour de ma base de donnée, car j'ai pas trouvé
(ou mal cherché) sur Internet comment modifier UN champs dans PLUSIEURS enregistrements....
Voici mon code formulaire qui lui fonctionne :
<?php
include ('connexion.php');
// Requête :
$sql = 'SELECT * FROM tarifs';
// Exécution :
$req = $DB->query($sql);
// Récupération des données
while ($data=$req->fetch(PDO::FETCH_OBJ)) { ?>
<tr>
<td><?php echo $data->chambre ;?></td>
<td><input name="<?php echo $donnees['id_chambre'] ;?>" value="<?php echo $data->prix ;?>" /> </td>
</tr>
<?php
}
?>
Merci d'avance pour votre aide !
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
20
>
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
Modifié par emrh le 25/02/2015 à 08:44
Modifié par emrh le 25/02/2015 à 08:44
Je viens poster ici la réponse à ma question car j'ai horreur de parcourir les forums
et tomber sur des post correspondant pile à ma question mais non résolu !
Voici donc le formulaire corrigé :
et le traitement de la page modif_tarif.php :
(Edit : N'oubliez pas de placer des closeCursor(); sur vos requêtes en bas de page)
En espérant que cela puisse aider quelqu'un !
Merci à tous ceux qui ont essayé de m'aider,
Merci à Carouge10 sur grafikart.fr pour avoir résolu mon problème !
et tomber sur des post correspondant pile à ma question mais non résolu !
Voici donc le formulaire corrigé :
<form method="post" action="modif_tarif.php">
<table>
<caption>Chambres présentes dans la base : </caption>
<thead> <!-- En-tête du tableau -->
<tr>
<th>Désignation</th>
<th>Prix TTC</th>
</tr>
</thead>
<tbody> <!-- Corps du tableau -->
<?php
// Récupération des données
while ($data=$req->fetch(PDO::FETCH_OBJ)) { ?>
<tr>
<td><?= $data->chambre ;?></td>
<td><input name="prix_chambre_<?= $data->id_chambre ;?>" value="<?= $data->prix ;?>" /> </td>
</tr>
<?php
}
?>
</tbody>
</table>
<input type="submit" value="Valider">
<input type="reset" value="Ré initialiser" />
</form>
et le traitement de la page modif_tarif.php :
// Requête : Permet de récupérer l'id des chambres pour modifier leur prix
$sql = 'SELECT id_chambre FROM tarifs';
// Exécution :
$req = $DB->query($sql);
// Préparation de la requête avec des marqueurs (?) pour modifier le prix des chambres
$req_update = $DB->prepare('UPDATE `tarifs` SET `prix`= ? WHERE `id_chambre`= ?');
// Tant que nous avons des chambres...
while ($data=$req->fetch(PDO::FETCH_OBJ)) {
// Création d'une variable contenant le nom de l'input où contenu le prix
// en fonction de l'id de la chambre
$prix_chambre = "prix_chambre_".$data->id_chambre;
// Exécution de la requête UPDATE et remplaçant dans l'ordre les marqueurs
// Le 1er marqueur (?) correspont au prix donc à $_POST[$prix_chambre],
// le 2ème correpond à l'id de la chambre
$req_update->execute(array($_POST[$prix_chambre], $data->id_chambre));
}
(Edit : N'oubliez pas de placer des closeCursor(); sur vos requêtes en bas de page)
En espérant que cela puisse aider quelqu'un !
Merci à tous ceux qui ont essayé de m'aider,
Merci à Carouge10 sur grafikart.fr pour avoir résolu mon problème !
Utilisateur anonyme
>
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
25 févr. 2015 à 08:33
25 févr. 2015 à 08:33
Bonjour merci de poster ta réponse.
--
--
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
14 févr. 2015 à 21:04
14 févr. 2015 à 21:04
'lut, pour ta gouverne, l'extension MySQL et ses fonctions
Cela s'explique par le fait que cette extension ne dispose pas de requêtes préparées, menant très fréquemment a des possibilités d'injection SQL, autrement dit à la modification ou destruction de ta BDD par n'importe qui.
Aussi, le dit module n'est plus mis à jour, donc toute faille de sécurité découverte dedans ne sera pas corrigée.
Regarde du coté de PDO; ou de l'extension MySQLi qui a l'avantage d'avoir un style de code proche du module MySQL.
mysql_*est obsolète et donc à ne plus utiliser, encore moins pour l'apprentissage de l'utilisation de BDD.
Cela s'explique par le fait que cette extension ne dispose pas de requêtes préparées, menant très fréquemment a des possibilités d'injection SQL, autrement dit à la modification ou destruction de ta BDD par n'importe qui.
Aussi, le dit module n'est plus mis à jour, donc toute faille de sécurité découverte dedans ne sera pas corrigée.
Regarde du coté de PDO; ou de l'extension MySQLi qui a l'avantage d'avoir un style de code proche du module MySQL.
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
20
14 févr. 2015 à 21:11
14 févr. 2015 à 21:11
Je te remercie de ta réponse...
Je pense que tant que je ne me serai pas mis sérieusement à PDO je ne posterai
plus de question dans aucun forum car on me répond toujours la même chose...
Il faut dire que je tends le bâton pour me faire battre !
Je pense que tant que je ne me serai pas mis sérieusement à PDO je ne posterai
plus de question dans aucun forum car on me répond toujours la même chose...
Il faut dire que je tends le bâton pour me faire battre !
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
>
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
14 févr. 2015 à 21:13
14 févr. 2015 à 21:13
Il faut dire que je tends le bâton pour me faire battre !C'est pas une menace non plus, juste un avertissement. L'extension MySQL souffre depuis le début de gros problème de design de toute façon...
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
20
>
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
Modifié par emrh le 14/02/2015 à 21:18
Modifié par emrh le 14/02/2015 à 21:18
Je le sais déjà....hélas,
(cf la réponse de Xavierdu34 sur https://forums.commentcamarche.net/forum/affich-31438375-remplir-un-array-a-partir-d-une-bdd
Mais pour l'instant je dois reconnaître que PDO me gonfle, me semble moins compréhensible et m'oblige à taper 10 lignes là ou j'en tapais 2 !
Edit : les forums sont pleins de "vieilles" aides en mysql, j'ai du mal à trouver des réponses aux questions que je me pose sur du PDO...
(cf la réponse de Xavierdu34 sur https://forums.commentcamarche.net/forum/affich-31438375-remplir-un-array-a-partir-d-une-bdd
Mais pour l'instant je dois reconnaître que PDO me gonfle, me semble moins compréhensible et m'oblige à taper 10 lignes là ou j'en tapais 2 !
Edit : les forums sont pleins de "vieilles" aides en mysql, j'ai du mal à trouver des réponses aux questions que je me pose sur du PDO...
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
>
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
14 févr. 2015 à 21:18
14 févr. 2015 à 21:18
J'ai mentionné MySQLi, c'est pas pour rien ;)