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 :

réaliser une boucle pour afficher des sources


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 93
    Points : 49
    Points
    49
    Par défaut réaliser une boucle pour afficher des sources
    Bonjour, je souhaiterai afficher plusieurs sources pour une page de données.

    Jusque là tout va bien, mais j'ai un peu codé tout ca en ouzbek. Je colle ici la partie à faire boucler

    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
    30
    //enregistrement champ source
    $ds  = $data['source'];
     
    //on explode la chaine en separant les urls avec les '|'
    $sitew = explode("|", $ds);
     
    //on récup les urls une par une
    $s1= parse_url($sitew['0']);
    $s1_nom = $s1['host'];
     
    $s2= parse_url($sitew['1']);
    $s2_nom = $s2['host'];
     
    $s3= parse_url($sitew['2']);
    $s3_nom = $s3['host'];
     
    $s4= parse_url($sitew['3']);
    $s4_nom = $s4['host'];
     
    $s5= parse_url($sitew['4']);
    $s5_nom = $s5['host'];
     
    if($s4_nom == '') {
    $s4_nom = "";
    }
     
     
    echo '<color="black">'.'<b>'.'Sources : '.'</b>'.'<a href='.$sitew['0'].'>'.$s1_nom.'</a>'.', <a href='.$sitew['1'].'>'.$s2_nom.'</a>'.', <a href='.$sitew['2'].'>'.$s3_nom.'</a>'.', <a href='.$sitew['3'].'>'.$s4_nom.'</a>'.', <a href='.$sitew['4'].'>'.$s5_nom.'</a>'.'<br>';
     
    ?>
    maintenant je pense que cela reste simplifiable avec une boucle, mais je ne sais pas comment la réaliser.

    De plus je ne voudrai afficher la source que si cette dernière est présente dans la base, sinon ne rien mettre. J'ai mis toutes mes sources à la suite, car cela me génère des virgules pour rien avec des données vides.

    Merci de votre aide.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    voila pour la boucle:

    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
    <?php
    //enregistrement champ source
    $ds  = $data['source'];
    echo '<color="black"><b>Sources : </b>';
    //on explode la chaine en separant les urls avec les '|'
    $sitew = explode("|", $ds);
     
    $taille=count($sitew);
     for ($i=0;$i<$taille;$i++){
    //on récup les urls une par une
    $s= parse_url($sitew[$i]);
     echo '<a href='.$sitew[$i].'>'.$s['host'].'</a>';
     
    }
     
    echo '<br>';
     
    ?>
    si cela t'affiche rien fait un print_r($sitew);

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 93
    Points : 49
    Points
    49
    Par défaut
    Super ca marche, par contre si je n'ai pas de résultats dans la table, ca marche comment?

    Parce que j'ai ajouter un séparateur (une virgule) pour faire plus propre entre mes sources, mais si je n'ai pas d'enregistrement sur mes 5 sources cela me met (,,,,,)

    Merci de ton aide.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    tu teste si la vairable est initialisé et non vide:

    http://fr.php.net/isset
    http://fr.php.net/manual/fr/function.empty.php

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 93
    Points : 49
    Points
    49
    Par défaut
    Merci, je vais tester tout ca.

    En fait il suffit de retirer la virgule dans l'affichage et de la remplacer par un espace pour que cela fasse plus "esthétique" dans mes résultats affichés sans pour autant générer des caractères en trop/

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Je me permets d'intervenir pour dire qu'en faisent celà, tu te remets à coder en ouzbek !
    Comme l'a dit boo64, il te suffit de conditionner l'affichage en fonction du remplissage de la variable. Si la variable est vide alors tu n'affiches rien du tout, sinon tu affiches.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for ($i=0;$i<$taille;$i++){
    //on récup les urls une par une
    $s= parse_url($sitew[$i]);
    if(!empty($s['host'])){ 
       echo '<a href='.$sitew[$i].'>'.$s['host'].'</a>';
    }
     
    }

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 93
    Points : 49
    Points
    49
    Par défaut
    oui j'ai compris.

    Mais le soucis c'est que cela donne

    adresseHTML1adresseHTML2adresseHTML3adresseHTML4adresseHTML5
    et que je souhaiterai

    adresseHTML1, adresseHTML2, adresseHTML3, adresseHTML4
    Or, si je mets la virgule qui me permet d'afficher sous ce dernier format, si je n'ai pas de données dans ma variable, alors j'obtiens

    ,,,,,,
    Merci de votre aide.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for ($i=0;$i<$taille;$i++){
    //on récup les urls une par une
    $s= parse_url($sitew[$i]);
    if(!empty($s['host'])){ 
       echo '<a href='.$sitew[$i].'>'.$s['host'].'</a> ';
    }
     
    }
    et voila tu auras un espace entre chaque la

  9. #9
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 93
    Points : 49
    Points
    49
    Par défaut
    Super, c'est bien ce que j'avais fait, mais surement mal expliqué

    Merci à vous.

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    oui on pensait que tu n'avais pas mis le empty

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/06/2014, 17h47
  2. Comment réaliser une boucle pour remplir un tableau
    Par LVChatel dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 03/04/2009, 11h20
  3. Réponses: 5
    Dernier message: 12/02/2009, 09h27
  4. Réponses: 21
    Dernier message: 23/05/2007, 16h16
  5. Y a-t-il une API pour afficher des bannières ?
    Par ValyGator dans le forum Windows
    Réponses: 5
    Dernier message: 06/01/2007, 17h44

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