8797 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai une base de donnée Mysql qui contient des enregistrements. Je souhaiterais modifier certaines colonnes, en gardant ou pas les éléments qui s'y trouve.
J'affiche un tableau ou j'affiche le contenu de la base, puis je sélectionne un entregistrement à modifier, en récupérant l'id de l'enregistrement. Je fais appel à un script d'upload de fichier qui m'envoie un document dans un dossier définis.
Jusque là, tout va bien.
Ensuite, je veux mettre à jour les champs lien_fichier, fichier et extension (qui peuvent être vide ou contenir déjà une donnée) de l'enregistrement. J'ai testé l'INSERT, l'UPDATE, mais rien ne se passe et pas de message d'erreur !!!!!!!!

$id = $_GET['id'];

// --------------------test upload fichier------------------------------

$dossier = './dossier_upload/';
$fichier = basename($_FILES['monfichier']['name']);
$taille_maxi = 2000000;
$taille = filesize($_FILES['monfichier']['tmp_name']);
$extensions = array('.gif', '.jpg', '.jpeg', '.doc', '.pdf', '.PDF', '.png', '.PNG', '.GIF', '.JPG', '.JPEG', '.DOC');
$extension = strrchr($_FILES['monfichier']['name'], '.'); 

//----------------------------upload fichier--------------------------------

     if(move_uploaded_file($_FILES['monfichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
        {
          echo 'Chargement effectué avec succès !';
         }   
         

       // on écrit la requête sql .
        $sql = "UPDATE manifestations SET lien_fichier='.$lien_fichier.', fichier='.$fichier.' , extension='.$extension.' WHERE id='.$id.'";
        mysql_query($sql) or die('Erreur SQL !'.$sql.mysql_error());


Pourriez-vous m'aider, svp ! Merci ! Smiley biggol
Modifié par t671 (01 Oct 2009 - 18:36)
Bonsoir
fait un echo de la requête, tu comprendras tout de suite l'erreur Smiley cligne

Edit : pense également à faire des mysql_real_escape_string sur les chaine de caractère, le fichier d'image peut toujours contenir des caractères spéciaux et tu as un risque d'injection sql.
Et $extension contiendra un nombre, pour véritablement récupère l'extension il faudra en plus utilisé substr(). Pour info, le type MIME du fichier est dans $_FILES['fichier']['type']
Modifié par jo_link_noir (02 Oct 2009 - 01:57)

$sql = "UPDATE manifestations SET lien_fichier='".$lien_fichier."', fichier='".$fichier."' , extension='".$extension."' WHERE id='".$id."'"; 


ça vient pas de la ?
Modifié par Albux (02 Oct 2009 - 10:51)
Bonjour !
Pour jo_link_noir : je comprends pas trop ce que tu me racontes. Pour l'echo, ok. Il faut que je teste. Pour le reste ... ??? Smiley rolleyes

Pour Albux : si ça vient de là ? Ben ça fait parti de ma question !
Bonjour,

C'est bien de dire "faut que je test", mais fait le ><. Et après relis la réponse d'Albux Smiley cligne
C'est une erreur vraiment toute bête en plus...
Bon ben ça ne marche toujours pas ! Smiley bawling
J'ai modifier ma requête, mais c'est pas mieux !!!!

J'ai constaté que je perdais l'id, une fois arrivé au script add.
Je sélectionne donc un enregistrement, et je le récupère dans mon script upload.php.


$id = $_GET["id"];

$result=mysql_query("SELECT * FROM manifestations WHERE id='$id'");
echo '<pre>'; print_r($_GET); echo '</pre>'; // visualiser l'id sélectionné
?>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Upload fichier</title>
</head> ..................
<form enctype="multipart/form-data" method="GET" action="add-manif-pj.php" value="envoyer" name="soumettre">


Là je teste l'id et il est bien présent.

Par contre, l'id n'arrive pas à add-manif-pj.php

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

$id = $_GET['id'];
echo 'L\'id est :';  
echo $id ; 
echo '<pre>'; print_r($_GET); echo '</pre>'; // visualiser l'id sélectionné


Et ma fameuse requête :
$sql = "UPDATE manifestations SET lien_fichier='".$dossier.$fichier."', fichier='".$fichier."' , extension='".$extension."' WHERE id='".$id."'";
        mysql_query($sql) or die('Erreur SQL !'.$sql.mysql_error());


La variable ".$dossier.$fichier." correspond à deux variable que je veux coller dans mon enregistrement, l'une à la suite de l'autre ..... Smiley langue