IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Système d'upload de pdf relié à un ID d'utilisateur


Sujet :

Langage PHP

  1. #21
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    jreaux62 a raison : difficile de s'y retrouver avec les noms choisis pour les tables et les colonnes...

    Je pense que dans la table des users (nommée BDD), il faudrait rajouter une colonne id_cv et après la requête SQL serait SELECT from BDD... JOIN CV ON BDD.id_cv=CV.id (avec les noms actuels, fort confusants)

  2. #22
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Bon du coup j'ai insérer ton code et cela ne fait rien, id_cv reste NULL malheureusement je ne sais pas du tout comment l'implémenter car je ne dois pas l'execute si ? J'ai tenter mais cela me dit que le prepare est NULL..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req2 = $db->prepare("SELECT * FROM BDD INNER JOIN CV BDD.id = CV.id_cv");
    $req2=$db->prepare("INSERT INTO CV (file_name, uploaded_on) VALUES(?, ?)");
    $req2->execute(array($_POST['id'], date('Y-m-d H:i:s')));
    Cela ne m'affiche aucune erreur mais n'affecte pas la BDD non plus..

  3. #23
    Invité
    Invité(e)
    Par défaut
    Bon.
    On n'y comprend plus rien.
    Je vais reprendre, avec les noms que J'AI donnés.

    Table t_users
    • id_user (INT, AUTO-INCREMENT)

    Table t_cvs
    • id_cv (INT, AUTO-INCREMENT)
    • id_user
    • file_name
    • uploaded_on


    Quand tu enregistres un CV :
    1- tu récupères le id_user (via $_GET je crois ?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_user = $_GET['id'];
    2-tu récupères les données du formulaire en $_POST (?)
    (concernant l'extension, je t'ai déjà donné un lien : il faut cliquer dessus)

    3- tu effectues l'upload

    4- tu fais une requête INSERT, dans la table t_cvs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql_insert = "INSERT INTO t_cvs (id_user, file_name, uploaded_on) VALUES(?, ?, ?)";
    $req_insert=$db->prepare( $sql_insert );
    $req_insert->execute(array(
          $id_user, 
          $file_name, 
          date('Y-m-d H:i:s')
       ));
    C'est CLAIR, ou toujours pas ?

  4. #24
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    PARFAIT !

    Moi j'arrive à comprendre mon code personnellement et au final toi aussi , j'ai juste ajouter le add value id_cv et je récupère bien l'id en post sauf que maintenant la question c'est comment je pourrais lié chaque cv à chaque bouton sur ma page contenant le tableau car j'affiche tout en fonction des données présentes dans ma base de donnée "user" BDD et je ne vois pas comment lié mon bouton en disant en gros que si l'id de l'user = id_cv, ça me relie le bouton au bon pdf..

    Pour comprendre:

    Nom : Capture d’écran 2019-09-10 à 15.41.09.png
Affichages : 98
Taille : 210,6 Ko

    Ensuite après modification j'ai réussi à remodifier pour garder le nom du fichier stocké en base au lieu de l'id de l'utilisateur qui est maintenant stocké dans id_cv !

    Nom : Capture d’écran 2019-09-10 à 15.50.52.png
Affichages : 95
Taille : 69,2 Ko

    Je peux enlever le cv/ à tout moment mais c'est pour faire un href vers le file_name directement ce qui simplifiera le tout, faut juste que j'arrive comment mettre en lien afin de rattacher chaque pdf à chaque bouton "CV" de chaque utilisateur dans le tableau.

  5. #25
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql= "SELECT U.*, C.*
       FROM t_users U
       LEFT JOIN t_cvs C
          ON U.id_user = C.id_user
       ";

  6. #26
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Salut jreaux, j'ai essayer de suivre ta méthode je comprends le code mais tes U C, à quoi servent-ils ? Tout fonctionne sauf que je ne vois pas à quoi ça sert, je ne sais pas comment mettre en place le système de bouton CV relié à chaque CV de la base CV..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
              if (move_uploaded_file($_FILES["uploaded_file"]["tmp_name"], $newFileName)) {
                    // Insert image file name into database
                    $sql= "SELECT *, *
                   FROM BDD
                   LEFT JOIN CV
                      ON BDD.id = CV.id_cv
                   ";
                    $join = $db->prepare($sql);
                    $join->execute();
                    $req2=$db->prepare("INSERT INTO CV (id_cv , file_name, uploaded_on) VALUES(?, ?, ?)");
                    $req2->execute(array($_POST['id'], $newFileName, date('Y-m-d H:i:s')));
    Du coup j'ai bien mes boutons CV dans mon tableau maintenant ça reste le grand trou noir..

  7. #27
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    U et C sont des alias. Tu aurais compris si jreaux62 avait utilisé cette syntaxe :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql= "SELECT U.*, C.*
       FROM t_users AS U
       LEFT JOIN t_cvs AS C
          ON U.id_user = C.id_user
       ";

  8. #28
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Ah d'accord !

    Je comprends mieux, pas forcément utile du coup?

    Aurais-tu une idée en regardant le fonctionnement de mon tableau et de mes tables comment je pourrais relier le bouton CV à chaque pdf en attribuant le bon correspondant à l'id_cv ?

  9. #29
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Pour t'aider, il me faudrait la structure de tes 2 tables (au lieu de faire des screens, le plus simple est de faire un export depuis phpMyAdmin)

    Si, les alias sont utiles car améliorent la lisibilité mais pas indispensables.

  10. #30
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Pas de soucis, je t'envoie ça en privé, si jreaux tu as besoin tu peux me les demandés sans soucis aussi !

    Merci encore !

  11. #31
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Met les plutôt sur le forum (en public) afin de partager

  12. #32
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Met les plutôt sur le forum (en public) afin de partager
    Pour l'instant je te l'ai envoyer en privé, si besoin je le posterais sans soucis sur le forum !

  13. #33
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    J'ai reçu ton MP et je regarde

  14. #34
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    J'ai reçu ton MP et je regarde
    D'accord je te remercie !

  15. #35
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par StrangerThings Voir le message
    ...comment je pourrais relier le bouton CV à chaque pdf en attribuant le bon correspondant à l'id_cv ?

    Sérieux... il va falloir faire preuve de RÉFLEXION, de CURIOSITÉ et COMPRÉHENSION.


    C'est ce que je t'ai écris comme requête :
    • "LEFT JOIN ... ON ..." permet de JOINDRE le CV à l'utilisateur concerné.



    Si tu veux progresser, il faut faire TOI-MEME des RECHERCHES !


    Ici, on utilise LEFT JOIN (et PAS INNER JOIN), car chaque utilisateur n'a pas forcément de CV.
    Avec INNER JOIN, on sélectionnerait uniquement ceux qui ont effectivement un CV.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
              if (move_uploaded_file($_FILES["uploaded_file"]["tmp_name"], $newFileName)) {
                    // Insert image file name into database
                    $sql= "SELECT *, *
                   FROM BDD
                   LEFT JOIN CV
                      ON BDD.id = CV.id_cv
                   ";
                    $join = $db->prepare($sql);
                    $join->execute();
                    $req2=$db->prepare("INSERT INTO CV (id_cv , file_name, uploaded_on) VALUES(?, ?, ?)");
                    $req2->execute(array($_POST['id'], $newFileName, date('Y-m-d H:i:s')));
    Tu COMPRENDS ce que tu écris ou pas ???
    Là, tu fais la requête SELECT AVANT la requête INSERT !
    Ça n'a pas de sens !!

  16. #36
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Etant débutant j'ai pas mal de mal dans la compréhension de certaines lignes de code, mais j'avais bien compris le principe sauf que maintenant que tout est lié, comment le mettre en place, c'est plutôt en ça que je vois pas mal de difficultés malheureusement :/

  17. #37
    Invité
    Invité(e)
    Par défaut
    1- ARRETE de cliquer sur le bouton "Répondre avec citation" !!
    Il y a un bouton "+ Répondre à la discussion" en bas à gauche !


    2- Et OUI, tu es débutant.

    C'est pourquoi il faut commencer par des choses SIMPLES !
    Et y aller étape par étape.

    Sinon, tu n'y comprendras jamais rien, tu feras du bricolage, et tu finiras par te lasser....

    Il faut :
    • LIRE DES TUTOS
    • FAIRE DES EXERCICES SIMPLES !! (requêtes SELECT, INSERT,.....) pour maitriser et comprendre la syntaxe.

  18. #38
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Ahah je me fais engueuler, bah la citation sert à répondre en pointant du doigt la personne à laquelle le message est destiné non ?

    Je n'ai pas totalement compris le système de LEFT INNER je regarde en gros ça prend la valeur de la colonne CV.id pour transférer dans BDD.id non ?

  19. #39
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Voici la structure des 2 tables (j'ai pas changé les noms même si ça serait mieux, par contre dans la table BDD, j'ai rajouté en 2e position la colonne id_cv) :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    CREATE TABLE IF NOT EXISTS `bdd` (
      `Id` int(11) NOT NULL AUTO_INCREMENT,
      `id_cv` int(11) DEFAULT NULL,
      `Nom` varchar(255) DEFAULT NULL,
      `Prenom` varchar(255) DEFAULT NULL,
      `Telephone` varchar(100) DEFAULT NULL,
      `Email` varchar(100) DEFAULT NULL,
      `QPV` varchar(100) DEFAULT NULL,
      `Sexe` varchar(30) DEFAULT NULL,
      `Ville` varchar(100) DEFAULT NULL,
      `CodePostale` varchar(100) DEFAULT NULL,
      `Adresse` varchar(300) DEFAULT NULL,
      `Diplomevise` varchar(300) DEFAULT NULL,
      `Contratvise` varchar(300) DEFAULT NULL,
      `Dernierdiplome` varchar(300) DEFAULT NULL,
      `Niveaudeformation` varchar(200) DEFAULT NULL,
      `Secteuractivité` varchar(200) DEFAULT NULL,
      `Formationvise` varchar(255) DEFAULT NULL,
      `Specialitee` varchar(300) DEFAULT NULL,
      `Niveau` varchar(255) DEFAULT NULL,
      `Metier` varchar(300) DEFAULT NULL,
      `Rythme` varchar(255) DEFAULT NULL,
      `Structure` varchar(255) DEFAULT NULL,
      `Sourcing` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`Id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=77 DEFAULT CHARSET=latin1;

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE `CV` (
      `id` int(11) NOT NULL,
      `file_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `uploaded_on` datetime NOT NULL,
      `id_cv` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

    Voici la requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT cv.file_name
                   FROM cv,bdd
                  where bdd.id_cv = cv.id
    (ça marchait pas si je prenais les jointures...)

  20. #40
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup laurent j'ai bien compris le système tu prends l'id PRIMARY de chaque CV et tu le transfère dans la colonne id_cv de la BDD user c'est bien ça?

    Par contre du coup pour execute j'ai bien mis la requête mais est-ce que je dois mettre quelque chose dans l'execute car pour l'instant je ne récupère rien dans l'id_cv ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                    $req2=$db->prepare("INSERT INTO CV (id_cv , file_name, uploaded_on) VALUES(?, ?, ?)");
                    $req2->execute(array($_POST['id'], $newFileName, date('Y-m-d H:i:s')));
                    $join=$db->prepare("SELECT CV.file_name
                   FROM CV,BDD
                   where BDD.id_cv = CV.id");
                    $join->execute();
    J'ai bien rajouter en deuxième position la colonne id_cv au passage

    Merci beaucoup d'avoir pris le temps de m'aider !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [Upload] upload fichier pdf sous Firefox 3.0.4
    Par Emilie012 dans le forum Langage
    Réponses: 9
    Dernier message: 17/11/2008, 22h50
  2. [Upload] uploader des pdf
    Par darontankian dans le forum Langage
    Réponses: 7
    Dernier message: 09/10/2008, 17h34
  3. [Upload] upload fichier pdf
    Par urbalk dans le forum Langage
    Réponses: 12
    Dernier message: 04/07/2008, 16h37
  4. [FPDF] Convertir des fichiers word uploadés en pdf
    Par swissmade dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 02/08/2007, 11h02
  5. [Word] Convertir des fichiers word uploadés en pdf
    Par philippe2 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 07/12/2006, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo