SQL / changer une entrée qui varie
Résolu
Psix
Messages postés
105
Date d'inscription
Statut
Membre
Dernière intervention
-
Psix Messages postés 105 Date d'inscription Statut Membre Dernière intervention -
Psix Messages postés 105 Date d'inscription Statut Membre Dernière intervention -
Bonjour, alors voici mon problème : j'ai créé un formulaire pour rentrer des renseignements dans une table mysql, et je voudrais que la suite du formulaire modifie (avec UPDATE) l'entrée de la table ou se tient la photo en BLOB qui a été rentré depuis le formulaire en premier. Je n'arrive pas à mettre le bon renseignement dans le WHERE. Voici mon code :
Merci d'avoir lu mon message et n'hésitez pas à me demander plus de renseignements.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Module de Gestion</title> <style type="text/css"> <!-- body { background-color: #3399FF; } .Style2 { font-size: x-large; font-weight: bold; } --> </style></head> <body> <table width="980" height="306" border="0"> <tr valign="middle"> <td height="43" colspan="2"><div align="center"> <table width="980" height="43" border="0"> <tr> <td bgcolor="#66CCFF"><div align="center"><strong><u>Module de gestion</u></strong></div></td> </tr> </table> <strong></strong></div></td> </tr> <tr> <td width="17" valign="top"> <?php include("menu_gestion.php"); ?> </td> <td width="953" valign="top" align="center"> <span class="Style2"><br> Ajouter une image <?php include ("transfert.php"); if ( isset($_FILES['fic']) ) { transfert(); } ?> </span> <form enctype="multipart/form-data" action="#" method="post"> <p>Commentaires : </p> <p> <textarea name="commentaires" cols="55" rows="4"></textarea> </p> <p>Date :</p> <p> <input name="date" type="text" value="AAAA-MM-JJ"> </p> <p>Image : </p> <p> <input type="hidden" name="MAX_FILE_SIZE" value="250000" /> <input "type="file" name="fic" size=50 /> </p> <p> <input type="submit" value="Envoyer" /> </p> </form> <?php mysql_connect("localhost", "root", ""); mysql_select_db("test"); if (isset($_POST['commentaires']) AND isset($_POST['date'])) { $commentaires = mysql_real_escape_string(htmlspecialchars($_POST['commentaires'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité $date = mysql_real_escape_string(htmlspecialchars($_POST['date'])); // De même pour le message $commentaires = nl2br($commentaires); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br /> // On peut enfin enregistrer mysql_query("UPDATE magic_photos SET img_desc='$commentaires', img_date='$date' WHERE ???"); } mysql_close(); ?> </td> </tr> </table> </body> </html>
Merci d'avoir lu mon message et n'hésitez pas à me demander plus de renseignements.
A voir également:
- SQL / changer une entrée qui varie
- Changer dns - Guide
- Changer carte graphique - Guide
- Changer wifi chromecast - Guide
- Changer extension fichier - Guide
- Changer clavier qwerty en azerty - Guide
8 réponses
Salut,
j'ai pas tout compris mais en gros tu fait un insert, et apres tu voudrait faire un update sur l'enregistrement que tu vient de faire :
-donc si c'est le dernier enregistreement c facil tu prend le dernier enregistrement,
-sic'ets pas le dernier au moment de l'insert il faut que tu garde l'id et que tu le repasse aprés
j'ai pas tout compris mais en gros tu fait un insert, et apres tu voudrait faire un update sur l'enregistrement que tu vient de faire :
-donc si c'est le dernier enregistreement c facil tu prend le dernier enregistrement,
-sic'ets pas le dernier au moment de l'insert il faut que tu garde l'id et que tu le repasse aprés
Euh je ne vois pas la requête d'insertion ? UPDATE sert a mettre un jour une table pas à insérer des données.
Autre remarque : $date = mysql_real_escape_string(htmlspecialchars($_POST['date'])) c'est donc l'utilisateur qui saisi un date , tu pourrais le faire en php , un champ en moins a saisir et tu es sur de la date ainsi.
(https://www.vulgarisation-informatique.com/dates-php.php si tu ne connais pas date)
Autre remarque : $date = mysql_real_escape_string(htmlspecialchars($_POST['date'])) c'est donc l'utilisateur qui saisi un date , tu pourrais le faire en php , un champ en moins a saisir et tu es sur de la date ainsi.
(https://www.vulgarisation-informatique.com/dates-php.php si tu ne connais pas date)
Merci de ta réponse :) . Tu as bien compris ce que je veux faire ^^. Mais comment je fais pour changer la dernière entrée ? Car a chaque fois que on rempli le formulaire sa rajoute une entrée...
à Chupa : en faite la date c'est la date de la photo rentrée, donc pas forcément du jour. Et l'insertion est dans l'include transfert, mais celle-ci me convient pour l'image.
à Chupa : en faite la date c'est la date de la photo rentrée, donc pas forcément du jour. Et l'insertion est dans l'include transfert, mais celle-ci me convient pour l'image.
Oui, ben si tu es sur que c'est ta derniere entree le champs que tu veut modifier c'est facile
mysql_query("UPDATE magic_photos SET img_desc='$commentaires', img_date='$date' WHERE id = (select max(id) from...)");
mysql_query("UPDATE magic_photos SET img_desc='$commentaires', img_date='$date' WHERE id = (select max(id) from...)");
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai essayé mais cela na rien enregistré du tout. (les modifications)
(j'ai essayé avec les '...' pour WHERE)
mysql_query("UPDATE magic_photos SET img_desc='$commentaires', img_date='$date' WHERE img_id=(select max(img_id) FROM magic_photos) ");
(j'ai essayé avec les '...' pour WHERE)
Re,
d'apres moi quand c'est entre ' ' c'est interpréter comme des chaines, donc je ferai :
mysql_query("UPDATE magic_photos SET img_desc='".$commentaires."', img_date='".$date."' WHERE img_id=(select max(img_id) FROM magic_photos) ");
d'apres moi quand c'est entre ' ' c'est interpréter comme des chaines, donc je ferai :
mysql_query("UPDATE magic_photos SET img_desc='".$commentaires."', img_date='".$date."' WHERE img_id=(select max(img_id) FROM magic_photos) ");
Merci pour toute vos réponses, j'ai finalement trouvé la solution :
Bonne journée a vous. Et merci encore ! :)
if (isset($_POST['commentaires']) AND isset($_POST['date'])) { $commentaires = mysql_real_escape_string(htmlspecialchars($_POST['commentaires'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité $date = mysql_real_escape_string(htmlspecialchars($_POST['date'])); // De même pour le message $commentaires = nl2br($commentaires); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br /> $ordreDernierEnregistrement = mysql_query("SELECT img_id FROM magic_photos ORDER BY img_id DESC LIMIT 0,1"); $row = mysql_fetch_array($ordreDernierEnregistrement); $dir = $row["img_id"]; // On peut enfin enregistrer mysql_query("UPDATE magic_photos SET img_desc='$commentaires', img_date='$date' WHERE img_id='$dir' "); }
Bonne journée a vous. Et merci encore ! :)