Update champ image comment faire

Fermé
ideal23 Messages postés 456 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 16 mai 2014 - 16 janv. 2012 à 16:12
ideal23 Messages postés 456 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 16 mai 2014 - 17 janv. 2012 à 09:53
Bonjour,
je suis entrain de créer mon espace administration. je veux pouvoir modifier une table avec un champ image. voici le code:
<?php require_once('../Connections/dream.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  $updateSQL = sprintf("UPDATE articles SET titre=%s, 'description'=%s, prix=%s, photo=%s WHERE reference=%s",
                       GetSQLValueString($_POST['titre'], "text"),
                       GetSQLValueString($_POST['description'], "text"),
                       GetSQLValueString($_POST['prix'], "double"),
                       GetSQLValueString($_POST['photo'], "text"),
                       GetSQLValueString($_POST['ID'], "int"));

  mysql_select_db($database_dream, $dream);
  $Result1 = mysql_query($updateSQL, $dream) or die(mysql_error());

  $updateGoTo = "valider.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
    $updateGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $updateGoTo));
}

$colname_Rsmodifclient = "-1";
if (isset($_GET['reference'])) {
  $colname_Rsmodifclient = $_GET['reference'];
}
mysql_select_db($database_dream, $dream);
$query_Rsmodifclient = sprintf("SELECT * FROM articles WHERE reference = %s", GetSQLValueString($colname_Rsmodifclient, "int"));
$Rsmodifclient = mysql_query($query_Rsmodifclient, $dream) or die(mysql_error());
$row_Rsmodifclient = mysql_fetch_assoc($Rsmodifclient);
$totalRows_Rsmodifclient = mysql_num_rows($Rsmodifclient);
?>

Lorsque je modifie un champ autre que celui de la photo, le résultat est bon , mais en même temps, la donnée du champ photo est supprimée. Je suis obligé de faire un 2ème passage pour remettre la photo.
j'ai pensé à faire une vérification sur le champ photo. S'il est vide, on ne le change pas, sinon on le change.
nouveau code:
<?php require_once('../Connections/dream.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$colname_Rsmodifclient = "-1";
if (isset($_GET['reference'])) {
  $colname_Rsmodifclient = $_GET['reference'];
}
mysql_select_db($database_dream, $dream);
$query_Rsmodifclient = sprintf("SELECT * FROM articles WHERE reference = %s", GetSQLValueString($colname_Rsmodifclient, "int"));
$Rsmodifclient = mysql_query($query_Rsmodifclient, $dream) or die(mysql_error());
$row_Rsmodifclient = mysql_fetch_assoc($Rsmodifclient);
$totalRows_Rsmodifclient = mysql_num_rows($Rsmodifclient);

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
 if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
    
  if (empty($_POST['photo'])) {
    $updateSQL = sprintf("UPDATE articles SET titre=%s, 'description'=%s, prix=%s WHERE reference=%s",
    GetSQLValueString($_POST['titre'], "text"),
    GetSQLValueString($_POST['description'], "text"),
    GetSQLValueString($_POST['prix'], "double"),  
    GetSQLValueString($_POST['ID'], "int"));
    }
    else
    {	
    $updateSQL = sprintf("UPDATE articles SET titre=%s, description'=%s, prix=%s, photo=%s WHERE reference=%s",
    GetSQLValueString($_POST['titre'], "text"),
    GetSQLValueString($_POST['description'], "text"),
    GetSQLValueString($_POST['prix'], "double"),
    GetSQLValueString($_POST['photo'], "text"), 
    GetSQLValueString($_POST['ID'], "int"));
    } 	
	    	   
  mysql_select_db($database_dream, $dream);
  $Result1 = mysql_query($updateSQL, $dream) or die(mysql_error());

  $updateGoTo = "valider.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
    $updateGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $updateGoTo));
}
?>

Maintenant effectivement je peux modifier les autres champs sans que le champ photo soit supprimé. Mais je ne peux plus modifier le champ photo lui-même.
Je ne comprends pas ce résultat.avez-vous une idée pour modifier ce champ image Merci


A voir également:

2 réponses

pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 94
16 janv. 2012 à 19:10
Bonjour,

je ne suis pas sûr de ce que j'avance, mais ne devrais-tu pas utiliser %b (binaire) plutôt que %s (chaine) pour ton champ photo ?
0
ideal23 Messages postés 456 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 16 mai 2014 28
17 janv. 2012 à 09:53
j'ai pensé si le $_POST['photo'] est vide , forcer le maintien de l'image dans le champ, et faire les autres modifications. Mais le code me pose problème.
0