Modification des données d'une table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Modification des données d'une table

Re: Modification des données d'une table

par Ryle » 13 juil. 2011, 12:24

Pour faire un formulaire html avec un bouton submit :
<form action="le_nom_de_ton_formulaire_de_modification.php" method="post">
   <select name="nom_du_select">
       ...
   </select>
   <input type="submit" value="envoyer" ... />
</form>
Lorsque tu sélectionne une option et que tu cliques sur le bouton envoyer, tu vas recevoir dans ton script de modification, une variable nommée $_POST['nom_du_select'] que tu vas pouvoir utiliser dans le prédicat WHERE de ta requête pour que celle-ci ne retourne que les infos de l'id sélectionné :
$sql = 'SELECT ... FROM ... WHERE id = ' . $_POST['nom_du_select'];

Re: Modification des données d'une table

par Sabrina » 13 juil. 2011, 11:54

Et comment je peux faire ça ??

Re: Modification des données d'une table

par Ryle » 12 juil. 2011, 16:51

il n'y a pas d'attribut onclick à la balise option. Pour détecter la sélection d'une option, il faut placer un onchange="" au niveau de la balise select. Lorsque l'utilisateur change la valeur du select, cela déclenchera l'action javascript que tu auras spécifié... sinon tu peux simplement utiliser un bouton submit pour soumettre ton formulaire (et donc l'id sélectionné) vers ta page de modification :)

Re: Modification des données d'une table

par Sabrina » 12 juil. 2011, 10:31

Personne n'a une idée ou mon code n'est pas assez claire ?? #-o

Re: Modification des données d'une table

par Sabrina » 11 juil. 2011, 11:51

Comment je peux afficher les détails du livres juste en cliquant sur le select et choisir le numéro d'inventaire ??? #-o

Re: Modification des données d'une table

par Sabrina » 11 juil. 2011, 10:07

Bonjour,
J'ai ajouté à mon code un select qui contient le numero d'inventaire de chaque livres,
<?php

echo '<select  name="select" class="Style2" >'."\n";
       
     include "connexion.php";
   
     $sql = "SELECT id,Titre, Auteur, Cote, Disponibilite, Inventaire  FROM livres ORDER BY Titre";
       $ReqLog = mysql_query($sql);
   
         while ($resultat = mysql_fetch_array($ReqLog))
                 {
       echo '<option value="'.$resultat['id'].'" onclick="affiche(\'<br />           <br /><br />                     \',\'descr\')"><br />'. $resultat['Inventaire'] . '</option>'."\n";
         
       }
 echo '</select>'."\n";
?>
Mais j'ai pas arrivé à faire le test qui me permet de remplir mon formulaire (où j'affiche tous les données du livre pour les modifier)qui suit selon le numéro d'inventaire sélectionné #-o
Avez vous une idée ??

Re: Modification des données d'une table

par Ryle » 07 juil. 2011, 18:19

Pour le moment ta requête retourne tous les enregistrements de ta table, et ton code affiche uniquement le premier élément retourné.

Ce qu'il te faut, c'est compléter ta requête avec une clause "WHERE" (du genre WHERE id = 'xxx'), pour qu'elle ne retourne qu'un seul enregistrement correspondant à l'identifiant demandé (xxx)

Dans l'idée, il faudrait que tu proposes une liste de tous tes enregistrements pour permettre à l'utilisateur d'en choisir un (avec un lien ou un bouton). Lorsqu'il clique dessus il te faut passer son id à ton script qui va alimenter le formulaire avec les infos associées à l'id demandé :)

Re: Modification des données d'une table

par Sabrina » 07 juil. 2011, 15:09

OKKK ca marche =D> =D> =D>

