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 :

connaitre le dernier enregistrement, savoir si il est pair/impair


Sujet :

Langage PHP

  1. #1
    Membre éprouvé Avatar de gretch
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2006
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 165
    Points : 1 250
    Points
    1 250
    Par défaut connaitre le dernier enregistrement, savoir si il est pair/impair
    voila le souci,

    j'ai une boucle, qui affiche alternativement un résultat à gauche et un à droite, lors de l'apparition du dernier enregistrement, si c'est un nombre pair, il l'affiche comme les autres, sinon je veux qu'il l'affiche centrer

    je vous met mon code ( l'aternateur G/D est pret mais pas le reste ) :
    <?php
    while ($val=mysql_fetch_array($req)) {
    $part_num=$val['part_num'];
    $nom=$val['nom'];
    $text=$val['text'];
    $lien=$val['lien'];
    $img=$val['img'];
    echo
    "<div class=\"colh\">
    <div class=\"colg\">

    // affichage de mon enregistrement à Gauche

    </div>"
    ;
    if (
    $val=mysql_fetch_array($req)) {
    $part_num=$val['part_num'];
    $nom=$val['nom'];
    $text=$val['text'];
    $lien=$val['lien'];
    $img=$val['img'];
    echo
    "
    <div class=\"cold\">
    // affichage de mon enregistrement à Droite


    </div></div> "
    ;}

    else {

    // affichage du dernier enregistrement
    // il est la le prob, je ne sais pas quoi mettre ?
    // Merci d'avance
    ;
    }

    ?>

  2. #2
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Salut !!

    A tester... C'est un peut du bricollage

    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
    <?php
    $i =’0’;
    // Donne le nombre d'enregistrement
    $total = mysql_num_rows($req);
    // Pour savoir si c pair ou impaire
    $calcul = (round($total / 2) - ($total / 2));
    //si paire
    if($calcul == "0"){
          while ($val=mysql_fetch_array($req)) {
          //droit
          //gauche
          }
    //si impaire
    }else{
          while ($val=mysql_fetch_array($req)) {
          // on incrément le compteur
          $i++;
          // Si c'est le dernier enregistrement
          if($i == $total){
                //centrer
          // Sinon
          }else{
                //droit
                //gauche
          }
    }
    ?>

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Maintenir une variable qui indiquera le numéro de l'enregistrement. Si la variable est divisible par deux, c'est que le nombre d'enregistrement était pair. Sinon, c'est qu'il était impair.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($i % 2) // Nombre d'enregistrement impair

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Cela simplifie ma solution

    Remplacer

    $total = mysql_num_rows($req);
    // Pour savoir si c pair ou impaire
    $calcul = (round($total / 2) - ($total / 2));
    //si paire
    if($calcul == "0"){

    par


    $total = mysql_num_rows($req);
    // Pour savoir si c pair ou impaire
    //si paire
    if (total % 2){

  5. #5
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Une proposition comme une autre, non testée. Les passages clé en gras.

    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
    $numreq = mysql_num_rows($req);
    $i = 0;
    while ($val=mysql_fetch_array($req)) {
      $part_num=$val['part_num'];
      $nom=$val['nom'];
      $text=$val['text'];
      $lien=$val['lien'];
      $img=$val['img'];
      if ($i < $numreq-1) {
    
        // affichage de mon enregistrement à Gauche
    
      }
      else {
        // affichage de l'enregistrement au milieu
      }
      if ($val=mysql_fetch_array($req)) {
        $part_num=$val['part_num'];
        $nom=$val['nom'];
        $text=$val['text'];
        $lien=$val['lien'];
        $img=$val['img'];
    
        // affichage de mon enregistrement à Droite
      }
      // Pas de else : on a terminé la ligne avec un </tr> dans l'affichage au milieu.
      $i += 2;
    }

  6. #6
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Ou encore :

    Un première requête pour connaitre le statut du dernier enregistrement.
    Exemple :

    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
    $sql = "SELECT count(variable_enregistrement) FROM ta_table";
    $val= mysql_fetch_array(mysql_query($sql));
    $dernier = $val[0];
     
    // ton script
    //
    //
    //
    //
    //etc.......
     
    elseif ($variable_enregistrement%$dernier==0)
    {
    // affichage au centre
    }
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  7. #7
    Membre éprouvé Avatar de gretch
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2006
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 165
    Points : 1 250
    Points
    1 250
    Par défaut
    Eusebius, t'etait pas loin...
    il manquait une petite incrémantation de $i pour qu'il evolue et sache quant la derniere ligne est arrivée. Voila le code définitif :
    <?php
    $numreq
    = mysql_num_rows($req);
    echo
    "numreq : $numreq";
    $i = 0;
    while (
    $val=mysql_fetch_array($req)) {
    $part_num=$val['part_num'];
    $nom=$val['nom'];
    $text=$val['text'];
    $lien=$val['lien'];
    $img=$val['img'];
    if (
    $i < $numreq-1) {
    // ------------ DEBUT affichage de mon enregistrement à Gauche
    echo"<div class=\"colh\">
    <div class=\"colg\">
    <fieldset>
    <legend>$nom</legend>
    $text
    $img
    </fieldset></div>"
    ;
    $i+=1;
    // ---------------- FIN affichage de mon enregistrement à Gauche
    }
    else {
    // --------------- DEBUT affichage de l'enregistrement au milieu
    echo"</div><div class=\"center\">
    <fieldset>
    <legend> $nom </legend>
    $text
    $img
    </fieldset></div></div>
    "
    ;}
    // ---------------- FIN affichage de l'enregistrement au milieu
    if ($val=mysql_fetch_array($req)) {
    $part_num=$val['part_num'];
    $nom=$val['nom'];
    $text=$val['text'];
    $lien=$val['lien'];
    $img=$val['img'];
    //------------- DEBUT affichage de mon enregistrement à Droite
    echo"
    <div class=\"cold\">
    <fieldset>
    <legend>$nom</legend>
    $text
    $img
    </fieldset></div></div><div class=\"blank\" />
    "
    ;
    $i+=1;
    }
    //------------- FIN affichage de mon enregistrement à Droite
    }
    ?>
    à tous et encore à toi Eusebius

  8. #8
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par gretch
    Eusebius, t'etait pas loin...
    il manquait une petite incrémantation de $i pour qu'il evolue et sache quant la derniere ligne est arrivée.
    Tu as dû oublier de recopier ma ligne ($i += 2; )...

  9. #9
    Membre éprouvé Avatar de gretch
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2006
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 165
    Points : 1 250
    Points
    1 250
    Par défaut
    t'a raison

    mais à quoi correspond t'elle ??? je comprend pas


    (30 secondes plus tard ...)
    PS : nan c'est bon j'ai compris, encore et encore

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/10/2011, 08h09
  2. [MySQL] Comment connaitre le dernier enregistrement
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/12/2010, 13h49
  3. Réponses: 4
    Dernier message: 19/03/2009, 21h47
  4. Tester pour connaitre le dernier enregistrement
    Par SOPSOU dans le forum Bases de données
    Réponses: 1
    Dernier message: 14/09/2008, 22h18
  5. [XPATH] Savoir si on est sur le dernier noeud de ce type ...
    Par DemonKN dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 14/03/2005, 13h13

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