cs_Al3x_Oo
Messages postés41Date d'inscriptionjeudi 21 juin 2007StatutMembreDernière intervention27 juillet 2010 28 déc. 2007 à 03:19
Re,
C'est clair que tu n'a pas besoin de faire un MCD sur papier pour construire une base de donnée, mais si tu en as une je penses qu'il est necéssaire d'avoir quelque notion a ce sujet. Une heure ou deux de recherche sa suffit.
Il doit etre dur de créer une bdd sans notion de MCD ou MLD.
J'ai essayé de te conseiller avec se que tu as indiqué et se que j'ai compris : un lien entre les membres et les photos, je pensais a une tabe membre et photo.
Aprés pour l'organisation des photos, c'est sur c'est un exemple que je t'ai donné, et neigedhiver a tout a fait raison sur ce sujet : tu fais se que tu veux.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 27 déc. 2007 à 22:55
Salut,
Un MCD, dans la théorie, c'est indispensable pour tout développement avec bdd. Dans la pratique, on peut tout à fait s'en passer sur papier, si la structure de la bdd est simple : on le visualise dans sa tête, c'est parfois largement suffisant. Ce que je veux dire, c'est que pour élaborer une simple table qui stocke des messages d'un livre d'or, par exemple, pas la peine de se casser la tête avec Merise ou UML, faire un MCD et un MLD : une seule table, le modèle il est vite vu, y'a un index automatique, d'autres pour les champs utiles dans les recherches, et basta...
Dans le cas présent, seul nicomilville peut savoir si un MCD et un MLD sont justifiés : on ne connait pas son projet, on ne sait pas quelles seront les relations entre les données, etc.
Concrètement, nicomilville, le mieux est non pas de stocker la photo dans la base de données, mais un lien vers elle. Je détaille...
La photo, elle a plus sa place sur le système de fichiers, au même titre que tous les autres fichiers qui ont besoin d'être accessible par un navigateur web.
Dans un répertoire, donc. A toi de t'organiser comme tu le veux pour t'y retrouver. Tu peux aussi bien mettre toutes tes images (photos, icones, etc) dans un seul répertoire. Tu peux aussi les mettre dans des répertoires bien structurés : un répertoire par type d'image (icone, photo, illustration d'article, avatar, etc). C'est ta sauce : chacun sa manière de faire, tu fais comme tu le sens, personne n'a à te dire que c'est mieux comme si, ou comme ça.
Dans ta base de données, au lieu de stocker l'image complète, tu te contentes de stocker l'URL de celle-ci. Soit l'url absolue (avec http://www.tonsite.com/images/... tout ça tout ça), soit l'url relative (/photo.png) si tu sais que toutes les images du type avatar sont dans tel répertoire.
A toi, au moment de l'affichage, de gérer ce que tu as stocké pour restituer l'adresse de l'image, pour qu'elle soit accessible depuis le web.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 26 déc. 2007 à 23:17
Salut,
Il faut récupérer le contenu du fichier image dans une variable :
$image = file_get_contents('fichier/image.png');
Puis stocker ça dans un champ TEXT dans sa base de données.
Pour afficher l'image, il faut d'abord envoyer le bon entête au navigateur :
header('Content-Type: image/png');
header('Content-Type: image/jpeg');
etc
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 27 déc. 2007 à 11:59
je t'explique en fait c'est pour un espace membre il y a quatre photo par membre et quand une personne va dans son espace membre si il a aucune photo il peut en ajouter jusqu'a quatre photo mais je ne sais pas comment faire !!!
cs_Al3x_Oo
Messages postés41Date d'inscriptionjeudi 21 juin 2007StatutMembreDernière intervention27 juillet 2010 27 déc. 2007 à 13:46
Salut,
Donne un identifiant relatif a tes photos, et rentre uniquement son identifiant dans ta bdd, pas ton image.
Ensuite tu ranges tes photos dans l'odre, tu peux créer un dossier par membre par exemple.
Je penses que c'est la plus pratique.
++
cs_Al3x_Oo
Messages postés41Date d'inscriptionjeudi 21 juin 2007StatutMembreDernière intervention27 juillet 2010 27 déc. 2007 à 14:38
C'est quoi que tu ne comprends pas?
Se que je voulais dire, si je me suis mal exprimé, c'est d'utiliser l'url de la photo.
Le nom de ta photo est le mm que l'identifiant de ta table photo (si tu a une table photo).
Tu as une table photo?
// Récupération du dossier dans lequel le fichier sera uploadé //
$DESTINATION_FOLDER = $_POST["folder"];
// Taille maximale de fichier, valeur en bytes //
$MAX_SIZE = 50000000;
//
// Définition des extensions de fichier autorisées (avec le ".")//
$AUTH_EXT = array(".jpg", ".bmp", ".gif");
// Fonction permettant de vérifier si l'extension du fichier est
// autorisée.
function isExtAuthorized($ext){
global $AUTH_EXT;
if(in_array($ext, $AUTH_EXT)){
return true;
}else{
return false;
}
}
// On vérifie que le champs contenant le chemin du fichier soit
// bien rempli.
$date=$_POST['date'];
$titre=$_POST['titre'];
$categorie=$_POST['folder'];
if($categorie=="popart/")
{
$id_cat="1";
}
if($categorie=="pixelart/")
{
$id_cat="2";
}
if($categorie=="3d/")
{
$id_cat="3";
}
if($categorie=="esquisse/")
{
$id_cat="4";
}
if($categorie=="autres/")
{
$id_cat="5";
}
if(!empty($_FILES["file"]["name"])){
// Nom du fichier choisi:
$nomFichier = $_FILES["file"]["name"] ;
// Nom temporaire sur le serveur:
$nomTemporaire = $_FILES["file"]["tmp_name"] ;
// Type du fichier choisi:
$typeFichier = $_FILES["file"]["type"] ;
// Poids en octets du fichier choisit:
$poidsFichier = $_FILES["file"]["size"] ;
// Code de l'erreur si jamais il y en a une:
$codeErreur = $_FILES["file"]["error"] ;
// Extension du fichier
$extension = strrchr($nomFichier, ".");
// Si le poids du fichier est de 0 bytes, le fichier est
// invalide (ou le chemin incorrect) => message d'erreur
// sinon, le script continue.
if($poidsFichier <> 0){
// Si la taille du fichier est supérieure à la taille
// maximum spécifiée => message d'erreur
if($poidsFichier < $MAX_SIZE){
// On teste ensuite si le fichier a une extension autorisée
if(isExtAuthorized($extension)){
// Ensuite, on copie le fichier uploadé ou bon nous semble.
$uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier);
if($uploadOk){
echo("L'upload a réussi !
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 27 déc. 2007 à 18:05
non je n'ai pas encore de table photo parce que je ne savais pas quoi faire !!!
donc en gros je met le chemin de ma photo dans un champ text de ma bdd mais ensuite ???
comment faire pour afficher des photos selon l'utilisateur ???