Bonjour,
actuellement, je vais chercher mes variables dans la BDD et elles s'affichent chacune dans une DIV identique car la DIV est dans le WHILE.
Donc, id1, nom1, prénom1 s'affiche dans une DIV, ensuite, id2, nom2, prénom2 arrivent dans une 2ème DIV, etc...
Alors si j'ai 15 id, j'obtiens 15 DIV identiques.
Tout va bien, c'est super!

Ce que je veux

J'aimerais que id1, nom1, prénom1 s'affichent dans une DIV 300px X 200px et que id2, nom2, prénom2 s'affichent dans une DIV 450px X 200px et ainsi de suite tant que la requête SQL donne des résultats.

Ce que j'obtiens

Rien du tout car je ne sais pas par quel bout entamer mon code.... :-(

Est-ce possible à faire? Par quel bout je dois réfléchir pour appréhender mon code?

Merci d'avance de me mettre le pied à l'étrier...

6 réponses


Tout dépend ce que tu veux vraiment.
Si tu veux que ta div devienne de plus en plus grande (300x200, 450x200, 600x200, ...) ou si tu veux que ça change au fur et à mesure (300x200, 450x200, 300x200, 450x200,...)
Dans tous les cas, tu vas devoir boucler avec une variable qui te donner l'index actuel.


<?php
$i = 0;
while($row = mysql_fetch_assoc($result))
{
    // construction de ta div

    // Si tu veux faire un sur deux
    if ($i % 2 == 0)
    {
        // Cas du 300x200
    }
    else {
        // Cas du 450x200
    }

    // Si tu veux que ça augmente de 150 à chaque tour de boucle
    echo 300 + ($i * 150)

    $i++;
}
Hexa
Auteur

Haaa, merci pour ta réponse!

Actuellement j'ai une grille de 7 div dont les mesures sont imposées par le template. Elles ont chacune leurs propres dimensions qui varient avec le responsive. Mais au final, elles ont leur propre place l'une par rapport à l'autre. Donc, on ne touche pas aux dimensions.

J'ai horizontalement:
La div1, puis à côté la div2 sur la première ligne
La div3 puis la div4 et enfin la div5 sur la deuxième ligne
La div6 et la div7 sur la troisième ligne

Voilà la présentation imposée par le template.

Je vais enticiper ta question: Tu veux faire quoi si tu as plus de 7 résultats à ta requête sql?
Ma réponse:
La div1, puis à côté la div2 sur la première ligne
La div3, puis la div4 et la div5 sur la deuxième ligne
La div6 et la div7 sur la troisième ligne
(là, je reprends ma présentation du template et je recommance avec les div)
La div1, puis à côté la div2 sur la quatrième ligne
La div4 et la div5 sur la cinquième ligne
La div6 et la div7 sur la sixième ligne

--> la même réponse mais avec mes variables sorties de ma requête sql:

Dans la div 1: id1, nom1, prénom1 -¤- puis à côté la div2: id2,nom2, prénom2 --> sur la première ligne
Dans la div 3: id3 ,nom3, prénom3 -¤- puis la div 4: id4,nom4, prénom4 -¤- et la div5: id5,nom5, prénom5 --> sur la deuxième ligne
Dans la div 6: id6, nom6, prénom6 -¤- et la div7: id7,nom7, prénom7 --> sur la troisième ligne
(là, je reprends ma présentation du template et je recommance avec les div)
Dans la div1: id8,nom8, prénom8 -¤- , puis à côté la div2: id9,nom9, prénom9 --> sur la quatrième ligne
Dans la div3: id10, nom10, prénom10 -¤- 1a div4: id11, nom11, prénom11 -¤- et la div5: id12, nom12, prénom12 --> sur la cinquième ligne
Dans la div6: id13, nom13, prénom13 -¤- et la div7: id14, nom14, prénom14 --> sur la sixième ligne

Si j'ai d'autres résultats, c'est la même principe, div1 puis div2 et ainsi de suite...

Voilà, c'est difficile d'être précis et concis à la fois....!

En tout cas, merci pour ton aide.

Alors, ça devrait être sur le même principe, sauf que le modulo sera dans une variable.
Ca va paraître un peu tordu, mais c'est le seul résultat "probant" que j'ai eu :

<?PHP
$i = 0;
$modulo = 2;
while($row = mysql_fetch_assoc($result))
{
    if ($i !== 0 && $i % $modulo === 0)
    {
        // Tu ferme ta div pour ouvrir la suivant ici

        // Tu changes de modulo pour passer du 2 au 3 éléments par ligne
        $modulo = $modulo === 2 ? 3 : 2;

        // Tu changes ton itération par le modulo pour éviter pas mal de problèmes
        $i = $modulo;
    }

    // Tu affiches ton résultat

    $i++;
}
?>
Hexa
Auteur

Oui, je vois à peu près où tu veux en venir.

Je vais creuser cette voie....

Merci beaucoup!

Hello

mysql_fetch_assoc(...)

n'existe plus depuis php 7.0 (03 Dec 2015) il faut utiliser mysqli ou pdo

Hexa
Auteur

Oui Quenti, je bosse que en pdo, j'aurai rectifié.
Merci tout de même.