Besoin de lier un membre a la base de donnée images .

khion Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour cher communauté, je suis débutant. j'essais de realiser une galerie pour chaque membre de mon projet.
mais depuis j'arrive pas a passer ce cap.

besoin de vos conseils et aide si possible


<div class="fyle">
                <form action="profile.php" method="post" enctype="multipart/form-data">
                        <p class="files"><label for="domicile">Ajouter du contenu média</label><br><input type="file" id="domicile" name="img"></p>
                <div class="submit">
                        <input type="submit" name="submit" value="ajouté">
                </div>
                </form>
        </div>


<?php
  if(isset($_SESSION['auth'])){
        if(isset($_FILES['img']) AND !empty($_FILES['img']['name'])){
                $file = $_FILES['img'];
                $user_id = $_SESSION['auth']->id;
                $fileName = $_FILES['img']['name'];
                $fileTmpName = $_FILES['img']['tmp_name'];
                $fileSize = 4194604;
                $allowed = ['jpg', 'jpeg', 'png', 'gif', 'mp4'];
                $time = time();
		$nom = md5(uniqid(rand(), true)); // Permet de générer un nom unique à la photo
                if($_FILES['img']['size'] <= $fileSize){
                        $fileActualExt = Strtolower(substr(strrchr($fileName, '.'), 1));
                        if(in_array($fileActualExt, $allowed)){
                                $fileDestination = '../multimedias/'.".".$fileActualExt;
                                $vue = move_uploaded_file($fileTmpName, $fileDestination);
                                if($vue){
                                        $save = $pdo->prepare('INSERT INTO galeries SET img :img, user_id :user_id VALUES (?,?)',
                                        array($fileDestination, $_SESSION['auth']->id));
                                }else{
                                        $msg = "Erreur lors du téléchargement";
                                }
                        }else{
                        $msg = "format de fichier non compatible";
                        }
                }else{
                        $msg = "volume de votre fichier non pris en compte!";
                }
        }
}
?>

2 réponses

Totox
 
Salut,

c'est plutôt du côté de la conception de la base de données que ça se joue cela je pense.

Pour le code ce sera du SQL, voir du côté des jointures de tables une fois que vous passez au modèle logique.

Je m'explique:
PHP est une couche de programmation qui relie la page HTML à la base de données dans un sens ou dans l'autre(récupérer des données ou les envoyer à la base).
Sa fonction principale est généralement echo :
écrit moi ce HTML avec les données que j'ai demandées à la base(requête SQL)
Ou dans l'autre sens il va "acheminer" les données d'un formulaire à la base.

Cela permet donc que la base ne soit jamais accessible directement à partir du réseau car PHP est sur le serveur à côté de la base et dans l'autre sens va fournir du code avant le chargement de la page HTML(PHP= Hypertext PreProcessor).

Donc tout ce qui concerne la base de données se fait pour et sur la base de données avant tout.
La conception avant tout: créer les entités et tables.
Les lier ensemble(relations permises avec des clés étrangères).
PHP ne fait que transmettre une requête (et ses résultats) tout doit être au point côté tables et requête avant tout => SQL après avoir fait un système d'information et sa modélisation(les tables des bases de données relationnelles).
Voir aussi ce qu'est un SGBD(ou SGBDR) qui est l'ensemble du programme et de ses parties pour la partie développement.

Bref par rapport à votre question présenter du PHP n'a aucun sens , c'est de la structure(et contenus/champs) de vos tables(sauf s'il y a des erreurs de PHP, dans ce cas la question est mal posée) dont il est question dans la liaison de celles ci.
Celle ci se fera donc sur la base de données par le langage SQL: de la création des tables à la gestion de leurs contenus.
PHP c'est la passerelle (matérielle et programme) entre HTML et la BDD comme indiqué dans ce principe inhérent au web:

https://fr.wikipedia.org/wiki/Architecture_trois_tiers
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour

Ta require est fausse
INSERT INTO galeries SET img :img, user_id :user_id VALUES (?,?)',
                                        

Que vient faire un SET dans une requête INSERT ??
INSERT INTO galeries ( img , user_id) VALUES (?,?)',


Vu que tu fais du PDO, applique ceci: https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

.
0