begin process at 2012 05 30 21:12:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Fonction UPDATE et requete WHERE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction UPDATE et requete WHERE

jeudi 4 décembre 2008 à 19:09:13 | Fonction UPDATE et requete WHERE

Graig083

Bonsoir,
J'ai créé un formulaire relié à une base de donnée MySQL. Jusque là tout fonctionne.
Dans un deuxième temps, j'aimerais pouvoir actualiser ma base de donnée.
J'ai donc créé un tableau qui reprend l'ensemble de ma base de donnée et qui me permet d'en actualiser 3 champs.
Le problème est que je ne maitrise pas la balise WHERE associée à la fonction UPDATE et rien ne se passe.
Voici le code de ma page :

<?PHP
$db = mysql_connect('*****', '*****', '*****');
mysql_select_db('*****',$db);
$sql = "UPDATE ***** SET reglement='$reglement', certificat='$certificat', Statut='$Statut' WHERE id='$id'";
mysql_query($sql)
or die('Erreur lors de la connexion à la base de donnée !'.$sql.'
'.mysql_error());

echo("<p align=\"center\">Mise à jour enregistrée</p>");
?>

Quelqu'un peut il me dire pourquoi cela ne fonctionne pas ?
Merci d'avance

jeudi 4 décembre 2008 à 23:11:09 | Re : Fonction UPDATE et requete WHERE

willeraser

Et on est supposés t'aider avec si peu de renseignements ?

Si ton site n'utilise pas de multiples connexions à mysql, tu n'as pas besoin d'affecter le resultat du mysql_connect dans une variable, ni de l'inclure en paramètre optionnel dans mysql_select_db
ensuite, utilise des quotes simples pour les chaines de caractères, et favorise la concaténation
ensuite, vérifie la structure de ta table, int => pas de quotes, chaine => quote.
Je vois un "Statut" comme nom de champ.
Le mieux dans ces cas là, fais un echo de $sql, copie colle ce que ca affiche dans une fenetre d'execution SQL de phpmyadmin ou tout autre interpréteur de commandes SQL de ta bdd.
Mysql te dira là où ca coince.

vendredi 5 décembre 2008 à 11:05:05 | Re : Fonction UPDATE et requete WHERE

Graig083

Désolé si je n'ai pas été suffisamment complet dans mes explications, j'ai posté mon message hier soir après quelques heures d'énervement et de recherches en vain...

Voici l'echo de $sql :
UPDATE inscriptions09 SET reglement='En attente', certificat='En attente', Statut='En attente' WHERE id=''

Mes connaissances en PHP ne sont pas très avancées et je n'ai pas très bien compris le problème des quotes mais effectivement cela semble venir de là et particulierement de id qui est un int en auto increment alors que reglement, certificat et statut sont des chaines.

La connexion à la base semble fonctionner puisque si je ne mets aucune requete "WHERE" il actualise la base en donnant les mêmes valeurs à toute la base...

Dites moi si vous avez besoin de plus d'infos et un immense merci pour votre aide !

vendredi 5 décembre 2008 à 12:04:38 | Re : Fonction UPDATE et requete WHERE

mike1310

Bin la réponse est très clair ... c'est que tu fais un UPADATE sur un id qui n'existe pas ... donc si tu veux modifier un id spécifique il va falloir faire une requete SELECT afin de sélectionner l'id que tu souhaite ...

La actuellement ton $id faut rien ...
vendredi 5 décembre 2008 à 12:46:20 | Re : Fonction UPDATE et requete WHERE

Graig083

Je comprend. Le problème doit être en amont alors, sur le tableau qui me sert à actualiser ma base.
Mon souhait au départ était d'afficher l'intégralité de ma base dans un tableau et de pouvoir actualiser 3 champs de cette base à l'aide de listes déroulantes.
La structure de mon tableau est la suivante :
id I Nom I Prénom I ... I liste déroulante 1 I liste déroulante 2 I liste déroulante 3 I bouton enregistrer
Je ne sais pas comment faire pour que lorsque j'appuie sur le bouton enregistrer, cela actualise les champs correspondants aux listes déroulantes (il y a un bouton "enregistrer" sur chaque ligne)

vendredi 5 décembre 2008 à 14:06:09 | Re : Fonction UPDATE et requete WHERE

mike1310

Dans ta base de donnée ... les champ correspondants à tes listes déroulantes doivent avoir un id (ou oid ... un truc unique quoi :D) ... tu doit donc déclarer ces listes déroulantes avec comme name l'id de la base de données ...
vendredi 5 décembre 2008 à 14:18:27 | Re : Fonction UPDATE et requete WHERE

Graig083

:-( là ca dépasse mes compétences... Je ne maitrise pas assez.
Peux tu m'en dire un peu plus sur ce que je dois faire au niveau de ma base de donnée ou me donner un exemple de code svt...
vendredi 5 décembre 2008 à 14:24:57 | Re : Fonction UPDATE et requete WHERE

mike1310

Et bien dans ta base de données tu as  un identifiant unique sur chaque ligne de ta table :
id | Nom | Prénom

Tu doit ensuite avec un boucle qui te permet d'afficher tout ton tableau :
foreach ($valDeLaBd as $val)
{
    echo $val['nom'] //ceci t'affiche le nom ... fait pareil pour tout tes champs
}

Et ensuite dans ta boucle tu fais afficher le champ dans ta liste déroulante

<select name='".$val['id']."'>
  <option></option>
</select>

Mais c'est difficile de t'expliquer comme ça ... fais voir un peu ton code si tu n'arrive pas
vendredi 5 décembre 2008 à 14:31:05 | Re : Fonction UPDATE et requete WHERE

Graig083

Voilà le code de ma page tableau :

<body class="white">
<form name="update" action="update_conf.php" method="POST" class="white">
<table width="900" border="0" cellpadding="0" cellspacing="0">
<tr>
    <td width="50" rowspan="2"><div align="left"><b>ID</b></div></td>
    <td width="100" rowspan="2"><div align="left"><b>NOM</b></div></td>
    <td width="100" rowspan="2"><div align="left"><b>PRENOM</b></div></td>
    <td colspan="4" height="25"><div align="center"><b>EPREUVES</b></div></td>
    <td width="100" rowspan="2"><div align="center"><b>REGLEMENT</b></div></td>
    <td width="100" rowspan="2"><div align="center"><b>CERTIF MED.</b></div></td>
    <td width="100" rowspan="2"><div align="center"><b>STATUT</b></div></td>
 <td width="75" rowspan="2"><div align="center"><b>MISE A JOUR</b></div></td>
  </tr>
  <tr>
    <td width="75"><div align="center"><b>XTERRA</b></div></td>
    <td width="75"><div align="center"><b>ALPI</b></div></td>
    <td width="75"><div align="center"><b>TRAIL</b></div></td>
    <td width="50"><div align="center"><b>CHAL.</b></div></td>
  </tr>
</table>

<?PHP
$db = mysql_connect('*****', '*****', '*****');
mysql_select_db('inscriptions09',$db);

$sql = "SELECT * FROM inscriptions09 ORDER BY nom";
$req = mysql_query($sql) or die('Impossible de se connecter au serveur
'.$sql.'
'.mysql_error());

while($data = mysql_fetch_array($req))
{
echo ' <table width="900" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="50" align="left">';
echo $data['id'];
echo '</td>
    <td width="100" align="left">';
echo $data['nom'];
echo '</td>
    <td width="100" align="left">';
echo $data['prenom'];
echo '</td>
    <td width="75" align="center">';
echo $data['xt_race'];
echo '</td>
    <td width="75" align="center">';
echo $data['alpi_race'];
echo '</td>
    <td width="75" align="center">';
echo $data['trail_race'];
echo '</td>
    <td width="50" align="center">';
echo $data['challenge'];
echo '</td>
    <td width="100" align="center">
      <select name="reglement">
     <option selected="selected">';
echo $data['reglement'];
echo '</option>
        <option value="En attente">En attente</option>
        <option value="Incomplet">Incomplet</option>
        <option value="Reçu">OK</option>
      </select></div></td>
    <td width="100" align="center">
   <select name="certificat">
        <option selected="selected">';
echo $data['certificat'];
echo '</option>
        <option value="En attente">En attente</option>
        <option value="Incomplet">Incomplet</option>
        <option value="Reçu">OK</option>
      </select></div></td>
    <td width="100" align="center">
   <select name="Statut">
        <option selected="selected">';
echo $data['Statut'];
echo '</option>
        <option value="En attente">En attente</option>
        <option value="Incomplet">Incomplet</option>
        <option value="Validée">Validée</option>
      </select></div></td>
 <td width="75" align="center"><input type="submit" value="Enregistrer" name="envoyer"></td>
  </tr>
</table>';

}
mysql_close();  
?>

</form>
</body>

et celui de ma page php pour actualisation :

<?PHP
$db = mysql_connect('*****', '*****', '*****');
mysql_select_db('inscriptions09',$db);
$sql = "UPDATE inscriptions09 SET reglement='$reglement', certificat='$certificat', Statut='$Statut' WHERE id='$id'";
mysql_query($sql)
or die('Erreur lors de la connexion à la base de donnée !'.$sql.'
'.mysql_error());

echo("<p align=\"center\">Mise à jour enregistrée.</p>");
?>

J'ai essayé le code sans la requete WHERE et ca actualise bien les données mais cela met les mêmes valeurs à toutes mes entrées forcément...

vendredi 5 décembre 2008 à 14:37:23 | Re : Fonction UPDATE et requete WHERE

mike1310

Alors apparemment ça t'affiche ta page correctement mais ce que je ne comprends pas c'est sur les select ...

Par exemple qu'est ce que ça t'affiche : echo $data['reglement']; ???

1 2

Cette discussion est classée dans : base, donnée, mysql, update, where


Répondre à ce message

Sujets en rapport avec ce message

excel et mysql [ par Kevergeek ] kookoo,g chercher sur le site et g pas trouver de reponse...comment transferer une base de donnée excel dans une base de donnée php mysql ??pasque le Création d'une Base de donnée mysql [ par Hammer18 ] Salut,Je suis sur la création d'un site et je voudrais y mettre un livre d'or. Je débute en php et mysql... Comment crée-t-on une base de donnée mysql Base de donnée MySQL [ par XSimpson ] J'aimerai savoir si il est possible de simuler une base de donnée qui fonctionne correctement avec n'importe quel script php/MySQL, en sachant que le formulaire base de donnée mysql [ par lyes_hh ] bonjour, j'ai créé une base de donnée... j'ai un formulaire qui permet de rentrer un nouvel enregistrement et jouhaite pouvoir modifier ces enregistre Problème Base de Donnée MySQL [ par snakykyle ] Bonjour tout le monde, Voila, je veux créer un espace membre, le problème s'est que j'ai pas bien saisi comment une fois que le membre s'est identifié liste deroulantes avec base de donnée mysql [ par El_Catalan_Francesco ] Bonjour a tous, voila je tente de realiser un site la et j'aimerais savoir comment faire pour afficher sous liste déroulantes cette requete: SELECT 'u Taille des tables et d'une base de donnée MYSQL [ par cyberastuces ] Bonjour a tous,je cherche comment afficher la taille de toutes mes tables et ensuite la taille de la base de donnée MySQL. Merci d'avance pour votre a base de donnée sans MySql [ par christian33 ] BonjourMon hebergeur (gratuits) actuelle (Alice) ne propose pas  MySqlJ'aimerais savoir si il y'a une autre solution pour crée une base de donnée sans Base de donnée Mysql recherche croisée [ par dlimouzin ] J'ai dans une base de données d'adhérents d'association deux tables distinctesLa première contient les champsIdentifiantNomprénomSite géographiqueEtcL


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales