Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/01/2013, 10h15   #1
Klink
Candidat au titre de Membre du Club
 
Homme
Technicien réseau
Inscription : janvier 2013
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Technicien réseau

Informations forums :
Inscription : janvier 2013
Messages : 34
Points : 14
Points : 14
Par défaut insertion bdd suite a une boucle foreach

Bonjour a tous
je suis en train de faire un code pour uploader plusieurs photos,

pour le moment au moment de l'insertion il me rentre une photo par entrée, il me met la photo1 sur une entrée, la photo2 sur une autre entrée et idem pour la 3.

je suis sur de faire une erreur mais apres pas mal de recherche et peu de connaisse je suis dans le flou ....

j'aimerais qu'il me rentre la photo1 dans le champ photo1,la photo2 dans le champ photo2 sur la meme entrée

voici le code complet
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
<?php
require('connect.php');
 
if(!empty($_FILES))
{
       foreach($_FILES["photo"]["name"] as $key => $name)
 
       {
 
 
 
       // Définition des variables
      $photo = $_FILES['photo'];
      $photo_name = $photo['name'][$key];
      $file_tmp =$_FILES['photo']['tmp_name'][$key];
      $file_type=$_FILES['photo']['type'][$key];   
      $ext = strtolower(substr(strrchr($_FILES["photo"]["name"][$key],'.'),1));
      $ext_aut = array('jpg','jpeg','png','gif');
      $max_size = 1048576;
      $size = $photo['size'][$key];
 
      //si input vide on passe
      if(!$_FILES["photo"]["name"][$key]) continue;
 
 
 
 
    //test de l'extension
 
         if(!in_array($ext, $ext_aut)) //Si l'extension n'est pas dans le tableau
           {
             $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg';//on créer une variable erreur
           }
 
    // test de la taille
 
         if($size > $max_size)//Si La taille est trop grande  
           {
              $erreur = 'Le fichier est trop gros...';// on définit un erreur pour la taille
           }
 
         if(!isset($erreur))//Si il n'y a pas d'erreur
 
    //traitement de la photo
           {
          $path_to_image = 'photos/fullsize/';
          $path_to_min = 'photos/mini/';
    //renommage de la photo
          $filename = sha1(uniqid($photo_name[$key])); 
 
          $source = $photo['tmp_name'][$key];
          $target = $path_to_image . $filename. '.'. $ext;
   // deplacement de la photo dans fullsize
          move_uploaded_file($source,$target);
 
          if($ext == 'jpg' || $ext == 'jpeg') {$im = imagecreatefromjpeg($path_to_image.$filename.'.'.$ext);}
          if($ext == 'png') {$im = imagecreatefrompng($path_to_image.$filename.'.'.$ext);}
          if($ext == 'gif') { $im = imagecreatefromgif($path_to_image.$filename.'.'.$ext);}
          $ox = imagesx($im);
          $oy = imagesy($im);
 
    // reduction de la photo
        $nom_image = $filename.$key.'.'.$ext;
        $nx = 80;
        $ny = floor($oy *($nx/$ox));
        $nm = imagecreatetruecolor($nx,$ny);
 
        imagecopyresized($nm, $im, 0,0,0,0, $nx,$ny,$ox,$oy);
 
        imagejpeg($nm, $path_to_min.$filename.'.'.$ext);
 
 
    // insertion dans la base de donnée
        $req = $bdd->prepare('INSERT INTO upload(photo'.$key.') VALUES(:photo)');
        $req->execute(array('photo'=>$nom_image));
        $req->closeCursor();
 
        }
      }
 
 
 
}
 
?>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="style.css" media="all" />
    <title></title>
</head>
<body>
    <div id="content">
 
 
 
        <?php if(isset($erreur)):?>
 
        <div class="error"><?php echo $erreur;?></div>
 
        <?php endif;?>
 
        <form action="" enctype="multipart/form-data" method="post">
 
            <label for="photo">Charger une photo :</label>
            <input type="file" name="photo[1]" /><br />
            <input type="file" name="photo[2]" /><br />
            <input type="file" name="photo[3]" /><br />
 
 
            <input type="submit" class="submit" value="Charger" />
 
        </form>
 
 
 
 
 
        </div>
 
 
    </div>
</body>
</html>
d'avance merci
Klink est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 10h50   #2
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 509
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 509
Points : 21 345
Points : 21 345
En fait, le résultat que tu obtiens est meilleur que celui que tu cherches à obtenir.

A moins que le nombre de 3 photos soit une limite absolu, il vaut mieux, dans une logique relationnelle avoir une table photo avec une entrée par photo.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 11h19   #3
Klink
Candidat au titre de Membre du Club
 
Homme
Technicien réseau
Inscription : janvier 2013
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Technicien réseau

Informations forums :
Inscription : janvier 2013
Messages : 34
Points : 14
Points : 14
mon but est de faire un album photo avec titre jusqu’à 20 photos.
je voudrais qu'il y est une entrée avec les 20 photos (ou moins)et les 20 titres.
une entrée par personne enregistrée.c'est pour ça que je voudrais rentrer les photo a chaque boucle dans un champs de la même entrée.
car je trouve que pour la gestion de l'ensemble c'est plus simple non ??!
Klink est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 13h52   #4
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 509
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 509
Points : 21 345
Points : 21 345
non, fais une table "photo"
photo_id, fk_utilisateur, photo_titre, photo_fichier, ...
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 14h48   #5
Klink
Candidat au titre de Membre du Club
 
Homme
Technicien réseau
Inscription : janvier 2013
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Technicien réseau

Informations forums :
Inscription : janvier 2013
Messages : 34
Points : 14
Points : 14
ok je fais faire comme ça peux tu juste m'expliquer, pourquoi tu propose cette methode ??
Klink est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 16h09   #6
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 509
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 509
Points : 21 345
Points : 21 345
Tu crées une table pour les photos.
Les colonnes sont toutes celles dont tu as besoin concernant la photo, plus une qui contient l'id de l'utilisateur.

Dans une base de donnée relationnelle, on représente les données comme ça.
En faisant autrement tu vas au devant de difficultés et tu seras obligé de compenser par du code PHP au lieu d'utiliser les fonctionnalités naturelles de SQL (par exemple si tu voulais compter le nombre d'image d'un utilisateur).
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 16h36   #7
Klink
Candidat au titre de Membre du Club
 
Homme
Technicien réseau
Inscription : janvier 2013
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Technicien réseau

Informations forums :
Inscription : janvier 2013
Messages : 34
Points : 14
Points : 14
ok merci pour l'info !!!
Klink est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h48.


 
 
 
 
Partenaires

Hébergement Web