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

PHP & Base de données Discussion :

Stocker plusieurs images dans une db [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Points : 109
    Points
    109
    Par défaut Stocker plusieurs images dans une db
    Bonjour,

    Je veux créer trois templates pour la création de news.

    Le premier, c'est une image et du texte.

    Le second, c'est deux images et du texte.

    Et le dernier, c'est encore plus d'images ( 4 ou 5 ) et du texte.

    Actuellement, je stocke uniquement le nom de l'image dans un champ photo.
    ( premier cas )

    Je dois créé un autre champ pour chaque image à chaque fois ?

    Problème, c'est si ce n'est qu'une image ( premier cas ) les autres champs images vont être vides et c'est pas top comme structure.

    Comment faire ?

    Auriez-vous une idée ou une autre solution ?

    Merci
    ++

  2. #2
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Je suggererais un champ TEXT
    Tu stocke les chemins de tes images dans un champ TEXT avec des retours à la lignes pour délimiter les champs....
    Ainsi tu charges la variable contenu dans le champ, puis tu l'explose avec comme délimiteur le retour a la ligne et cela te donne un tableau bien propre avec le nombre d'images grace a count() et le chemin de toutes tes images. Tu peux stocker autant de chemin que tu veux...
    Je parle bien d'un champ TEXT et pas d'un VARCHAR délimité a 255 caractères...
    Et pour la saisie des champs utilise un TEXTAREA

    @+
    cadou

  3. #3
    Membre régulier Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    lo,

    Je suis débutant :-))

    Comment faire cela ?

    Pourrais-tu me montrer un petit exemple ?

    Merci
    ++

  4. #4
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Supposons que tu ai un TEXTAREA comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form action="myscript.php" method="post">
    <textarea name="images"></textarea>
    </form>
    Maintenant coté script php tu récupères comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $portfolio = split("\r?\n", $_POST['images']);
     
    echo count($portfolio) . ' images dans ma news';
     
    for ($x=0; $x<count($portfolio); $x++) {
    echo 'image n°'.$x.' située :'.$portfolio[$x].'<br>';
    }
    Donc tu insères le chemin de ton image, puis tu reviens à la ligne, puis une nouvelle image, puis retour a la ligne etc...
    Et coté php cela récupère ce qu'il y a dans le textarea et ainsi tu as le chemin de chaque image dans un élément du tableau

    @+
    cadou

  5. #5
    Membre régulier Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    re,

    Je suis perdu dans ce que tu racontes....

    Je ne comprend pas comment je dois faire ??

    Si je prend le premier cas.

    J'ai une image et à côté mon texte.

    Comment je vais stocker cela ( code php + structure mysql )

    Un exemple serait le bienvenu :-)

    MErci
    encore
    ++

  6. #6
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Ok on prends deux script....

    Un qui s'appelle edit_news et qui servira a saisir les infos quand tu ajouteras/modifieras une news sur ton site

    Un qui s'appelle show_news, qui te servira a afficher la page de la news aux visiteurs du site.

    Dans la page edit_news.php, tu prevois un champ TEXTAREA que tu va appeller images. Tu fais comme avec n'importe quel champ normal, c'est a dire que tu le remplis et tu te débrouille pour insérer les infos dans la base de données, en prenant bien garde que le champ images dans la base soit un champ TEXT et pas un VARCHAR.
    Par exemple cela donnerait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /var/local/img1.jpg
    /var/local/img2.jpg
    /var/html/img4.jpg
    Dans la page edit_news, tu appelle les infos dans la base de données suivant l'identifiant de la news que tu souhaite afficher. Au moment ou tu récupères le champ images de ta base de données, tu fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $portfolio = split("\r?\n", $images);
     
    $countportfolio = count($portfolio); //Nbre d'images dispo pour la news
     
    for ($x=0; $x<count($portfolio); $x++) {
    echo $portfolio[$x].'<br>';
    }
    Dans le cas que tu présente on peut faire un check sur countportfolio pour savoir quel templates utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if ($countporfolio == 1) { // J'ai une image
    $image1 = $portfolio[0]; 
    }
    else if ($countporfolio == 2) { // j'ai 2 images
    $image1 = $portfolio[0]; 
    $image2 = $portfolio[1]; 
    }
    else { // j'ai plus de 2 images
    $image1 = $portfolio[0]; 
    $image2 = $portfolio[1]; 
    $image3 = $portfolio[2];
    }
    @+
    cadou

  7. #7
    Membre régulier Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    Bah pas trop non :-(((

    Désolé tu expliques bien mais c'est peu compliqué...

    Essaie encore un peu de détailler si tu veux bien...

    Merci
    ++

  8. #8
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Bon, ben je vais te faire un script tout fait et tu tente de le reproduire dans le tiens...
    Tu copies ce qui est en dessous et tu le colles dans un fichier appeller myscript.php
    Ensuite tu l'executes sur ton PC

    Code : 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
    28
    29
     
     
    <?php
     
    $check = $_POST['check']; //verifie si on est dans le cas edition ou recup
     
    if (!$check) {   //mode edition
     
    echo '<form action="myscript.php" method="post">
    <input type="hidden" name="check" value="1">
    <textarea name="images" size="40" cols="8"></textarea><br />
    <input type="submit" value="enregistrer">
    </form>';
     
    }// end if
     
    else { //mode récupération et affichage
     
         $portfolio = split("\r?\n", $_POST['images']);
     
         echo count($portfolio) . ' images dans ma news';
     
         for ($x=0; $x<count($portfolio); $x++) {
         echo 'image n°'.$x.' située :'.$portfolio[$x].'<br>';
         }  
     
    }//end else
     
    ?>
    Donc dans la zone de texte tu rentres ce que tu veux et tu reviens a la ligne a chaque fois. Chaque enregistrement se fera sur une ligne délimité par le retour a la ligne.

    @+
    cadou

  9. #9
    Membre régulier Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    re,

    J'ai essayé ca marche :-)

    MErci
    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Plusieurs images dans une PictureBox
    Par adien.fanget dans le forum Windows Forms
    Réponses: 8
    Dernier message: 13/02/2009, 16h42
  2. [Débutant] comment afficher plusieurs images dans une seule interface ?
    Par youssa81 dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 06/02/2009, 00h36
  3. [MySQL] Stocker les images dans une bdd
    Par philippef dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/12/2008, 18h43
  4. Réponses: 1
    Dernier message: 27/09/2006, 08h50
  5. Comment stocker des images dans une base de données ?
    Par [Silk] dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/07/2005, 11h29

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