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 :

Boucle dans une requête [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 40
    Par défaut Boucle dans une requête
    BOnjour à tous

    j'ai un petit souci dans une requete je ne sait pas comment faire pour que ma variable $id change en fonction de ma boucle qui est plus bas.while ($donnees=mysql_fetch_array($resultat)) ......

    merci bcp
    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
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>xml</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
    </head>
    <body>
     
    <?php require_once('connectionbdd.php'); 
     
    function Display($Value) {
        return htmlspecialchars(addslashes($Value));
      }
    //$cat = $_GET['categorie'];
    $parent = 4;
     
     
    $connection = mysql_connect($hostname_connectionbdd, $username_connectionbdd, $password_connectionbdd) or die("host : connexion impossible.");
    mysql_select_db($database_connectionbdd, $connection) or die("Base de donnée non trouvé.");
    $query = "SELECT * FROM articles WHERE idparent_articles = $parent AND idcat_articles = $id" ;
    $result = mysql_query($query, $connection) or die("Impossible d'interroger la base de données");
    $num = mysql_num_rows($result);
     
     
    $resultat = @mysql_query($query);
    $i = 0;
    $id = "";
     
    // on parcourt le résultat de la requête
    while ($donnees=mysql_fetch_array($resultat)){
    // et on concatène les résultats dans une variable listeResultats
    $id = urlencode(utf8_encode($donnees['idcat_articles']));
     
    $i++;
     
     
    if ($num != 0) {
    $file= fopen($id."_"."gallery.xml", "w");
     
    $_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
     
    $_xml .="<simpleviewerGallery 
    maxImageWidth = '350' 
    maxImageHeight = '350' 
    textColor = '0x000000' 
    frameColor = '0x000000' 
    frameWidth = '0' 
    stagePadding = '40' 
    thumbnailColumns = '3' 
    thumbnailRows = '2' 
    navPosition = 'top'
    navPadding = '30'
    title = '$rub1'
    enableRightClickOpen = 'false' 
    backgroundImagePath = ''
    vAlign = 'top'
    hAlign = 'left'
    imagePath = /images/' 
    thumbPath = '/images/'>\r\n";
     
     
    while ($r = mysql_fetch_array($result)) {
     
        $_xml .= '<image>
    	<filename>'.utf8_encode($r['images_articles']).'</filename>
    	<caption>'.utf8_encode($r['comment_articles']).'</caption>';
        $_xml .= "</image>\r\n";
     
    }
    }
     
    $_xml .="</export>";
    if ($num != 0) {
     
    fwrite($file, $_xml);
    fclose($file); 
    }
     
    else
     
    echo "Pas d'articles pour l'instant dans cette rubrique." ; 
    }
    echo $id;
    ?>
     
    </body>
     
    </html>

  2. #2
    Membre expérimenté Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Par défaut
    Si j'ai bien compris ce que tu veux faire, tu veux afficher tout les articles d'une categorie.

    Tu peut donc simplifier ta requete sql comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM articles WHERE idparent_articles = $parent
    Et apres tu parcours simplement le résultat.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 40
    Par défaut
    oui cela reviendrait à cela le souci c'est qu'en faisant comme ca, il ne me crée q'un seul xml contenant tout les articles. Alors que je souhaite crée un xml par en rapport avec le idcat_articles.
    exemple.

    13_gallery.xml --> listant tout les articles de la catégorie 13
    16_gallery.xml --> listant tout les articles de la catégorie 16

    Si je fait comme tu dit je me retrouve seulement avec
    16_gallery.xml --> contenant les articles 13 et 16

    j'aimerai donc pouvoir que ma requete aille une fois cherché SELECT * FROM articles WHERE idparent_articles = $parent AND idcat_articles = $id (13)
    puis SELECT * FROM articles WHERE idparent_articles = $parent AND idcat_articles = $id (16) ...ainsi de suite.

    Cette à dire de reprendre le $id de la boucle while situé après la requete.

    j'espère etre clair merci beaucoup

  4. #4
    Membre expérimenté Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Par défaut
    Sinon tu peut selectionner toute les categorie et pour chaque catégorie tu récupère la liste des articles qui la compose.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 40
    Par défaut
    Citation Envoyé par BlackSmith Voir le message
    Sinon tu peut selectionner toute les categorie et pour chaque catégorie tu récupère la liste des articles qui la compose.

    je vois pas trop comment faire avec array?

  6. #6
    Membre expérimenté Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Par défaut
    Et avec deux requete SQL !

    Tu peut faire comme ceci

    1- SELECT * FROM categorie
    2 - tu boucle sur tout les élements et pour chaque element tu fais
    2.1 - SELECT * FROM produit where idCAT = $id

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

Discussions similaires

  1. [MySQL] Boucle dans une requête
    Par spawns dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/01/2011, 16h48
  2. [AC-2000] Créer une boucle dans une requête
    Par tibogaet dans le forum VBA Access
    Réponses: 4
    Dernier message: 27/10/2010, 16h45
  3. Boucle dans une requête SQL
    Par od.dev dans le forum Langage SQL
    Réponses: 4
    Dernier message: 14/06/2010, 19h13
  4. [mySQL5] Faire une sorte de "boucle" dans une requête
    Par mdr_cedrick dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/07/2009, 17h40
  5. Creer une boucle dans une requête ???
    Par fdloisel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/10/2004, 14h05

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