2010-03-04 10 views
0

Je suis relativement nouveau à php. J'ai le problème suivant. Supposons que j'ai une page avecphp forms soumettre le bouton

  • une forme avec deux champs x, y et deux boutons: soumettre et effacer;
  • une table qui montre les enregistrements de db x, y avec deux boutons, éditer et supprimer

quand j'entrer des valeurs dans les champs de formulaire et appuyer sur le bouton, soumettre insère les données dans la db; les données sont ensuite affichées dans le tableau ci-dessous;

Lorsque j'appuie sur modifier sur la table, le formulaire est rempli avec les données de l'enregistrement sélectionné. Maintenant, je veux soumettre pour mettre à jour l'enregistrement et pas seulement en insérer un nouveau.

Comment dois-je procéder?

Merci !!!

Giuseppe

Répondre

0

d'abord vous devriez stocker id de l'édition en cours quelque part comme champ caché ou une chaîne de requête, une fois que vous avez fait cela, vous devez utiliser l'instruction update de mettre à jour le dossier plutôt que d'insérer nouveau quelque chose comme:

// sql query 
update tablename set fieldname = 'fieldvalue'......... and son 

Vous devez afficher votre code pour obtenir une réponse précise.

0
  1. Ajouter un identifiant à vos lignes: une colonne d'identification dans la base de données (de préférence un entier non signé), qui est aussi dans le tableau (vous pouvez l'utiliser comme un querystring dans l'URL que vous utilisez pour éditer une entrée) et comme une entrée masquée dans le formulaire
  2. Si vous ajoutez une entrée, assurez-vous que l'entrée masquée est définie sur null ou zéro (ou une autre valeur qui ne peut pas être un identificateur valide)
  3. Chaque fois que le formulaire est soumis, test pour que l'identifiant soit nul ou autre
  4. Si l'identifiant est nul, ajoutez comme avant
  5. Si l'identificateur n'est pas nul, mettez à jour l'élément avec l'identificateur de l'entrée
1

Vous devez ajouter un champ caché dans votre formulaire pour différencier les mises à jour et insérer.

Une bonne façon de le faire est par exemple de mettre votre clé primaire après le code PHP a champ

<input name="id" type="hidden" value="<?= $row['id']"/> 

vous pouvez faire quelque chose comme cela pour la forme d'insertion

if(isset($_POST['id']) && $_POST['id'] != 0){ 
// this is an update 
$sql = "UPDATE ...." 
... 
} else { 
$sql = "INSERt ..."; 
... 
} 

juste ne mettez pas l'entrée cachée ou faites la valeur étant 0

+0

Ok! eh bien, j'ai un identifiant que je passe. La question est comment dire le bouton "soumettre" pour produire des comportements différents. – Giuseppe

+0

vous n'avez pas à dire s'il n'y a pas d'identifiant ou il est égal à 0 cela signifie qu'il s'agit d'une mise à jour – RageZ