Enregistrement ds un champ spécific ds une table

Enregistrement ds un champ spécific ds une table - SQL/NoSQL - Programmation

Marsh Posté le 29-04-2005 à 12:10:00    

Bonjours à toutes et à tous,  
 
 
Je voudrais savoir comment enregistrer une donnée dans UN champ spécifique d'une table :  
 
Je m'explique j'ai une table qui se compose de la facon suivante :  
 
Table production : Champ1 (nomdelaprod) Champ2 (artiste) Champ 3 (commentaire) Champ4 (foto)  
 
mes 3 1er champs s'enregistre grace à un 1er script PHP qui extrait les données de mon 1er formulaire php  
 
et mon champ n°4 je voudrais l'enregistrer par rapport à un autre formulaire.  
dans le script php qui récupére la seul donnée de ce formulaire, j'ai introduit la ligne de commande suivante :  
Code :

Code :
  1. <?php
  2. // récupération des données du formulaires  
  3. $img = $_POST['img'];
  4. // connexion à votre base de donnée  
  5. $connexion = mysql_connect("localhost","root","" );
  6. mysql_select_db("BDDprod",$connexion);
  7. // on créer la requête SQL, pour ensuite l'envoyer  
  8. $requete = ("insert into prodcution values('','','','$img')" );
  9. mysql_query ($requete);
  10. echo "Vos données ont été envoyées";
  11. // fermeture de la connexion vers Mysql  
  12. mysql_close(); 
  13. ?>


 
 
Mais voila ce qu'il se passe sa m'efface mes données des champs précédent et sa enregistre bien le nom de l'image dans le champ n°4  
je suis obliger de faire 2 script et 2 formulaire différent car le script qui me permet d'enregistrer l'image est compliqué si vous connaissé une solution pour enregistrer une donnée dans un champ scpécifique d'une table merci de me donner la solution.  
 
Merci d'avance  
Olivier  

Reply

Marsh Posté le 29-04-2005 à 12:10:00   

Reply

Marsh Posté le 29-04-2005 à 12:13:28    

Salut
 
si j'ai bien compris tu ne devrais pas refaire un INSERT mais plutot une modification de la base avec un UPDATE.
 
bonne chance

Reply

Marsh Posté le 29-04-2005 à 12:36:16    

exact ____ (original le pseudo !! )
tu passes le champ unique de ton premier formulaire, par exemple Champ1, a ta deuxieme page (via un champ hidden) puis tu fais un update :
update production set champ4 = $img where Champ1 = $_POST['champ1'];  

Reply

Marsh Posté le 29-04-2005 à 14:25:59    

Merci pour ces réponse (je suis débutant :( ) tu pourrais m'expliquer Karoli ce que tu m'as proposé : "tu passes le champ unique de ton premier formulaire, par exemple Champ1, a ta deuxieme page (via un champ hidden)"  
 
Pour le update je l'ai introduit de la sorte tu pe me dire si c bon stp ? :

Code :
  1. <?php
  2.     $repertoireDestination = "jaccd/";
  3.     $nomDestination        = $_FILES["fichier"]["name"];
  4.    
  5.     if (is_uploaded_file($_FILES["fichier"]["tmp_name"])) {
  6.         if (rename($_FILES["fichier"]["tmp_name"],
  7.                    $repertoireDestination.$nomDestination)) {
  8.             echo "Le fichier temporaire ".$_FILES["fichier"]["tmp_name"].
  9.                  " a été déplacé vers ".$repertoireDestination.$nomDestination;
  10.         } else {
  11.             echo "Le déplacement du fichier temporaire a échoué".
  12.                  " vérifiez l'existence du répertoire ".$repertoireDestination;
  13.        }         
  14.     } else {
  15.        echo "Le fichier n'a pas été uploadé (trop gros ?)";
  16.     }
  17.  //nom du fichier choisi:
  18.      $nomFichier = $_FILES["fichier"]["name"] ;
  19.  //nom temporaire sur le serveur:
  20.  $nomTemporaire = $_FILES["fichier"]["tmp_name"] ;
  21.  //type du fichier choisi:
  22.  $typeFichier = $_FILES["fichier"]["type"] ;
  23.  //poids en octets du fichier choisit:
  24.  $poidsFichier = $_FILES["fichier"]["size"] ;
  25.  //code de l'erreur si jamais il y en a une:
  26.  $codeErreur = $_FILES["fichier"]["error"] ;
  27.  // Test
  28. //echo "<br>";
  29. //echo "$nomFichier      *****/*****      $typeFichier      *****/*****      $poidsFichier";
  30. // récupération des données du formulaires
  31. $img = $_POST['fichier'];
  32. // connexion à votre base de donnée
  33. $connexion = mysql_connect("localhost","root","" );
  34. mysql_select_db("Prodcd",$connexion);
  35. // on créer la requête SQL, pour ensuite l'envoyer
  36. $requete = ("update nom_prodcd set img = $img where img = $_POST['img']" );
  37. mysql_query ($requete);
  38. echo "Vos données ont été envoyées !";
  39. // fermeture de la connexion vers Mysql
  40. mysql_close();
  41. ?>


 
En fait ds mon formulaire il s'agit d'uploader une image sur le serveur je stoke seulement le nom de l'image dans la base de donnée pour ensuite pouvoir extraire chaque image (les unes en dessous des autres dans un tableau).
 
Peux tu me donner d'avantage d'explication stp et me dire si ma ligne de requete est correcte :  
 
"$requete = ("update nom_prodcd set img = $img where img = $_POST['img']" );"
 
Je tiens vraiment à te remercier car je pense être prés du bute mais il me reste encore quelques petites choses à comprendre.
 
Merci encore a tout de suite j'éspere.
Olivier

Reply

Marsh Posté le 29-04-2005 à 14:46:42    

tu veux modifier le champ4 mais pas pour toutes les lignes, seulement pour un enregistrement...il faut donc dire a ton serveur de bdd, quel enregistrement...c'est la que la clause where intervient...
 
exemple : j'ai une table clients qui comprend les champs : Num_Client, Nom_Client, Adresse
je veux modifier l'adresse du client dont le Num_client = 50 :  

Code :
  1. update clients set Adresse = '1 rue du lac' where Num_client=50


 
toi tu veux modifier le champ4 pour l'enregistrement X...cet enregistrement, tu le connais comment ? depuis ton premier formulaire ?

Reply

Marsh Posté le 29-04-2005 à 15:08:46    

En fait je ne veux pas modifier mais seulement enregistrer o fur et à mesure dans ma base de données le nom des images que j'upload à partir de mon 2éme formulaire HTML :
 
plus précisement je vais t'expliquer le contenue de ma table :
 
Base de donnée : Prodcd
table : nom_prodcd
                    champ1: label   (texte)
                         2: production   (texte)
                         3: artiste      (texte)
                         4: commentaire  (texte)
                         5: nomimage     (texte)    
------------------------------------------------------------------------------------------------
Pour cette partie ces champs (1 à 4) sont remplies par un 1er formulaire HTML qui une fois envoyé, vont vers la page PHP qui va récupéré les données pour les enregistrer dans la base de donnée (la table : nom_prodcd)
------------------------------------------------------------------------------------------------
A la suite de mon 1er formulaire présent dans ma 1ere page HTML j'ai créé un 2éme formulaire qui va permettre à l'administrateur d'uploader ces jacquettes dans un dossier sur le serveur.
Aprés avoir selectionné l'image à envoyer et aprés avoir valider l'upload du fichier ce met en place grace au script PHP que je t'ai montré sur le post précédent.
J'ai donc à la suite de mon script PHP (dans le post précédent) mis en place la connection vers la base sql pour pouvoir ensuite enregistrer le nom de l'image dans le 5éme champ de ma table nom_prodcd.
------------------------------------------------------------------------------------------------
Donc si tu veux ce que je veux faire c'est que l'admin rentre les info pour les 4 1er champs cela s'enregistre dans la base de donnée il revien sur la page contenant les 2 formulaires puis selectionne dans le 2éme formulaire le fichier image qu'il souhaite uploader, il valide, et le nom du fichier image s'enregistre dans le 5éme champ
------------------------------------------------------------------------------------------------
Donc aprés avoir rempli les deux formulaires dans la BDD il y a donc 1 ligne de la table nom_prodcd ou tout les champs sont remplie, et a chaque fois qu'il remplie les 2 formulaires, une nouvelle ligne dans la table se remplie et ainsi de suite.
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
J'ai utilisé cette méthode car je vais ensuite créé une page php qui va permettre à l'administrateur de voir dans un tableau toutes ses productions lignes par lignes (soit 5 colonnes : Label / Production / Artiste / Commentaire / Jacquette)
 
J'espere avoir été plus clair sur ce que je souhaite faire.
 
Merci.

Reply

Marsh Posté le 27-02-2011 à 00:34:18    

Bonjour twist85,
 
As-tu finalement trouvé une solution? j'ai exactement le même problème que toi et je ne trouve rien sur le sujet...
Peut-être pourras-tu m'aider?...
 
Une débutante en PHP  en détresse...
 
 

twist85 a écrit :

En fait je ne veux pas modifier mais seulement enregistrer o fur et à mesure dans ma base de données le nom des images que j'upload à partir de mon 2éme formulaire HTML :
 
plus précisement je vais t'expliquer le contenue de ma table :
 
Base de donnée : Prodcd
table : nom_prodcd
                    champ1: label   (texte)
                         2: production   (texte)
                         3: artiste      (texte)
                         4: commentaire  (texte)
                         5: nomimage     (texte)    
------------------------------------------------------------------------------------------------
Pour cette partie ces champs (1 à 4) sont remplies par un 1er formulaire HTML qui une fois envoyé, vont vers la page PHP qui va récupéré les données pour les enregistrer dans la base de donnée (la table : nom_prodcd)
------------------------------------------------------------------------------------------------
A la suite de mon 1er formulaire présent dans ma 1ere page HTML j'ai créé un 2éme formulaire qui va permettre à l'administrateur d'uploader ces jacquettes dans un dossier sur le serveur.
Aprés avoir selectionné l'image à envoyer et aprés avoir valider l'upload du fichier ce met en place grace au script PHP que je t'ai montré sur le post précédent.
J'ai donc à la suite de mon script PHP (dans le post précédent) mis en place la connection vers la base sql pour pouvoir ensuite enregistrer le nom de l'image dans le 5éme champ de ma table nom_prodcd.
------------------------------------------------------------------------------------------------
Donc si tu veux ce que je veux faire c'est que l'admin rentre les info pour les 4 1er champs cela s'enregistre dans la base de donnée il revien sur la page contenant les 2 formulaires puis selectionne dans le 2éme formulaire le fichier image qu'il souhaite uploader, il valide, et le nom du fichier image s'enregistre dans le 5éme champ
------------------------------------------------------------------------------------------------
Donc aprés avoir rempli les deux formulaires dans la BDD il y a donc 1 ligne de la table nom_prodcd ou tout les champs sont remplie, et a chaque fois qu'il remplie les 2 formulaires, une nouvelle ligne dans la table se remplie et ainsi de suite.
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
J'ai utilisé cette méthode car je vais ensuite créé une page php qui va permettre à l'administrateur de voir dans un tableau toutes ses productions lignes par lignes (soit 5 colonnes : Label / Production / Artiste / Commentaire / Jacquette)
 
J'espere avoir été plus clair sur ce que je souhaite faire.
 
Merci.


Reply

Marsh Posté le 27-02-2011 à 11:23:24    

Je comprends pas le problème, à la rigueur tu fais un INSERT initial, tu récupères le dernier ID ainsi inséré et tu fais un UPDATE sur le dernier ID avec les données du deuxième formulaire...
 
Enfin quoi qu'il en soit c'est assez moche et risqué mais bon... Il faudrait plutôt revoir la structure de ta BDD ou la façon dont tu envois les données.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed