quelle fonction pour additionner les valeurs d'une requete ?

Eléphant du PHP | 254 Messages

08 avr. 2006, 21:00

Je m'explique :
J'ai une TABLE listes
avec un champ : quantite
J'insère des enregistrements, les quantités peuvent être 1,2,3,4....ou 10 (max.)
Je voudrais afficher un message si la quantité == 10.

J'ai fait la requête suivante :
"SELECT quantite FROM listes WHERE ID_session = '".$ID_session."'"
Si je fais un echo...j'ai bien la liste qui affiche la quantité enregistrée pour cette Session unique.
Mais comment comptabiliser le 1+1+5+3 = 10 ???
Ma condition est la suivante :
<? if ($totalRows_participants < 10){ ?>
<p>blablabla</p>
<?php } else { //affichage complet ?> 
<p>Complet</p>
<?php } ?>
Qui peut m'orienter ? :oops:
Merci d'avance !!!!
:)

Mammouth du PHP | 19672 Messages

08 avr. 2006, 21:02

Je suis pas certain de bien comprendre, mais j'ai l'impression que tu peux avoir ce résultat directement dans une requête SQL : essaye d'éclaircir un peu ta question sur ce maximum de 10 : par rapport à la somme de plusieurs lignes ? ou autre ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 254 Messages

08 avr. 2006, 21:08

Comment expliquer....
C'est une gestion de cours que j'appelle 'sessions'.
(la suite de mon "agenda" :wink: )
On réserve...pour un personne, deux personnes....jsqu'à 10.
A chaque résa, la table 'listes' est enrichie :
ID_session, date_debut, etc.....quantite qui correspond à la quantité réservée.
Je souhaite afficher "complet" s'il y a 10 personnes (donc 10 résas, ou bien 5 résas qui comptabilisent au total 10 dans le champ 'quantité'.
Donc en fait : le rslt de ma requete affiche bien les listes qui correspondent à une date précise.
Mais de cette façon :
ID`| Quantité
1. 1
2. 1
3. 5
4. 3
Je souhaiterais pouvoir additionner la quantité (1+1+5+3)....et si celle-ci == 10, alors j'affiche complet !
:wink:
=D>

Mammouth du PHP | 19672 Messages

08 avr. 2006, 21:13

j'ai encore du mal, mais ne voyant pas la structure, je suis sûr de rien. À vue de nez , tu aurais ça avec un SUM() et un GROUP BY :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 254 Messages

08 avr. 2006, 21:32

oui ou bien faut-il que je fasse une boucle sur le champ quantité ?
Tant qu'il y a une quantité....et que celle-ci <=10 ??
Pfiou, j'imagine que c'est super simple, mais dur de l'exprimer par écrit !
:(

Mammouth du PHP | 19672 Messages

08 avr. 2006, 21:40

Envoie la structure de ta table et illustre ta question avec des exemples en créant un petit tableau (bloc-note ira très bien) avec des données exemples permettant de distinguer au juse le genre de tri que tu veux obtenir.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 avr. 2006, 22:02

"SELECT SUM(quantite) AS quantite_totale FROM listes WHERE ID_session = '".$ID_session."'" 
Devrait directement te retourner le cumul des quantités (['quantite_totale']) pour ta session :)
Il ne te reste plus qu'à regarder si cette valeur est inférieure ou égale à 10 :)

Eléphant du PHP | 254 Messages

08 avr. 2006, 22:26

ouiiiiiiiii ça fonctionne !!!
Merci Cyrano et Ryle ! :love1:
Cependant, j'ai un souci pour l'affichage de cette condition, j'y planche !!! ](*,)
Je patauge et je ne m'y retrouve plus dans mon mélange de code html et php, mais je vais y arriver ! \:D/
<?php // test pour afficher cours passé
				$jour = date('Y-m-d');
				if ($row_session['date_debut'] > $jour) {
					if ($row_participants['quantite_totale'] < 10){ //affichage complet ?> 
						<a href="blabla.php"></a>
					     <?php } else{ //affichage complet?>
						 <p>Complet</p>
				         <?php } 
							} else { //affichage cours passé ?>
							<p>Termin&eacute; </p>
							<?php } ?>
Soit ça m'affiche tout complet, soit rien du tout, càd le lien <a href> :-s :axe: :afraid:

Mammouth du PHP | 19672 Messages

08 avr. 2006, 22:40

Aligne ton code proprement, tu t'y retrouveras d'autant plus facilement. Et pour le lien, ajoute un texte pour le voir ;)
<?php
// test pour afficher cours passé
$jour = date('Y-m-d');
if ($row_session['date_debut'] > $jour)
{
    if ($row_participants['quantite_totale'] < 10)
    {
        //affichage complet
    ?>
<a href="blabla.php">Lien vers blabla.php</a>
    <?php
    }
    else
    {
        //affichage complet
        ?>
<p>Complet</p>
        <?php
    }
}
else
{
    //affichage cours passé
    ?>
<p>Termin&eacute; </p>
    <?php
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 254 Messages

09 avr. 2006, 20:29

Merci Cyrano et Ryle pour ces précisions !
J'ai inséré le code dans ma boucle de tableau...et ça fonctionne super bien !
:pouce:
Merci !!!! :agenouille: