Se connecter / S'enregistrer

Résolu PHP/SQL Mettre à jour une entrée

Solutions (6)
Tags :
  • Php
  • Sql
  • Programmation
|
Bonjour & merci d'avance à ceux qui vont se plonger dans mon code.
je voudrais mettre à jour une entrée SQL (jusqu'ici cela parait extremement simple :) , mais ce n'est pas le cas pour moi :pfff:  )

explication :
Ma base SQL
1 table
9 champs : ID (INT, auto-incrementé, PRIMARY), reference (INT), nom(varchar, 100), description(text), photo(varchar, 255), pdf (varchar, 255), prix (INT), famille(varchar,255), occasion (INT)

j'ai créé des entrée par une page php avec un formulaire qui envoie vers une autre page PHP qui créé les entrée -> aucun soucis
j'ai créé une page PHP pour apporter des modifications à mes entrées par le biais d'un formulaire également qui envoie les infos à une autre page PHP qui doit modifier mes entrées.

si dans ma page de modification, je ne demande pas à modifier les champs photo et pdf les modifications fonctionnent bien.
hélas je souhaite pouvoir tout modifier, ref, nom desc, photo, fichier pdf...
je précise : les fichiers sont uploadés et stockés dans un dossier, dans ma table n’apparaît que le nom de ces fichiers avec leur extension.

voici mon code de formulaire pour une modification :

  1. <form action="pagemodif.php" method="post" enctype="multipart/form-data">
  2. <label for="recherche">Ancienne référence</label> : <input type="text" name="recherche" id="recherche" /><br />
  3. <label for="reference">Nouvelle référence du Produit</label> : <input type="text" name="reference" id="reference" /><br />
  4. <label for="titre">Nouvelle Désignation du Produit</label> : <input type="text" name="titre" id="titre" /><br />
  5. <label for="description">Nouvelle Description du Produit</label> : <input type="text" name="description" id="description" /><br />
  6. Nouvelle Image du produit (.jpeg) : <input type="file" name="photo" /><i>(la photo doit avoir le même nom & la même extension que l'ancienne photo)</i><br />//si j'applique ce que je demande entre parenthèse cela fonctionne mais je veux pouvoir uploader un fichier avec un nouveau nom
  7. Nouveau Document .pdf relatif au produit : <input type="file" name="pdf" /><i>(le fichier pdf doit avoir le même nom que l'ancien)</i><br />//si j'applique ce que je demande entre parenthèse cela fonctionne mais je veux pouvoir uploader un fichier avec un nouveau nom
  8. <label for="prix">Nouveau Prix du Produit</label> : <input type="text" name="prix" id="prix" />€<br />
  9. <input type="submit" value="Mettre à Jour le Produit" />
  10. </form>


et maintenant mon code PHP de ma seconde page pour exécuter les modifications :

  1. //avant je vérifie qu'un PDF est bien envoyé et le copie dans le répertoire pdf/
  2. <?php
  3. $PARAM_hote='localhost';
  4. $PARAM_nom_bd='mabase';
  5. $PARAM_utilisateur='root';
  6. $PARAM_mot_passe='';
  7. try
  8. {
  9. $connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
  10. //ici commence la requete de mise à jour
  11. $ref=$_POST['reference'];
  12. $na_me=$_POST['titre'];
  13. $desc=$_POST['description'];
  14. $prixx=$_POST['prix'];
  15. $mot=$_POST['recherche'];
  16. $pdfss=$_FILES['pdf']['name'];
  17.  
  18. htmlspecialchars(isset($mot));
  19. htmlspecialchars(isset($ref));
  20. htmlspecialchars(isset($na_me));
  21. htmlspecialchars(isset($desc));
  22. htmlspecialchars(isset($prixx));
  23. IF ($ref != NULL AND $na_me != NULL AND $desc != NULL AND $prixx != NULL AND $mot != NULL)
  24. {
  25. $ajout=$connexion->prepare("UPDATE monsite SET reference = $ref, nom = $na_me, description = $desc, prix = $prixx, pdf = $pdfss WHERE reference = $mot ");
  26. $ajout->execute();
  27.  
  28. echo 'Le nouvel article a bien été modifié.<br>';
  29. }
  30. ELSE
  31. {
  32. echo 'Vous n\'avez pas bien remplis les champs, merci de recommencer.';
  33. }
  34. //ici se termine la requete de mise à jour
  35. }
  36. catch(Exception $e)
  37. {
  38. echo 'Erreur : '.$e->getMessage().'<br />';
  39. echo 'N° : '.$e->getCode();
  40. }
  41. ?>


merci de votre aide, si j'ai oublié qqchose n'hésitez pas.
posez toutes vos questions cela peut mettre qq'un sur la voie.
Contenus similaires
Meilleure solution
partage
|
Tu devrais générer ta requète hors du "prepare" et la faire afficher pour la vérifier.
Je suis étonné qu'elle ne fasse pas d'erreurs alors qu'aucun champ texte n'est protégé par des '.
  • Commenter cette solution |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par oliv5169.
  • Commenter cette réponse |
Score
0
òh
òi
|
Je ferme le sujet j'ai remodelé tout mon code....
dans tous les cas MERCI !
  • Commenter cette réponse |
Score
0
òh
òi
|
j'ai aucune erreur mais aucune modification n'est apportée...

enfin j'ai réussi à UPDATE des $_FILES
-> il faut cibler par l'ID et non par une entrée d'un champ
  • Commenter cette réponse |
Score
0
òh
òi
|
salut,
je ne vois pas en quoi entrer les valeurs qui vont être modifiées dans le formulaire va faire que je vais pouvoir modifier le champs pdf ??
En ligne 23 du code de la seconde page il y a un IF qui vérifie si les champs ont bien été remplis. Et de plus ma requête ne retourne pas d'erreur, c'est juste que vu que je demande a modifier le champs pdf par un $_FILES, elle n'est pas appliquée.
  • Commenter cette réponse |
Score
0
òh
òi
|
Tu n'as oublié (au premier abord) qu'une chose: tu ne remplis pas ton formulaire avec les valeur déjà existantes.
A chaque élément input, il manque l'attribut: value="<?php echo $colonne; ?>"
Avec bien sûr $colonne qui est la valeur de l'élément déjà enregistré.
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS