Multi Upload et Update multiple
Bonjour à tous,
Je suis actuellement en stage de fin de formation, etvoilà 2 jours que je bloque sur un problème.
Je réalise une interface web pour postuler en ligne à 1 ou plusieurs postes.
Dans un premier temps, l'utilisateur remplis un formulaire avec ses infos perso et sélectionne (par checkbox) le ou les postes qu'il souhaite.
Après validation de ce 1er formulaire les infos sont enregistrés dans la BDD sur 2 tables : candidat et candidat_poste (boucle foreach avec récupération des valeurs []).
On arrive donc à un 2ème formulaire qui affiche le ou les postes choisis avec à côté une zone upload pour joindre une lettre de motivation (différente selon les postes)et une zone upload pour 1 cv (car il est commun à tout).
Je veux donc faire un update de la table candidat_poste qui contient le nom des pieces jointes lettre de motivation.
voici le code de ma 1ère page ou je fais l'insertion de départ :
....je passe le début ...
Code:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| //INSERT candidat_poste
//récupération de l'id candidat (dernier enregistrement)
$idCandidat=mysql_insert_id();
//boucle avec les valeurs sélectionnées en checkbox
foreach($_POST['poste'] AS $checkposte)
{
$query2 = "INSERT INTO candidat_poste (idCandidat, idPost)
VALUES ('$idCandidat','$checkposte')";
// Envoi de la requête
mysql_query($query2)
or die(mysql_error());
}
if($query2)
{
echo '<h1><a>Formulaire de Candidature</a></h1>
<form id="formCandidat" name="formCandidat" class="formCandidat" onSubmit="return verif_form(); return resultat;" method="post" action="pages_php/cv-motiv.php" enctype="multipart/form-data">
<div class="form_description">
<h3>JOINDRE votre C.V et LETTRE DE MOTIVATION</h3>
<p>Merci de bien vouloir joindre les documents nécessaires à l\'élaboration de votre dossier de candidature</p>
</div>
<h2><i> ETAPE 1</i> -<b style="background-color:#EE7F00;color:#fefefe">-» ETAPE 2</b> </h2>
<hr>';
echo 'Vous avez choisis de postuler aux postes suivants :</br></br>';
//Création de la requête SQL
$queryPost = "SELECT * FROM candidat_poste
join poste ON candidat_poste.idpost=poste.idpost
where idCandidat=$idCandidat";
//Exécution de la requête
$resultPost = mysql_query($queryPost) or
die('Echec ligne : ' . __LINE__ . '<br />
Avec la requete : ' . $queryPost . '<br />
Et la réponse : ' . mysql_error());
echo '<table width="80%"><tr>';
echo '<th>Indiquez votre</br>ordre de preference</th>';
echo '<th>Poste(s)</th>';
echo '<th>lettre(s) de motivation</th>';
echo '</tr>';
while ($line = mysql_fetch_assoc($resultPost)){
echo "<tr><td><input type='checkbox' name='idpost[]' id='idpost[]' value='". $line['idpost'] ."' checked='true'>";
echo "<input type='hidden' name='idCandidat' value='". $line['idCandidat'] ."'>";
echo "<input type='text' name='rang[]' id='rang[]' value='' size='1'></td><td>";
echo $line['nomPoste'];
echo '</td><td><input name="file_motiv" multiple="true" type="file">';
echo '</td></tr>';
$i++;
}
echo '<tr><td colspan="3"><hr>
</br><b>joindre votre C.V : </b>
<input name="file_cv" type="file"></tr></td>';
echo '<tr><td colspan="3"></br><input type="submit" name="submit" value="joindre ces documents et valider ma candidature" />';
echo '</form>';
echo '</td></tr></table>';
}
else
{
echo("L'envoi de votre candidature a échoué") ;
}
}
?> |
2ème page ou j'envoi mes variables upload pour les updates :
Code:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
|
<?php
//DEFINITION DES VARIABLES
//--------------------------------------
$max_size = 1000000; // Taille max en octets du fichier
$nom_cv = $_FILES['file_cv']['name'];
$nom_motiv = $_FILES['file_motiv']['name'];
$extension = substr(strrchr($nom_cv, "."), 0); // Récupération de l'extension
$extension = substr(strrchr($nom_motiv, "."), 0);// Récupération de l'extension
//$newname =($rename.$ext);
$extensions_ok = array(".jpg",".png",".jpeg",".bmp",".doc",".docx",".pdf");
// On vérifie si le champ est rempli
//1 if
if(($_FILES['file_cv']['name'])& ($_FILES['file_motiv']['name']))
{
// On vérifie l'extension du fichier
//2 if
if(in_array(strtolower($extension),$extensions_ok))
{
// On récupère les dimensions du fichier
$infos_img = getimagesize($_FILES['file_cv']['tmp_name']);
$infos_image = getimagesize($_FILES['file_motiv']['tmp_name']);
// On vérifie la taille du fichier
if(($infos_img[2] <= $max_size))
{
// Connexion au serveur MySQL et selection de la base "ma_base"
include 'config/connect_insert.php';
mysql_query("SET NAMES 'utf8'"); //règle les pbs d'insertion avec accents
//chemin voudra dire le chemin de deplacement de l'image (votre repertoire img que vous aurez creer bien sur
$chemin_cv = "pj_cv/";
$chemin_motiv = "pj_motiv/";
$table = "candidat_poste";
$pj_cv = $nom_cv;
$pj_motiv = $nom_motiv;
$rang = $_POST["rang"];
//$idpost = $_POST["idpost"];
$idCandidat = $_POST["idCandidat"];
//on envoi le fichier dans le dossier voulu
move_uploaded_file($_FILES["file_cv"]["tmp_name"],$chemin_cv);
move_uploaded_file($_FILES["file_motiv"]["tmp_name"],$chemin_motiv);
foreach ($_POST['idpost'] AS $checkpost)
{
foreach ( $_POST['rang'] AS $pref)
{
//INSERT Candidat_poste
$query = "UPDATE candidat_poste SET rang = '$pref', pj_motiv = '$pj_motiv' WHERE idpost= '$checkpost' and idCandidat = '$idCandidat' ";
// Envoi de la requête
mysql_query($query)
or die(mysql_error());
}
}
//affichage des résultats, pour savoir si la modification a marchée:
if($query)
{
echo("<br><hr>insertion effectuée <br><br>") ;
$query2 = "UPDATE candidat SET pj_cv = '$pj_cv' WHERE id_candidat = '$idCandidat' ";
// Envoi de la requête
mysql_query($query2)
or die(mysql_error());
}
if($query2)
{
echo "envoi terminé $nom_cv <br>";
echo "envoi terminé $nom_motiv";
}
}
//3else
else
{
echo "vérifie les dimensions et taille image";
}
}
//2 else
else
{
echo "non extension";
}
}
//1 else
else
{
echo "Certains champs ne sont pas remplis !";
}
?> |
Seulement à chaque fois ça update avec le nom de la dernière pièce jointe....
Et là je ne vois plus comment faire...
Bon mon code n'est pas super je sais, mais j'essaie de m'améliorer....
Merci d'avance pour votre aide, car la je craque.....