SQL / changer une entrée qui varie

Résolu/Fermé
Psix Messages postés 105 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 7 décembre 2010 - 26 mai 2009 à 15:13
Psix Messages postés 105 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 7 décembre 2010 - 26 mai 2009 à 15:43
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 :
<!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:

8 réponses

Yorundr Messages postés 289 Date d'inscription mardi 31 octobre 2006 Statut Membre Dernière intervention 11 juin 2012 44
26 mai 2009 à 15:22
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
0
chupa23 Messages postés 149 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 20 juillet 2009 28
26 mai 2009 à 15:28
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)
0
Psix Messages postés 105 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 7 décembre 2010 5
26 mai 2009 à 15:28
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.
0
Yorundr Messages postés 289 Date d'inscription mardi 31 octobre 2006 Statut Membre Dernière intervention 11 juin 2012 44
26 mai 2009 à 15:31
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...)");
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Psix Messages postés 105 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 7 décembre 2010 5
26 mai 2009 à 15:31
Ok, merci j'essaye ça tout de suite :).
0
Psix Messages postés 105 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 7 décembre 2010 5
26 mai 2009 à 15:36
J'ai essayé mais cela na rien enregistré du tout. (les modifications)

    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)
0
Yorundr Messages postés 289 Date d'inscription mardi 31 octobre 2006 Statut Membre Dernière intervention 11 juin 2012 44
26 mai 2009 à 15:39
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) ");
0
Psix Messages postés 105 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 7 décembre 2010 5
26 mai 2009 à 15:43
Merci pour toute vos réponses, j'ai finalement trouvé la solution :

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 ! :)
0