Mais l'enregistrement affiché est celui dont l'id = 1 (malgré que j'ai pas fais aucune condition)

Pour moi je veux afficher un, dont je choisis mais je n'ai pas d'idée comment je dois faire ca ???? sachant que j'ai 400 enregistrement dans ma table livres

Re: Modification des données d'une table

par Sabrina » 07 juil. 2011, 15:03

c ma faute j'ai oublié de faire :oops:
include 'connexion.php';

mais aussi j'ai l'erreur précédente :

Notice: Undefined index: inventaire in C:\wamp\www\biblio\Modiflivres.php on line 46

:cry: #-o #-o
où es le problème ??

Re: Modification des données d'une table

par Ryle » 07 juil. 2011, 14:57

D'après le message, PHP ne parvient à se connecter à la base de données : l'utilisateur est refusé...

Est-ce que tu fais bien appel à mysql_connect() pour te connecter à la base de données et est-ce que les informations de connexion sont les bonnes ? (user, mot de passe, ...)

Re: Modification des données d'une table

par Sabrina » 07 juil. 2011, 14:43

Merci pour ta réponse,

J'ai une erreur affiché à la ligne 42 que j'ai pas compris avez vous une idée ???

la ligne 42 est :
  $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
Warning: mysql_query() [function.mysql-query]: Access denied for user 'SYSTEM'@'localhost' (using password: NO) in C:\wamp\www\biblio\Modiflivres.php on line 42

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\biblio\Modiflivres.php on line 42

Re: Modification des données d'une table

par Ryle » 07 juil. 2011, 14:08

C'est normal, dans $_POST tu vas trouver les valeurs envoyées via le formulaire... ici ce qu'il te faut, c'est aller chercher les valeurs qui sont en base. Il faut donc exécuter ta requête pour récupérer l'enregistrement que tu veux modifier :
$sql = 'SELECT ... FROM ... WHERE ...';  
     $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
Puis récupérer les données de l'enregistrement retourné
if ($req) {
  $row = mysql_fetch_assoc($req);
  
  $inv = $row['inventaire'];
  $tit = $row['titre'];
  $aut = $row['auteur'];
  ...
}
A partir de là tu vas pouvoir alimenter tes champs :
<input name="titre" type="text" size="118" value="<?php echo $tit; ?>" />

Re: Modification des données d'une table

par Sabrina » 07 juil. 2011, 13:25

j'ai essayé de le faire mais ca n'a pas marché
j'ai ajouté l'appel de mes variables :

 <?php 
  $inv=$_POST['inventaire'];
$tit=$_POST['titre'];
$aut=$_POST['auteur'];
$cot=$_POST['cote'];
$mE=$_POST['maisonE'];
$illus=$_POST['illustration'];
$forma=$_POST['format'];
$pag=$_POST['pages'];
$collec=$_POST['collection'];
$isbn=$_POST['isbn'];
$mot=$_POST['mots'];
$resum=$_POST['resume'];
$img=$_POST['img'];
$disp=$_POST['dispo'];


     $sql = 'SELECT * FROM livres ';  
     $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
?>

Mais ca n'a pas marché, variables undefined
il m'affiche l'erreur suivantes :
Notice: Undefined index: titre in C:\wamp\www\biblio\Modiflivres.php on line 41,

que ce que je dois faire ??

Re: Modification des données d'une table

par Ryle » 07 juil. 2011, 12:46

En fait, il te faut simplement pour cela renseigner l'attribut value="" de tes inputs qui te permettra de proposer une valeur par défaut (en l'occurrence celle qui est enregistré en base :)).

Il te faut donc essayer de générer le code suivant :
<input name="titre" type="text" size="118" value="<?php echo $laValeurDuTitreEnBase; ?>" />
En t'arrangeant naturellement pour que $laValeurDuTitreEnBase contienne la valeur que tu as récupéré de ta base ;)

Nota : pour les textarea la syntaxe est un peu différente car il n'y a pas d'attribut value. Il faut donc spécifier la valeur entre les balises :
<textarea name="resume" cols="89"><?php echo $laValeurDuResume; ?></textarea>
C'est également un peu plus compliqué pour les radio et checkbox, mais comme tu n'en as pas, ça sera pour la prochaine fois ;)

Modification des données d'une table

par Sabrina » 07 juil. 2011, 11:24

Bonjour,

Je suis entrain de faire une application d'insertion et de modification des données insérer dans une base Mysql.
J'ai fais l'insertion et ça a bien marché.
et
Je veux afficher les données dans des champs texte pour pouvoir faire les modifications nécessaires.

voici mon formulaire dont j'arrive pas à affiché mes données :
 <table width="902" height="466" border="2" align="center">
<tr>
<td width="896" height="458" align="center"><form id="form1" name="form1" method="post" action="">

<p align="center">&nbsp;</p>

<p><strong> Titre : </strong>     <input name="titre" type="text" size="118" />   </p>

<p><strong>Auteur(s) : </strong>     <input name="auteur" type="text" size="86" />

 <strong>Cote :</strong>      <input name="cote" type="text" size="19" />  </p>

<p><strong> Edition :</strong>     <input name="maisonE" type="text" size="118" />   </p>

<p><strong>Illustration : </strong>    <input name="illustration" type="text" size="42" />

<strong>Format :</strong>    <input name="format" type="text" size="35" />

<strong>Pages :</strong>    <input name="pages" type="text" size="11" />    </p>

<p><strong>Collection :</strong>    <input name="collection" type="text" size="47" />

<strong>ISBN :</strong>    <input name="isbn" type="text" size="23" /> 

<strong>Inventaire :</strong>   <input name="inventaire" type="text" size="15" />  </p>

<p><strong>Mots Cl&eacute;s  :</strong>   <input name="mots" type="text" size="118" />  </p>

<p><strong>Resumé : </strong>    <textarea name="resume" cols="89"></textarea>   </p>

<p><strong>Disponibilit&eacute; : </strong>   <input name="dispo" type="text" size="20" />    

<strong>Image : </strong>   <input name="img" type="text" size="20" />  </p>

<p>&nbsp;</p>
<p>     <input type="submit" value="Enregistrer"  name="Submit" /></p>

</form>
</td>
</tr>
</table>
Donc mon but consiste à importer mes données insérés dans ma tables et les affichés dans ces champs vides pour pouvoir les modifier.
J'espère que c claire
J'attends votre aide
Merci d'avance