Mise à jour base mysql
Fermé
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
-
28 sept. 2009 à 18:57
t671 - 17 oct. 2009 à 16:59
t671 - 17 oct. 2009 à 16:59
A voir également:
- Mise à jour base mysql
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Mise a jour kindle - Guide
- Mise a jour windows 7 - Accueil - Mise à jour
23 réponses
giheller
Messages postés
1875
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
3 février 2024
142
28 sept. 2009 à 19:01
28 sept. 2009 à 19:01
bonsoir,
que fait la requ^te ? message d'erreur, rien ?
avez vous essayé en faisant un copier coller la requête en phpmyadmin ?
y a-t-il après
$requete_update = "UPDATE manifestations SET lien_fichier='".$lien_fichier."' , fichier='".$fichier."' , extension=".'$extension."' WHERE id=".$id.'";
$resultat = mysql_update($requete_update);
que fait la requ^te ? message d'erreur, rien ?
avez vous essayé en faisant un copier coller la requête en phpmyadmin ?
y a-t-il après
$requete_update = "UPDATE manifestations SET lien_fichier='".$lien_fichier."' , fichier='".$fichier."' , extension=".'$extension."' WHERE id=".$id.'";
$resultat = mysql_update($requete_update);
InAme19
Messages postés
539
Date d'inscription
samedi 13 septembre 2008
Statut
Membre
Dernière intervention
29 novembre 2012
62
28 sept. 2009 à 19:02
28 sept. 2009 à 19:02
hum, ça te met quoi comme erreur?
J'ai l'impression que cela provient de ta concaténation avec tes variables. Par exemple au lieu de mettre
tu mets :
Il faut des . pour concaténer une variable en php
J'ai l'impression que cela provient de ta concaténation avec tes variables. Par exemple au lieu de mettre
SET lien_fichier='$lien_fichier'
tu mets :
SET lien_fichier='.$lien_fichier.'
Il faut des . pour concaténer une variable en php
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
29 sept. 2009 à 12:21
29 sept. 2009 à 12:21
Bonjour, et merci à vous deux pour vos réponses !
Pour InAme19 : Si je concatène les variables, c'est pareils. Le résultat est le même que sans concaténation, aucun message d'erreur. Le "header" est éxécuté à la fin, le fichier est uploadé dans sa destination mais la base n'est pas mise à jour.
Pour giheller : donc, aucun message d'erreur. Le "header" est éxécuté à la fin, le fichier est uploadé dans sa destination mais la base n'est pas mise à jour. J'ai rajouté "$resultat = mysql_update($requete_update);
", et j'ai un message : "Fatal error: Call to undefined function mysql_update() in D:\www\wamp\www\Kotoka\gestion\manifestations\test\add-manif-pj.php on line 50
".
Si je colle la requête dans phpmyadmin (mais je ne fait aucune sélection !!!??), j'ai comme message : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$requete_update = "UPDATE manifestations SET lien_fichier='.$lien_fichier.' , fi' at line 1.
J'ai pensé qu'il faudrait que je fasse un INSERT plutôt qu'un UPDATE ... !!!??? Je récupère les enregistrements écrit dans les champs concernés, je DELETE ces champs, et je fais un INSERT avec les enregistrements précédemment récupérés + le ou les nouveaux !
Vous en pensez quoi ???
Mon script de mise à jour de la base (actuel) :
<?php
$host = 'localhost';
$user = '.......';
$pass = '........';
$db = '...........';
// 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'];
// --------------------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'], '.');
.....................................etc...............
{
echo 'Chargement effectué avec succès !';
// on écrit la requête sql .
$requete_update = "UPDATE manifestations SET lien_fichier='.$lien_fichier.' , fichier='.$fichier.' , extension='.$extension.' WHERE id='.$id.'";
$resultat = mysql_update($requete_update);
// on insère les informations du formulaire dans la table
mysql_query($requete_update) or die('Erreur SQL !'.$sql.mysql_error());
}
else
{
echo $erreur;
}
mysql_close(); // on ferme la connexion
header("Location: aff-manif.php");
exit;
?>
Pour InAme19 : Si je concatène les variables, c'est pareils. Le résultat est le même que sans concaténation, aucun message d'erreur. Le "header" est éxécuté à la fin, le fichier est uploadé dans sa destination mais la base n'est pas mise à jour.
Pour giheller : donc, aucun message d'erreur. Le "header" est éxécuté à la fin, le fichier est uploadé dans sa destination mais la base n'est pas mise à jour. J'ai rajouté "$resultat = mysql_update($requete_update);
", et j'ai un message : "Fatal error: Call to undefined function mysql_update() in D:\www\wamp\www\Kotoka\gestion\manifestations\test\add-manif-pj.php on line 50
".
Si je colle la requête dans phpmyadmin (mais je ne fait aucune sélection !!!??), j'ai comme message : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$requete_update = "UPDATE manifestations SET lien_fichier='.$lien_fichier.' , fi' at line 1.
J'ai pensé qu'il faudrait que je fasse un INSERT plutôt qu'un UPDATE ... !!!??? Je récupère les enregistrements écrit dans les champs concernés, je DELETE ces champs, et je fais un INSERT avec les enregistrements précédemment récupérés + le ou les nouveaux !
Vous en pensez quoi ???
Mon script de mise à jour de la base (actuel) :
<?php
$host = 'localhost';
$user = '.......';
$pass = '........';
$db = '...........';
// 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'];
// --------------------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'], '.');
.....................................etc...............
{
echo 'Chargement effectué avec succès !';
// on écrit la requête sql .
$requete_update = "UPDATE manifestations SET lien_fichier='.$lien_fichier.' , fichier='.$fichier.' , extension='.$extension.' WHERE id='.$id.'";
$resultat = mysql_update($requete_update);
// on insère les informations du formulaire dans la table
mysql_query($requete_update) or die('Erreur SQL !'.$sql.mysql_error());
}
else
{
echo $erreur;
}
mysql_close(); // on ferme la connexion
header("Location: aff-manif.php");
exit;
?>
giheller
Messages postés
1875
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
3 février 2024
142
1 oct. 2009 à 19:10
1 oct. 2009 à 19:10
bonsoir,
tenter mysql_query($query_update)
mais mettre à jour des données ne peut se faire avec un insert
tenter mysql_query($query_update)
mais mettre à jour des données ne peut se faire avec un insert
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
4 oct. 2009 à 11:43
4 oct. 2009 à 11:43
Si je met mysql_query($query_update), j'ai comme réponse "query is empty ..."
Je pense que c'est la requête UPDATE qui est mal écrite et qui ne s'exécute pas .... !!!!! Mais là .... ?????
Je pense que c'est la requête UPDATE qui est mal écrite et qui ne s'exécute pas .... !!!!! Mais là .... ?????
giheller
Messages postés
1875
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
3 février 2024
142
4 oct. 2009 à 17:51
4 oct. 2009 à 17:51
Bonsoir,
j'ai ajouté quelques " voyez si cela va meiux.
$requete_update = "UPDATE manifestations SET lien_fichier='".$lien_fichier."' , fichier="'.$fichier."' , extension="'.$extension.'" WHERE id="'.$id."'";
j'ai ajouté quelques " voyez si cela va meiux.
$requete_update = "UPDATE manifestations SET lien_fichier='".$lien_fichier."' , fichier="'.$fichier."' , extension="'.$extension.'" WHERE id="'.$id."'";
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
6 oct. 2009 à 12:28
6 oct. 2009 à 12:28
Bonjour à tous,
Bon ben ça ne marche toujours pas !
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 .....
Merci pour votre aide car je m'en sort pô ... :o((
Bon ben ça ne marche toujours pas !
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 .....
Merci pour votre aide car je m'en sort pô ... :o((
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
6 oct. 2009 à 13:52
6 oct. 2009 à 13:52
C'est normal que tu le perdes, ton form utilise la method get.
Il faut donc que tu transmettes ton id via ton form, en ajoutant un champ caché dans celui-ci.
Il faut donc que tu transmettes ton id via ton form, en ajoutant un champ caché dans celui-ci.
echo '<input type="hidden" name="id" value="' . (int)$_GET['id'] . '" />';
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
6 oct. 2009 à 16:38
6 oct. 2009 à 16:38
Merci P@t@ch0n !
J'ai donc modifier mon upload.php (qui contient également du html) ainsi :
// 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"];
$result=mysql_query("SELECT * FROM manifestations WHERE id='$id'");
echo '<pre>'; print_r($_GET); echo '</pre>'; // visualiser l'id sélectionné en test
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Upload fichier</title>
</head>
<body bgcolor="#0000FF">
<form enctype="multipart/form-data" method="GET" action="add-manif-pj.php" value="envoyer" name="soumettre">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="hidden" name="id" value="' . (int)$_GET['id'] . '" />
<input type="file" name="monfichier" size="51" /><p>
<input type="reset" value="Effacer">
<input type="submit" name="preview" value="Valider">
..................
Et dans mon add-manif-pj.php, quand j'exécute
$id = $_GET['id'];
echo 'L\'id est :';
echo $id ;
J'ai comme réponse : L'id est :' . (int)$_GET['id'] . '
???????
J'ai donc modifier mon upload.php (qui contient également du html) ainsi :
// 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"];
$result=mysql_query("SELECT * FROM manifestations WHERE id='$id'");
echo '<pre>'; print_r($_GET); echo '</pre>'; // visualiser l'id sélectionné en test
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Upload fichier</title>
</head>
<body bgcolor="#0000FF">
<form enctype="multipart/form-data" method="GET" action="add-manif-pj.php" value="envoyer" name="soumettre">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="hidden" name="id" value="' . (int)$_GET['id'] . '" />
<input type="file" name="monfichier" size="51" /><p>
<input type="reset" value="Effacer">
<input type="submit" name="preview" value="Valider">
..................
Et dans mon add-manif-pj.php, quand j'exécute
$id = $_GET['id'];
echo 'L\'id est :';
echo $id ;
J'ai comme réponse : L'id est :' . (int)$_GET['id'] . '
???????
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
6 oct. 2009 à 16:38
6 oct. 2009 à 16:38
Merci P@t@ch0n !
J'ai donc modifier mon upload.php (qui contient également du html) ainsi :
// 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"];
$result=mysql_query("SELECT * FROM manifestations WHERE id='$id'");
echo '<pre>'; print_r($_GET); echo '</pre>'; // visualiser l'id sélectionné en test
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Upload fichier</title>
</head>
<body bgcolor="#0000FF">
<form enctype="multipart/form-data" method="GET" action="add-manif-pj.php" value="envoyer" name="soumettre">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="hidden" name="id" value="' . (int)$_GET['id'] . '" />
<input type="file" name="monfichier" size="51" /><p>
<input type="reset" value="Effacer">
<input type="submit" name="preview" value="Valider">
..................
Et dans mon add-manif-pj.php, quand j'exécute
$id = $_GET['id'];
echo 'L\'id est :';
echo $id ;
J'ai comme réponse :
L'id est :' . (int)$_GET['id'] . '
???????
J'ai donc modifier mon upload.php (qui contient également du html) ainsi :
// 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"];
$result=mysql_query("SELECT * FROM manifestations WHERE id='$id'");
echo '<pre>'; print_r($_GET); echo '</pre>'; // visualiser l'id sélectionné en test
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Upload fichier</title>
</head>
<body bgcolor="#0000FF">
<form enctype="multipart/form-data" method="GET" action="add-manif-pj.php" value="envoyer" name="soumettre">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="hidden" name="id" value="' . (int)$_GET['id'] . '" />
<input type="file" name="monfichier" size="51" /><p>
<input type="reset" value="Effacer">
<input type="submit" name="preview" value="Valider">
..................
Et dans mon add-manif-pj.php, quand j'exécute
$id = $_GET['id'];
echo 'L\'id est :';
echo $id ;
J'ai comme réponse :
L'id est :' . (int)$_GET['id'] . '
???????
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
6 oct. 2009 à 17:00
6 oct. 2009 à 17:00
C'est logique non ?
Le code php doit toujours se trouver entre <?php et ?>
Donc :
Le code php doit toujours se trouver entre <?php et ?>
Donc :
... <input type="hidden" name="id" value="<?php echo (int)$_GET['id']; ?>" /> ...
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
8 oct. 2009 à 15:00
8 oct. 2009 à 15:00
Merci !!!! Effectivement .........
Maintenant, mon upload de fichier ne fonctionne plus ..... ???? J'ai rien touché, j'y comprends plus rien ........ Bref !!!!!
Voici une partie du code :
$dossier = 'upload/';
$fichier = basename($_FILES['monfichier']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['monfichier']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.JPG', '.jpeg');
$extension = strrchr($_FILES['monfichier']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici pour éviter les accents, caractères spéciaux, espaces, qui peuvent poser problème ....
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['monfichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
Si je tente d'uploader un fichier jpg ou doc, j'ai automatiquement le message d'erreur 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...', alors que l'extension est bonne !!!???
Comment ça se fait ?
Merci
Maintenant, mon upload de fichier ne fonctionne plus ..... ???? J'ai rien touché, j'y comprends plus rien ........ Bref !!!!!
Voici une partie du code :
$dossier = 'upload/';
$fichier = basename($_FILES['monfichier']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['monfichier']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.JPG', '.jpeg');
$extension = strrchr($_FILES['monfichier']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici pour éviter les accents, caractères spéciaux, espaces, qui peuvent poser problème ....
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['monfichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
Si je tente d'uploader un fichier jpg ou doc, j'ai automatiquement le message d'erreur 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...', alors que l'extension est bonne !!!???
Comment ça se fait ?
Merci
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
8 oct. 2009 à 15:19
8 oct. 2009 à 15:19
L'upload ne peut s'effectuer en methode get, post obligatoire.
J'avais pas fait attention à cela.
Donc l'id que tu devras récupérer sera dans $_POST, et plus dans get.
Et d'ailleurs, tu n'es plus obligé de le transmettre via un champ caché (cela est mieux quand même), tu peux le passer directement dans l'attribut action de ton form.
J'avais pas fait attention à cela.
Donc l'id que tu devras récupérer sera dans $_POST, et plus dans get.
Et d'ailleurs, tu n'es plus obligé de le transmettre via un champ caché (cela est mieux quand même), tu peux le passer directement dans l'attribut action de ton form.
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
8 oct. 2009 à 16:02
8 oct. 2009 à 16:02
OK !!! Génial !!!! Ca marche ..... !!!!
Par contre, y'a encore un 'tit problème avec ma requête UPDATE que voici :
$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()); "<br />$sql";
Les upload sont bien enregistrés dans la base, mais si il existe déjà un enregistrement dans le champs, le dernier upload écrase le précédent. Alors que je voudrais qu'il se rajoute .....
Comment résoudre cela ?
Merci
Par contre, y'a encore un 'tit problème avec ma requête UPDATE que voici :
$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()); "<br />$sql";
Les upload sont bien enregistrés dans la base, mais si il existe déjà un enregistrement dans le champs, le dernier upload écrase le précédent. Alors que je voudrais qu'il se rajoute .....
Comment résoudre cela ?
Merci
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
8 oct. 2009 à 16:47
8 oct. 2009 à 16:47
Encore une fois, je dirais que l'on n'enregistre pas plusieurs valeurs dans un même champ.
Si une ligne de ta table manifestation peut posséder plusieurs fichiers, tu dois faire une table séparée pour ceux-ci.
Tu gagneras en facilité sur les futures manipulations.
Si une ligne de ta table manifestation peut posséder plusieurs fichiers, tu dois faire une table séparée pour ceux-ci.
Tu gagneras en facilité sur les futures manipulations.
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
8 oct. 2009 à 17:00
8 oct. 2009 à 17:00
1) Quentends-tu par "table séparée" ?
2) Si je veux complémenter ma table avec de nouvelles valeurs, comme je ne peux enregistrer plusieurs valeurs dans le même champs, dois-je créer à chaque fois un nouveau champs ? Et comment incrémenter le nouveau nom de ce nouveau champs ?
3) J'avais pensé récupérer l'enregistrement existant dans les champs, les renommés en "_old", et au moment de l'update, faire un genre de
$sql = "UPDATE manifestations SET lien_fichier='$lien_fichier_old $dossier.$fichier',fichier='$fichier_old $fichier',extension='$extension_old $extension' WHERE id='$id'";
Qu'en penses-tu ?
2) Si je veux complémenter ma table avec de nouvelles valeurs, comme je ne peux enregistrer plusieurs valeurs dans le même champs, dois-je créer à chaque fois un nouveau champs ? Et comment incrémenter le nouveau nom de ce nouveau champs ?
3) J'avais pensé récupérer l'enregistrement existant dans les champs, les renommés en "_old", et au moment de l'update, faire un genre de
$sql = "UPDATE manifestations SET lien_fichier='$lien_fichier_old $dossier.$fichier',fichier='$fichier_old $fichier',extension='$extension_old $extension' WHERE id='$id'";
Qu'en penses-tu ?
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
8 oct. 2009 à 17:11
8 oct. 2009 à 17:11
« Qu'en penses-tu ? »
Que c'est une mauvaise idée.
J'entends par table séparée, une table destinée uniquement à enregistrer tes données concernant l'upload de tes fichiers.
Que c'est une mauvaise idée.
J'entends par table séparée, une table destinée uniquement à enregistrer tes données concernant l'upload de tes fichiers.
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
9 oct. 2009 à 17:19
9 oct. 2009 à 17:19
Bonjour,
J'ai donc créé deux tables. Une "manifestations", et une "upload" pour les pièces uploadés (images, doc, ....).
La table upload comprend un champs nommé id_liaison qui est égal à l'id de l'enregistrement correspondant de la table manifestation. Mais tous les enregistrements de la table manifestation non pas obligatoirement un fichier uploadé dans la table upload.
Si j'écris ceci :
$requete = 'SELECT * FROM manifestations, upload ORDER BY date ASC';
$result = mysql_query($requete,$link) or die ('Erreur : '.mysql_error() );
while($row = mysql_fetch_array($result))
tous les enregistrements de la table manifestation s'affichent autant de fois (et avec) qu'il y a d'enregistrements dans la table upload.
Si je rajoute une condition if ($id = $id_liaison), puis l'echo des éléments de la table upload, les éléments de la table manifestation s'affichent en double sans les éments uploadés correspondant !!!????
Merci pour le coup de main !
J'ai donc créé deux tables. Une "manifestations", et une "upload" pour les pièces uploadés (images, doc, ....).
La table upload comprend un champs nommé id_liaison qui est égal à l'id de l'enregistrement correspondant de la table manifestation. Mais tous les enregistrements de la table manifestation non pas obligatoirement un fichier uploadé dans la table upload.
Si j'écris ceci :
$requete = 'SELECT * FROM manifestations, upload ORDER BY date ASC';
$result = mysql_query($requete,$link) or die ('Erreur : '.mysql_error() );
while($row = mysql_fetch_array($result))
tous les enregistrements de la table manifestation s'affichent autant de fois (et avec) qu'il y a d'enregistrements dans la table upload.
Si je rajoute une condition if ($id = $id_liaison), puis l'echo des éléments de la table upload, les éléments de la table manifestation s'affichent en double sans les éments uploadés correspondant !!!????
Merci pour le coup de main !
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
8 oct. 2009 à 19:45
8 oct. 2009 à 19:45
Merci !!!! J'ai créé une 2° table, et je fais une jointure.
J'avance et je te tiens au courant .... ;o))
J'avance et je te tiens au courant .... ;o))
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
9 oct. 2009 à 19:10
9 oct. 2009 à 19:10
« tous les enregistrements de la table manifestation s'affichent autant de fois (et avec) qu'il y a d'enregistrements dans la table upload. »
C'est tout à fait normal, le sql ressort toujours les données brutes.
À toi de gérer l'affichage désiré avec php.
Préfère également les jointures normalisées.
C'est tout à fait normal, le sql ressort toujours les données brutes.
À toi de gérer l'affichage désiré avec php.
Préfère également les jointures normalisées.
SELECT les_colonnes FROM manifestations m JOIN upload u ON m.id=u.id_liaison ORDER BY date ASC
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
10 oct. 2009 à 09:59
10 oct. 2009 à 09:59
Bonjour,
Je ne suis pas assez callé en php pour c omprendre ce que tu me dis !!!!!
Voilà ce que j'ai écrit :
$requete = 'SELECT * FROM manifestations, upload ORDER BY date ASC'; //--- le ORDER uniquement valable pour la table manifestation---
$result = mysql_query($requete,$link) or die ('Erreur : '.mysql_error() );
while($row = mysql_fetch_array($result))
{
echo .nl2br($row['texte']).; //---données venant de la table manifestation---
if ($id == $id_liaison) //---id venant de la table manifestation, id_liaison venant de la table upload---
if (in_array($row['extension'], array( ".jpg", ".JPG", ".png", ".PNG", ".jpeg", ".JPEG", ".gif", ".GIF")))
{
echo '<a href ="http://xxxxxxxxxxx ' . $row['lien_fichier'] . '"><img src="http://xxxxxxxxxxxxxxxx ' . $row['lien_fichier'] . '"></a>'; //données venant de la table upload
}
else if (in_array($row['extension'], array( ".doc", ".DOC", ".pdf", ".PDF", ".txt", ".TXT")))
{
echo '<center><a href ="http://xxxxxxxxxxxx ' . $row['lien_fichier'] . '">Télécharger<br><img src="../../../commande.gif"></a>';
}
}
mysql_free_result($result);
exit;
?>
Je suis conscient que mon $requete est plutôt général, mais je ne sais pas comment l'écrire ????
J'ai rajouté des //--- pour des commentaires, que ce soit plus lisible.
Je ne suis pas assez callé en php pour c omprendre ce que tu me dis !!!!!
Voilà ce que j'ai écrit :
$requete = 'SELECT * FROM manifestations, upload ORDER BY date ASC'; //--- le ORDER uniquement valable pour la table manifestation---
$result = mysql_query($requete,$link) or die ('Erreur : '.mysql_error() );
while($row = mysql_fetch_array($result))
{
echo .nl2br($row['texte']).; //---données venant de la table manifestation---
if ($id == $id_liaison) //---id venant de la table manifestation, id_liaison venant de la table upload---
if (in_array($row['extension'], array( ".jpg", ".JPG", ".png", ".PNG", ".jpeg", ".JPEG", ".gif", ".GIF")))
{
echo '<a href ="http://xxxxxxxxxxx ' . $row['lien_fichier'] . '"><img src="http://xxxxxxxxxxxxxxxx ' . $row['lien_fichier'] . '"></a>'; //données venant de la table upload
}
else if (in_array($row['extension'], array( ".doc", ".DOC", ".pdf", ".PDF", ".txt", ".TXT")))
{
echo '<center><a href ="http://xxxxxxxxxxxx ' . $row['lien_fichier'] . '">Télécharger<br><img src="../../../commande.gif"></a>';
}
}
mysql_free_result($result);
exit;
?>
Je suis conscient que mon $requete est plutôt général, mais je ne sais pas comment l'écrire ????
J'ai rajouté des //--- pour des commentaires, que ce soit plus lisible.
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
10 oct. 2009 à 13:17
10 oct. 2009 à 13:17
Salut,
Comme ceci.
Autres commentaires, pourquoi n'as tu pas mit la casse des extensions en minuscules uniquement ?
Le point des extensions n'a pas non plus besoin d'être enregistré dans la table.
Comme ceci.
// Ordonnancement par les ids en premiers et date en second $requete = 'SELECT texte, extension, lien_fichier FROM manifestations m JOIN upload u ON m.id = u.id_liaison ORDER BY u.id_liaison, m.date'; $result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() ); $idEnCours = 0; while($row = mysql_fetch_array($result)) { if( $idEnCours != $row['id_liaison'] ) { $idEnCours = $row['id_liaison']; echo nl2br($row['texte']); } if (in_array($row['extension'], array( '.jpg', '.JPG', '.png', '.PNG', '.jpeg', '.JPEG', '.gif', '.GIF'))) { echo '<a href ='http://xxxxxxxxxxx ' . $row['lien_fichier'] . ''><img src='http://xxxxxxxxxxxxxxxx ' . $row['lien_fichier'] . ''></a>'; } elseif (in_array($row['extension'], array( '.doc', '.DOC', '.pdf', '.PDF', '.txt', '.TXT'))) { echo '<center><a href ='http://xxxxxxxxxxxx ' . $row['lien_fichier'] . ''>Télécharger<br><img src='../../../commande.gif'></a>'; } }
Autres commentaires, pourquoi n'as tu pas mit la casse des extensions en minuscules uniquement ?
Le point des extensions n'a pas non plus besoin d'être enregistré dans la table.
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
10 oct. 2009 à 15:54
10 oct. 2009 à 15:54
Je pense que ça vient de $idEncours (ce que je ne comprends pas trop !!!!)
t671
Messages postés
1442
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 novembre 2024
11
10 oct. 2009 à 15:49
10 oct. 2009 à 15:49
Merci .... :o))
J'ai testé ce que tu me proposes ! Malheureusement, il n'y a que les enregistrements de la table manifestation ayant une liaison avec la table upload qui s'affichent ....
Je pense que ça vient de $idEncours (ce que je ne comprends pas trop !!!!)
Alors je cherche , je cherche .....
Pour répondre à tes questions, je n'ai pas mis la casse des extensions uniquement en minuscule, car parfois les extensions sont écrites en majuscule, et je ne sais pas si php fait la différence .... (c'est vrai que j'aurais pu tester .... )
J'ai testé ce que tu me proposes ! Malheureusement, il n'y a que les enregistrements de la table manifestation ayant une liaison avec la table upload qui s'affichent ....
Je pense que ça vient de $idEncours (ce que je ne comprends pas trop !!!!)
Alors je cherche , je cherche .....
Pour répondre à tes questions, je n'ai pas mis la casse des extensions uniquement en minuscule, car parfois les extensions sont écrites en majuscule, et je ne sais pas si php fait la différence .... (c'est vrai que j'aurais pu tester .... )
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
10 oct. 2009 à 16:50
10 oct. 2009 à 16:50
« J'ai testé ce que tu me proposes ! Malheureusement, il n'y a que les enregistrements de la table manifestation ayant une liaison avec la table upload qui s'affichent .... »
Bah oui, c'est ce que la requete va chercher, je croyais que c'est ce que tu voulais.
Tu voudrais donc que toutes lignes de manifestation s'affichent ?
Si c'est ça, il suffit simplement d'utiliser un LEFT JOIN à la place du JOIN.
Ensuite, pour $idEncours, cette variable n'est là que pour générer un affichage sans répéter à chaque tour de boucle le contenu de texte.
Ce n'est pas ce que tu voulais non plus ?
Un peu de précisions donc :)
Bah oui, c'est ce que la requete va chercher, je croyais que c'est ce que tu voulais.
Tu voudrais donc que toutes lignes de manifestation s'affichent ?
Si c'est ça, il suffit simplement d'utiliser un LEFT JOIN à la place du JOIN.
Ensuite, pour $idEncours, cette variable n'est là que pour générer un affichage sans répéter à chaque tour de boucle le contenu de texte.
Ce n'est pas ce que tu voulais non plus ?
Un peu de précisions donc :)