Fonction update en php

Résolu/Fermé
stevie21 - 21 janv. 2009 à 15:16
 stevie21 - 21 janv. 2009 à 22:03
Bonjour,

j'aimerais me servir de la fonction update afin de permettre à certain usager précis d'avoir la possibilité de modifier le contenu de certain champ d'une base de donnée.

je me suis servit du code semblable à celui-ci:

mysql_query("UPDATE table SET champ1='10' , champ2='prix', ... WHERE ID='1'");

cependant, afin que cela se fasse automatiquement j'aimerais avoir quelque chose du genre:

mysql_query("UPDATE table SET champ1=$_POST['nom_du_champ1'] , champ2=$_POST['nom_du_champ2'], ... WHERE ID='1'");

ou

mysql_query("UPDATE table SET champ1=$champ1 , champ2=$champ2, ... WHERE ID='1'");

si au préalable on a fait

$champ1 = mysql_real_escape_string(htmlspecialchars($_POST['champ1']));


donc ce que je veux, c'est que l'utilisateur remplisse un champ et que ce contenu s'enregistre dans la BD




autre point, je voudrais savoir s'il y a moyen d'incrémenter la valeur de 1 dans where ID='1', pour qu'à chaque entrée visible sur ma page, le ID soit numéroté de 1 jusqu'au dernier

ex: i = 0;
WHERE ID='i + 1';



merci !!
A voir également:

3 réponses

afrodje Messages postés 759 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 22 janvier 2014 168
21 janv. 2009 à 17:47
Quelle est la question précise?
0
Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
21 janv. 2009 à 17:59
Salut,
pour le 1, il faut que dans ta base de données, le champs ID soit auto_increment (dans extra).

sinon, il faut que tu crées un formulaire avec des inputs dans lesquels tu mets ce que tu veux changer dans la base de données :

Voici le code :

<form action="" method="post">
<input type="text" name="nom_du_champ1" />
<input type="text" name="nom_du_champ2" />
...
</form>

<?php $dbConn = mysql_connect("localhost" , "Identifiant", "Mot de passe");
mysql_select_db("base de données", $dbConn);

$champ1 = $_POST['nom_du_champ1'];
$champ2 = $_POST['nom_du_champ2'];
...

mysql_query("UPDATE table SET champ1=$champ1, champ2=$champ2, ... WHERE ID='1'");
mysql_close();
?>

Voilà
0
Salut,

lorsque je fais la commande mysql update en mettant les variables dans les champs désirés, il n'y a rien qui s'enregistre dans ma BD

ex: mysql_query("UPDATE fda SET claudesolutions=$claudesolutions , validepar=$validepar, dateretour=NOW(), delegue=$delegue, dateecheancier=$dateecheancier, statut=$statut WHERE ID='1'");


dans ce cas je n'obtient rien de nouveau dans ma BD.

par contre, avec ce code : mysql_query("UPDATE fda SET claudesolutions='1', validepar='2', dateretour='3', delegue='4', dateecheancier='5', statut='6' WHERE ID='1'");

les données s'enregistre très bien et je peux les consulter via une autre de mes pages immédiatement.


le nom de mes champ est correct et l'affectation aux variable via POST également, je ne sais donc pas pourquoi cela ne fonctionne pas.

si tu as une idée, répond-moi merci
0
Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
21 janv. 2009 à 21:17
Oui, j'ai compris.

Dans mon code, j'avais oublié de mettre les variables entre guillemets.

Remplace :

mysql_query("UPDATE fda SET claudesolutions=$claudesolutions , validepar=$validepar, dateretour=NOW(), delegue=$delegue, dateecheancier=$dateecheancier, statut=$statut WHERE ID='1'");

par :

mysql_query("UPDATE fda SET claudesolutions='$claudesolutions', validepar='$validepar', dateretour=NOW(), delegue='$delegue', dateecheancier='$dateecheancier', statut='$statut' WHERE ID='1'");

Excuse-moi.

Par contre, pour le NOW(), vérifie avec mon nouveau code et si ça ne marche pas, mets-le comme ça : 'NOW()' et si ça ne marche toujours pas, rappelle-moi !
0
sa marche parfaitement !!!!

merci
0