Page 1 sur 1

quelle fonction pour additionner les valeurs d'une requete ?

Posté : 08 avr. 2006, 21:00
par coxine
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 !!!!
:)

Posté : 08 avr. 2006, 21:02
par Cyrano
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 ?

Posté : 08 avr. 2006, 21:08
par coxine
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>

Posté : 08 avr. 2006, 21:13
par Cyrano
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

Posté : 08 avr. 2006, 21:32
par coxine
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 !
:(

Posté : 08 avr. 2006, 21:40
par Cyrano
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.

Posté : 08 avr. 2006, 22:02
par Ryle
"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 :)

Posté : 08 avr. 2006, 22:26
par coxine
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:

Posté : 08 avr. 2006, 22:40
par Cyrano
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
}
?>

Posté : 09 avr. 2006, 20:29
par coxine
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: